شركة التطبيقات المتكاملة لتصميم النظم البرمجية الخاصة ش.ش.و.

Integrated Applications Programming Company

Skip Navigation LinksHome » Code Library » OntServiceHsi

Public general use code classes and xml files that we've compiled and used over the years:

ONT-SERVICEHSI support class for Next Generation Network (NGN) Nokia data model.

   1:  using System;
   2:  using System.Collections;
   3:  using System.Collections.Generic;
   4:  using System.Linq;
   5:  using System.Web;
   6:  using System.Web.Security;
   7:  using System.Text.RegularExpressions;
   8:  using System.Data.Entity;
   9:  using System.Text;
  10:   
  11:  namespace Ia.Ngn.Cl.Model.Data.Nokia
  12:  {
  13:      ////////////////////////////////////////////////////////////////////////////
  14:   
  15:      /// <summary publish="true">
  16:      /// ONT-SERVICEHSI support class for Next Generation Network (NGN) Nokia data model.
  17:      /// </summary>
  18:      /// 
  19:      /// <remarks> 
  20:      /// Copyright © 2006-2018 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
  21:      ///
  22:      /// This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
  23:      /// the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
  24:      ///
  25:      /// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
  26:      /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
  27:      /// 
  28:      /// You should have received a copy of the GNU General Public License along with this library. If not, see http://www.gnu.org/licenses.
  29:      /// 
  30:      /// Copyright notice: This notice may not be removed or altered from any source distribution.
  31:      /// </remarks> 
  32:      public partial class OntServiceHsi
  33:      {
  34:          /// <summary/>
  35:          public OntServiceHsi() { }
  36:   
  37:          ////////////////////////////////////////////////////////////////////////////
  38:   
  39:          /// <summary>
  40:          ///
  41:          /// </summary>
  42:          public static bool Create(Ia.Ngn.Cl.Model.OntServiceHsi ontServiceHsi, out string result)
  43:          {
  44:              bool b;
  45:   
  46:              b = false;
  47:              result = "";
  48:   
  49:              using (var db = new Ia.Ngn.Cl.Model.Ngn())
  50:              {
  51:                  ontServiceHsi.Created = ontServiceHsi.Updated = DateTime.UtcNow.AddHours(3);
  52:   
  53:                  db.OntServiceHsis.Add(ontServiceHsi);
  54:                  db.SaveChanges();
  55:   
  56:                  b = true;
  57:              }
  58:   
  59:              return b;
  60:          }
  61:   
  62:          ////////////////////////////////////////////////////////////////////////////
  63:   
  64:          /// <summary>
  65:          ///
  66:          /// </summary>
  67:          public static Ia.Ngn.Cl.Model.OntServiceHsi Read(string id)
  68:          {
  69:              Ia.Ngn.Cl.Model.OntServiceHsi item;
  70:   
  71:              using (var db = new Ia.Ngn.Cl.Model.Ngn())
  72:              {
  73:                  item = (from osh in db.OntServiceHsis where osh.Id == id select osh).SingleOrDefault();
  74:              }
  75:   
  76:              return item;
  77:          }
  78:   
  79:          ////////////////////////////////////////////////////////////////////////////
  80:   
  81:          /// <summary>
  82:          ///
  83:          /// </summary>
  84:          public static List<Ia.Ngn.Cl.Model.OntServiceHsi> ReadList()
  85:          {
  86:              List<Ia.Ngn.Cl.Model.OntServiceHsi> list;
  87:   
  88:              using (var db = new Ia.Ngn.Cl.Model.Ngn())
  89:              {
  90:                  list = (from osh in db.OntServiceHsis select osh).ToList();
  91:              }
  92:   
  93:              return list;
  94:          }
  95:   
  96:          ////////////////////////////////////////////////////////////////////////////
  97:   
  98:          /// <summary>
  99:          ///
 100:          /// </summary>
 101:          public static List<Ia.Ngn.Cl.Model.OntServiceHsi> ListIncludeOntAccess()
 102:          {
 103:              List<Ia.Ngn.Cl.Model.OntServiceHsi> list;
 104:   
 105:              using (var db = new Ia.Ngn.Cl.Model.Ngn())
 106:              {
 107:                  list = (from osh in db.OntServiceHsis select osh).Include(u => u.Ont.Access).ToList();
 108:              }
 109:   
 110:              return list;
 111:          }
 112:   
 113:          ////////////////////////////////////////////////////////////////////////////
 114:   
 115:          /// <summary>
 116:          ///
 117:          /// </summary>
 118:          public static bool Update(Ia.Ngn.Cl.Model.OntServiceHsi ontServiceHsi, out string result)
 119:          {
 120:              bool b;
 121:   
 122:              b = false;
 123:              result = "";
 124:   
 125:              using (var db = new Ia.Ngn.Cl.Model.Ngn())
 126:              {
 127:                  ontServiceHsi = (from osh in db.OntServiceHsis where osh.Id == ontServiceHsi.Id select osh).SingleOrDefault();
 128:   
 129:                  ontServiceHsi.Updated = DateTime.UtcNow.AddHours(3);
 130:   
 131:                  db.OntServiceHsis.Attach(ontServiceHsi);
 132:   
 133:                  var v = db.Entry(ontServiceHsi);
 134:                  v.State = System.Data.Entity.EntityState.Modified;
 135:                  db.SaveChanges();
 136:   
 137:                  b = true;
 138:              }
 139:   
 140:              return b;
 141:          }
 142:   
 143:          ////////////////////////////////////////////////////////////////////////////
 144:   
 145:          /// <summary>
 146:          ///
 147:          /// </summary>
 148:          public static bool Delete(string id, out string result)
 149:          {
 150:              bool b;
 151:   
 152:              b = false;
 153:              result = "";
 154:   
 155:              using (var db = new Ia.Ngn.Cl.Model.Ngn())
 156:              {
 157:                  var v = (from osh in db.OntServiceHsis where osh.Id == id select osh).FirstOrDefault();
 158:   
 159:                  db.OntServiceHsis.Remove(v);
 160:                  db.SaveChanges();
 161:   
 162:                  b = true;
 163:              }
 164:   
 165:              return b;
 166:          }
 167:   
 168:          ////////////////////////////////////////////////////////////////////////////
 169:   
 170:          /// <summary>
 171:          ///
 172:          /// </summary>
 173:          public static Dictionary<int, int> DownstreamBandwidthProfileIdAndCountDictionary
 174:          {
 175:              get
 176:              {
 177:                  Dictionary<int, int> dictionary;
 178:   
 179:                  using (var db = new Ia.Ngn.Cl.Model.Ngn())
 180:                  {
 181:                      dictionary = (from osh in db.OntServiceHsis
 182:                             group osh.Id by osh.DownstreamBandwidthProfileId into g
 183:                             select new { Id = g.Key, Count = g.Count() }).ToDictionary(u => u.Id, u => u.Count);
 184:                  }
 185:   
 186:                  return dictionary;
 187:              }
 188:          }
 189:   
 190:          ////////////////////////////////////////////////////////////////////////////
 191:   
 192:          /// <summary>
 193:          ///
 194:          /// </summary>
 195:          public static List<string> AccessNameForDownstreamBandwidthProfileIdList(int profileId)
 196:          {
 197:              Dictionary<string, string> di;
 198:              List<string> accessIdList, list;
 199:   
 200:              accessIdList = AccessIdForDownstreamBandwidthProfileIdList(profileId);
 201:   
 202:              list = new List<string>(accessIdList.Count);
 203:   
 204:              di = Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OntAccessIdToOntAccessNameDictionary;
 205:   
 206:              foreach (string accessId in accessIdList)
 207:              {
 208:                  if (di[accessId] != null) list.Add(di[accessId]);
 209:              }
 210:   
 211:              return list;
 212:          }
 213:   
 214:          ////////////////////////////////////////////////////////////////////////////
 215:   
 216:          /// <summary>
 217:          ///
 218:          /// </summary>
 219:          public static List<string> AccessIdForDownstreamBandwidthProfileIdList(int profileId)
 220:          {
 221:              List<string> list;
 222:   
 223:              using (var db = new Ia.Ngn.Cl.Model.Ngn())
 224:              {
 225:                  list = (from osh in db.OntServiceHsis
 226:                          join o in db.Onts on osh.Ont.Id equals o.Id
 227:                          join a in db.Accesses on o.Access.Id equals a.Id
 228:                          where osh.DownstreamBandwidthProfileId == profileId
 229:                          select a.Id).ToList();
 230:              }
 231:   
 232:              return list;
 233:          }
 234:   
 235:          /*
 236:          ////////////////////////////////////////////////////////////////////////////
 237:  
 238:          /// <summary>
 239:          ///
 240:          /// </summary>
 241:          public static List<Ia.Ngn.Cl.Model.OntServiceHsi> ReadListBySerial(string serial)
 242:          {
 243:              List<Ia.Ngn.Cl.Model.OntServiceHsi> list;
 244:  
 245:              using (var db = new Ia.Ngn.Cl.Model.Ngn())
 246:              {
 247:                  list = (from q in db.Onts where q.Serial == serial select q).ToList();
 248:              }
 249:  
 250:              return list;
 251:          }
 252:           */
 253:   
 254:          ////////////////////////////////////////////////////////////////////////////
 255:   
 256:          /// <summary>
 257:          ///
 258:          /// </summary>
 259:          public static Dictionary<string, string> IdToOntIdDictionary
 260:          {
 261:              get
 262:              {
 263:                  Dictionary<string, string> dictionary;
 264:   
 265:                  using (var db = new Ia.Ngn.Cl.Model.Ngn())
 266:                  {
 267:                      dictionary = (from s in db.OntServiceHsis select new { s.Id, OntId = s.Ont.Id }).ToDictionary(u => u.Id, u => u.OntId);
 268:                  }
 269:   
 270:                  return dictionary.ToDictionary(u => u.Key, u => u.Value);
 271:              }
 272:          }
 273:   
 274:          ////////////////////////////////////////////////////////////////////////////
 275:          ////////////////////////////////////////////////////////////////////////////
 276:   
 277:          /// <summary>
 278:          ///
 279:          /// </summary>
 280:          public static string ToSimpleTextString(Ia.Ngn.Cl.Model.OntServiceHsi ontServiceHsi)
 281:          {
 282:              StringBuilder sb;
 283:   
 284:              sb = new StringBuilder();
 285:   
 286:              //sb.AppendLine("Vendor: " + Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.Vendor.Nokia.Name);
 287:              sb.AppendLine("State: " + ontServiceHsi.State);
 288:              sb.AppendLine("Card: " + ontServiceHsi.Card);
 289:              sb.AppendLine("Port: " + ontServiceHsi.Port);
 290:              sb.AppendLine("Service: " + ontServiceHsi.Service);
 291:   
 292:              sb.AppendLine("DownstreamBandwidthProfile: " + Ia.Ngn.Cl.Model.Data.Hsi.ProfileFromProfileId(ontServiceHsi.DownstreamBandwidthProfileId).Name);
 293:              sb.AppendLine("UpstreamBandwidthProfile: " + Ia.Ngn.Cl.Model.Data.Hsi.ProfileFromProfileId(ontServiceHsi.UpstreamBandwidthProfileId).Name);
 294:              sb.AppendLine("PriorityQueueProfileId: " + ontServiceHsi.PriorityQueueProfileId);
 295:   
 296:              //sb.AppendLine("Aes: " + ontServiceHsi.Aes);
 297:              sb.AppendLine("Svlan: " + ontServiceHsi.Svlan);
 298:              sb.AppendLine("Label: " + ontServiceHsi.Label);
 299:              sb.AppendLine("Customer: " + ontServiceHsi.Customer);
 300:   
 301:              return sb.ToString();
 302:          }
 303:   
 304:          ////////////////////////////////////////////////////////////////////////////
 305:          ////////////////////////////////////////////////////////////////////////////
 306:      }
 307:   
 308:      ////////////////////////////////////////////////////////////////////////////
 309:      ////////////////////////////////////////////////////////////////////////////
 310:  }