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

Integrated Applications Programming Company

Skip Navigation LinksHome » Code Library » NetworkDesignDocument

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

Network Design Document support class for Next Generation Network (NGN) business model.

   1:  using System;
   2:  using System.Collections.Generic;
   3:  using System.Data;
   4:  using System.Linq;
   5:  using System.Text;
   6:   
   7:  namespace Ia.Ngn.Cl.Model.Business
   8:  {
   9:      ////////////////////////////////////////////////////////////////////////////
  10:   
  11:      /// <summary publish="true">
  12:      /// Network Design Document support class for Next Generation Network (NGN) business model.
  13:      /// </summary>
  14:      /// 
  15:      /// <remarks> 
  16:      /// Copyright © 2006-2019 Jasem Y. Al-Shamlan (info@ia.com.kw), Internet Applications - Kuwait. All Rights Reserved.
  17:      ///
  18:      /// 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
  19:      /// the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
  20:      ///
  21:      /// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
  22:      /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
  23:      /// 
  24:      /// You should have received a copy of the GNU General Public License along with this library. If not, see http://www.gnu.org/licenses.
  25:      /// 
  26:      /// Copyright notice: This notice may not be removed or altered from any source distribution.
  27:      /// </remarks> 
  28:      public partial class NetworkDesignDocument
  29:      {
  30:          public enum FieldType { Green = 1, Brown = 2 };
  31:   
  32:          public enum PstnExchangeType { EricssonAxe = 1, SiemensEwsd = 2 };
  33:   
  34:          ////////////////////////////////////////////////////////////////////////////
  35:   
  36:          /// <summary>
  37:          ///
  38:          /// </summary>
  39:          public NetworkDesignDocument() { }
  40:   
  41:          ////////////////////////////////////////////////////////////////////////////
  42:   
  43:          /// <summary>
  44:          ///
  45:          /// </summary>
  46:          public static string FieldTypeColoredString(Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.FieldType fieldType)
  47:          {
  48:              string fieldTypeColoredString;
  49:   
  50:              switch (fieldType)
  51:              {
  52:                  case FieldType.Green: fieldTypeColoredString = "<span style=\"color:green\">Green</span>"; break;
  53:                  case FieldType.Brown: fieldTypeColoredString = "<span style=\"color:brown\">Brown</span>"; break;
  54:                  default: fieldTypeColoredString = string.Empty; break;
  55:              }
  56:   
  57:              return fieldTypeColoredString;
  58:          }
  59:   
  60:          ////////////////////////////////////////////////////////////////////////////
  61:   
  62:          /// <summary>
  63:          ///
  64:          /// </summary>
  65:          public static string FieldTypeString(Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.FieldType fieldType)
  66:          {
  67:              string fieldTypeColoredString;
  68:   
  69:              switch (fieldType)
  70:              {
  71:                  case FieldType.Green: fieldTypeColoredString = "Green"; break;
  72:                  case FieldType.Brown: fieldTypeColoredString = "Brown"; break;
  73:                  default: fieldTypeColoredString = string.Empty; break;
  74:              }
  75:   
  76:              return fieldTypeColoredString;
  77:          }
  78:   
  79:          ////////////////////////////////////////////////////////////////////////////
  80:   
  81:          /// <summary>
  82:          ///
  83:          /// </summary>
  84:          public class Vendor
  85:          {
  86:              public int Id { get; set; }
  87:              public string Name { get; set; }
  88:              public string ShortName { get; set; }
  89:              public string ArabicName { get; set; }
  90:              public string ImageUrl { get; set; }
  91:   
  92:              public Vendor(int id, string name, string shortName, string arabicName, string imageUrl)
  93:              {
  94:                  this.Id = id;
  95:                  this.Name = name;
  96:                  this.ShortName = shortName;
  97:                  this.ArabicName = arabicName;
  98:                  this.ImageUrl = imageUrl;
  99:              }
 100:   
 101:              public virtual ICollection<Router> Routers
 102:              {
 103:                  get
 104:                  {
 105:                      return (from r in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.RouterList where r.Vendor == this select r).ToList();
 106:                  }
 107:              }
 108:   
 109:              public virtual ICollection<Odf> Odfs
 110:              {
 111:                  get
 112:                  {
 113:                      return (from o in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OdfList where o.Vendor == this select o).ToList();
 114:                  }
 115:              }
 116:   
 117:              public static Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.Vendor Nokia
 118:              {
 119:                  get
 120:                  {
 121:                      return (from v in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.VendorList where v.ShortName == "No" select v).Single();
 122:                  }
 123:              }
 124:   
 125:              public static Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.Vendor Huawei
 126:              {
 127:                  get
 128:                  {
 129:                      return (from v in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.VendorList where v.ShortName == "Hu" select v).Single();
 130:                  }
 131:              }
 132:   
 133:              public static Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.Vendor Ericsson
 134:              {
 135:                  get
 136:                  {
 137:                      return (from v in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.VendorList where v.ShortName == "Er" select v).Single();
 138:                  }
 139:              }
 140:   
 141:              public static Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.Vendor Siemens
 142:              {
 143:                  get
 144:                  {
 145:                      return (from v in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.VendorList where v.ShortName == "Si" select v).Single();
 146:                  }
 147:              }
 148:   
 149:              public static Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.Vendor Undefined
 150:              {
 151:                  get
 152:                  {
 153:                      return (from v in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.VendorList where v.ShortName == "Un" select v).Single();
 154:                  }
 155:              }
 156:   
 157:              ////////////////////////////////////////////////////////////////////////////
 158:   
 159:              /// <summary>
 160:              ///
 161:              /// </summary>
 162:              public static string VendorNameFromId(int id)
 163:              {
 164:                  return (from v in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.VendorList where v.Id == id select v.Name).SingleOrDefault();
 165:              }
 166:   
 167:              ////////////////////////////////////////////////////////////////////////////
 168:   
 169:              /// <summary>
 170:              ///
 171:              /// </summary>
 172:              public static int VendorIdFromName(string name)
 173:              {
 174:                  int id;
 175:   
 176:                  switch (name)
 177:                  {
 178:                      case "Nokia": id = 1; break;
 179:                      case "ALCL": id = 1; break;
 180:                      case "Huawei": id = 2; break;
 181:                      case "Nokia-Siemens": id = 3; break;
 182:                      default: id = 0; break;
 183:                  }
 184:   
 185:                  return id;
 186:              }
 187:   
 188:              ////////////////////////////////////////////////////////////////////////////
 189:              ////////////////////////////////////////////////////////////////////////////
 190:          }
 191:   
 192:          ////////////////////////////////////////////////////////////////////////////    
 193:   
 194:          public class Network
 195:          {
 196:              public int Id { get; set; }
 197:              public string Name { get; set; }
 198:   
 199:              public Network(int id, string name)
 200:              {
 201:                  this.Id = id;
 202:                  this.Name = name;
 203:              }
 204:   
 205:              public virtual ICollection<Site> Sites
 206:              {
 207:                  get
 208:                  {
 209:                      return (from s in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.SiteList where s.Network == this select s).ToList();
 210:                  }
 211:              }
 212:          }
 213:   
 214:          ////////////////////////////////////////////////////////////////////////////
 215:   
 216:          /// <summary>
 217:          ///
 218:          /// </summary>
 219:          public class Site
 220:          {
 221:              public Site() { }
 222:   
 223:              public int Id { get; set; }
 224:              public string Name { get; set; }
 225:              public string ArabicName { get; set; }
 226:              public string NameArabicName
 227:              {
 228:                  get
 229:                  {
 230:                      return Name + " (" + ArabicName + ")";
 231:                  }
 232:              }
 233:              public List<string> AreaSymbolList { get; set; }
 234:              public virtual Network Network { get; set; }
 235:   
 236:              public virtual ICollection<Router> Routers
 237:              {
 238:                  get
 239:                  {
 240:                      return (from r in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.RouterList where r.Site == this select r).ToList();
 241:                  }
 242:              }
 243:   
 244:              public virtual ICollection<Ia.Ngn.Cl.Model.Business.Service.KuwaitNgnArea> KuwaitNgnAreas
 245:              {
 246:                  get
 247:                  {
 248:                      ICollection<Ia.Ngn.Cl.Model.Business.Service.KuwaitNgnArea> ic;
 249:   
 250:                      ic = (from kna in Ia.Ngn.Cl.Model.Data.Service.KuwaitNgnAreaList where this.AreaSymbolList.Contains(kna.Symbol) select kna).ToList();
 251:   
 252:                      return ic;
 253:                  }
 254:              }
 255:   
 256:              public List<int> DomainList
 257:              {
 258:                  get
 259:                  {
 260:                      var siteRouterDomainList = (from r in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.RouterList where r.Site.Id == this.Id select r).SelectMany(z => z.DomainList).ToList();
 261:   
 262:                      return siteRouterDomainList;
 263:                  }
 264:              }
 265:   
 266:              public int NumberOfPossibleServicesWithinDomainList
 267:              {
 268:                  get
 269:                  {
 270:                      return Ia.Ngn.Cl.Model.Data.Service.NumberOfPossibleServicesWithinDomainList(this.DomainList);
 271:                  }
 272:              }
 273:   
 274:              public int SiteId(int networkId, int siteId)
 275:              {
 276:                  return networkId * 100 + siteId;
 277:              }
 278:          }
 279:   
 280:          ////////////////////////////////////////////////////////////////////////////
 281:   
 282:          /// <summary>
 283:          ///
 284:          /// </summary>
 285:          public class Pstn
 286:          {
 287:              public Pstn() { }
 288:   
 289:              public int Id { get; set; }
 290:              public string Name { get; set; }
 291:              public PstnExchangeType PstnExchangeType { get; set; }
 292:              public string Ip { get; set; }
 293:              public string DomainListString { get; set; }
 294:              public List<int> DomainList { get; set; }
 295:              public virtual Site Site { get; set; }
 296:   
 297:              public int PstnId(int siteId, int pstnId)
 298:              {
 299:                  return siteId * 100 + pstnId;
 300:              }
 301:          }
 302:   
 303:   
 304:          ////////////////////////////////////////////////////////////////////////////
 305:   
 306:          /// <summary>
 307:          ///
 308:          /// </summary>
 309:          public class Router
 310:          {
 311:              public Router() { }
 312:   
 313:              public int Id { get; set; }
 314:              public string Name { get; set; }
 315:              public string DomainListString { get; set; }
 316:              public List<int> DomainList { get; set; }
 317:              public virtual Vendor Vendor { get; set; }
 318:              public virtual Site Site { get; set; }
 319:              public virtual ICollection<Oam> Oams
 320:              {
 321:                  get
 322:                  {
 323:                      return (from r in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OamList where r.Router == this select r).ToList();
 324:                  }
 325:              }
 326:   
 327:              public virtual ICollection<Odf> Odfs
 328:              {
 329:                  get
 330:                  {
 331:                      return (from o in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OdfList where o.Router == this select o).ToList();
 332:                  }
 333:              }
 334:   
 335:              public int RouterId(int siteId, int routerId)
 336:              {
 337:                  return siteId * 100 + routerId;
 338:              }
 339:          }
 340:   
 341:          ////////////////////////////////////////////////////////////////////////////
 342:   
 343:          /// <summary>
 344:          ///
 345:          /// </summary>
 346:          public class Oam
 347:          {
 348:              public Oam() { }
 349:   
 350:              public int Id { get; set; }
 351:              public string Network { get; set; }
 352:              public string Gateway { get; set; }
 353:              public int Vlan { get; set; }
 354:              public int Vpls { get; set; }
 355:              public string FtpIp { get; set; }
 356:              public string ConfigFile { get; set; }
 357:              public virtual Router Router { get; set; }
 358:   
 359:              public int OamId(int routerId, int oamId)
 360:              {
 361:                  return routerId * 100 + oamId;
 362:              }
 363:          }
 364:   
 365:          ////////////////////////////////////////////////////////////////////////////
 366:   
 367:          /// <summary>
 368:          ///
 369:          /// </summary>
 370:          public class Odf
 371:          {
 372:              public Odf() { }
 373:   
 374:              public int Id { get; set; }
 375:              public string Name { get; set; }
 376:              public string GatewayIp { get; set; }
 377:              public string MgcIp { get; set; }
 378:              public virtual Vendor Vendor { get; set; }
 379:              public virtual Router Router { get; set; }
 380:              public virtual ICollection<Olt> Olts
 381:              {
 382:                  get
 383:                  {
 384:                      return (from o in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OltList where o.Odf == this select o).ToList();
 385:                  }
 386:              }
 387:   
 388:              public int OdfId(int routerId, int odfId)
 389:              {
 390:                  return routerId * 100 + odfId;
 391:              }
 392:          }
 393:   
 394:          ////////////////////////////////////////////////////////////////////////////
 395:   
 396:          /// <summary>
 397:          ///
 398:          /// </summary>
 399:          public class Olt
 400:          {
 401:              public Olt() { }
 402:   
 403:              public int Id { get; set; }
 404:              public string Type { get; set; }
 405:              public int StateId { get; set; }
 406:              public bool IsSip { get; set; }
 407:              public int Rack { get; set; }
 408:              public int Sub { get; set; }
 409:              public string GatewayIp { get; set; }
 410:              public string MgcIp { get; set; }
 411:              public string Name { get; set; }
 412:              public string AmsName { get; set; }
 413:              public string EmsName
 414:              {
 415:                  get
 416:                  {
 417:                      return this.AmsName;
 418:                  }
 419:   
 420:                  set
 421:                  {
 422:                      this.AmsName = value;
 423:                  }
 424:              }
 425:              public int Did { get; set; }
 426:              public Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.FieldType FieldType { get; set; }
 427:              public string Symbol { get; set; }
 428:              public int NumberOfLts { get; set; }
 429:              public int NumberOfPonsPerLt { get; set; }
 430:              public int NumberOfPons { get; set; }
 431:              public int NumberOfOntsInPon { get; set; }
 432:              public int NumberOfFirstSlot { get; set; }
 433:              public virtual Odf Odf { get; set; }
 434:              public virtual ICollection<Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.PonGroup> PonGroupList
 435:              {
 436:                  get
 437:                  {
 438:                      return (from l in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.PonGroupList where l.Olt == this select l).ToList();
 439:                  }
 440:              }
 441:   
 442:              public int OltId(int odfId, int oltId)
 443:              {
 444:                  return odfId * 100 + oltId;
 445:              }
 446:          }
 447:   
 448:          ////////////////////////////////////////////////////////////////////////////
 449:   
 450:          /// <summary>
 451:          ///
 452:          /// </summary>
 453:          public class PonGroup
 454:          {
 455:              public PonGroup() { }
 456:   
 457:              public long Id { get; set; }
 458:              public string Symbol { get; set; }
 459:              public int Number { get; set; }
 460:              public string PonListString { get; set; }
 461:              public string ProposedPonListString { get; set; }
 462:              public List<int> UsedPonInPonGroupList { get; set; }
 463:              public List<int> UsedProposedPonInPonGroupList { get; set; }
 464:              public string NetworkNumber { get; set; }
 465:              public string GatewayIp { get; set; }
 466:              public string MgcIp { get; set; }
 467:              public virtual Olt Olt { get; set; }
 468:              public virtual ICollection<Pon> PonList
 469:              {
 470:                  get
 471:                  {
 472:                      return (from p in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.PonList where p.PonGroup == this select p).ToList();
 473:                  }
 474:              }
 475:   
 476:              public bool HasNewProposedPonList
 477:              {
 478:                  get
 479:                  {
 480:                      return !string.IsNullOrEmpty(this.ProposedPonListString) && this.ProposedPonListString != this.PonListString;
 481:                  }
 482:              }
 483:   
 484:              public long PonGroupId(int oltId, int ponGroupId)
 485:              {
 486:                  return (long)oltId * 100 + ponGroupId;
 487:              }
 488:          }
 489:   
 490:          ////////////////////////////////////////////////////////////////////////////
 491:   
 492:          /// <summary>
 493:          ///
 494:          /// </summary>
 495:          public class Pon
 496:          {
 497:              private const int FixedLengthOfId = 14;
 498:   
 499:              public Pon() { }
 500:   
 501:              public string Id { get; set; }
 502:              public int Index { get; set; }
 503:              public int PonGroupPonIndex { get; set; }
 504:              public int Rack { get; set; }
 505:              public int Sub { get; set; }
 506:              public int CardSlot { get; set; }
 507:              public int Port { get; set; }
 508:              public int Number { get; set; }
 509:              public int ProposedNumber { get; set; }
 510:              public string Position { get; set; }
 511:              public string Name { get; set; }
 512:              public string ProposedName { get; set; }
 513:              public virtual PonGroup PonGroup { get; set; }
 514:              public virtual ICollection<Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.Ont> OntList
 515:              {
 516:                  get
 517:                  {
 518:                      return (from o in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OntList where o.Pon == this select o).ToList();
 519:                  }
 520:              }
 521:   
 522:              public string PonId(int oltId, int oltPonIndex)
 523:              {
 524:                  string id;
 525:   
 526:                  // "01" to indicate PonGroup 1. This is the case in almost all PONs. I will remove 01 later
 527:                  id = oltId.ToString() + "01" + oltPonIndex.ToString().PadLeft(3, '0');
 528:   
 529:                  if (id.Length != FixedLengthOfId)
 530:                  {
 531:                      throw new ArgumentOutOfRangeException(@"PonId(): Id length is not " + FixedLengthOfId);
 532:                  }
 533:   
 534:                  return id;
 535:              }
 536:   
 537:              public string RxSxLtxPonx
 538:              {
 539:                  get
 540:                  {
 541:                      int ltNumber, ponNumber;
 542:                      string rxSxLtxPonx;
 543:   
 544:                      ltNumber = this.Number / this.PonGroup.Olt.NumberOfPonsPerLt + 1;
 545:                      ponNumber = this.Number - (ltNumber - 1) * this.PonGroup.Olt.NumberOfPonsPerLt;
 546:   
 547:                      rxSxLtxPonx = "R1.S1.LT" + ltNumber + ".PON" + ponNumber;
 548:   
 549:                      //rxSxLtxPonx = "R1.S1.LT7.PON1";
 550:   
 551:                      return rxSxLtxPonx;
 552:                  }
 553:              }
 554:          }
 555:   
 556:          ////////////////////////////////////////////////////////////////////////////
 557:   
 558:          /// <summary>
 559:          ///
 560:          /// </summary>
 561:          public class Ont
 562:          {
 563:              public Ont() { }
 564:   
 565:              public string Id { get; set; }
 566:              public int Rack { get; set; }
 567:              public int Sub { get; set; }
 568:              public int CardSlot { get; set; }
 569:              public int Port { get; set; }
 570:              public int Number { get; set; }
 571:              public int InternalNumber { get; set; }
 572:              public string Position { get; set; }
 573:              public string Ip { get; set; }
 574:   
 575:              public Ia.Ngn.Cl.Model.Business.Ims.ImsBasicService ImsBasicService { get; set; }
 576:   
 577:              public string MgcIp
 578:              {
 579:                  get
 580:                  {
 581:                      return ImsBasicService.MgcIp;
 582:                  }
 583:              }
 584:              public string MgcSecondaryIp
 585:              {
 586:                  get
 587:                  {
 588:                      return ImsBasicService.MgcSecondaryIp;
 589:                  }
 590:              }
 591:              public string MgcSubnetMask
 592:              {
 593:                  get
 594:                  {
 595:                      return ImsBasicService.MgcSubnetMask;
 596:                  }
 597:              }
 598:              public int ImsService
 599:              {
 600:                  get
 601:                  {
 602:                      return ImsBasicService.Service;
 603:                  }
 604:              }
 605:              public string ImsFsdb
 606:              {
 607:                  get
 608:                  {
 609:                      return ImsBasicService.Fsdb;
 610:                  }
 611:              }
 612:              public string PrimarySwitch
 613:              {
 614:                  get
 615:                  {
 616:                      return ImsBasicService.PrimarySwitch;
 617:                  }
 618:              }
 619:   
 620:              public virtual Pon Pon { get; set; }
 621:              public virtual Access Access { get; set; }
 622:   
 623:              ////////////////////////////////////////////////////////////////////////////
 624:   
 625:              /// <summary>
 626:              ///
 627:              /// </summary>
 628:              public string ToSimpleTextString()
 629:              {
 630:                  StringBuilder sb;
 631:                  Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.Vendor switchVendor, accessVendor;
 632:   
 633:                  sb = new StringBuilder();
 634:   
 635:                  switchVendor = (from o in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OntList where o.Id == this.Id select o.Pon.PonGroup.Olt.Odf.Router.Vendor).SingleOrDefault();
 636:                  accessVendor = (from o in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OntList where o.Id == this.Id select o.Pon.PonGroup.Olt.Odf.Vendor).SingleOrDefault();
 637:   
 638:                  sb.AppendLine("SwitchVendor: " + switchVendor.Name);
 639:                  sb.AppendLine("AccessVendor: " + accessVendor.Name);
 640:                  sb.AppendLine("AccessName: " + ((this.Access != null) ? this.Access.Name : string.Empty));
 641:                  sb.AppendLine("Position: " + this.Position);
 642:                  sb.AppendLine("Ip: " + this.Ip);
 643:                  sb.AppendLine("Site Name: " + this.Pon.PonGroup.Olt.Odf.Router.Site.Name);
 644:                  sb.AppendLine("PrimarySwitch: " + this.PrimarySwitch);
 645:                  sb.AppendLine("Olt Field Type: " + Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.FieldTypeString(this.Pon.PonGroup.Olt.FieldType));
 646:                  sb.AppendLine("Olt IsSip: " + Ia.Cl.Model.Default.YesNoText(this.Pon.PonGroup.Olt.IsSip));
 647:                  sb.AppendLine("NetworkNumber: " + this.Pon.PonGroup.NetworkNumber);
 648:                  sb.AppendLine("GatewayIp: " + this.Pon.PonGroup.GatewayIp);
 649:                  sb.AppendLine("MgcIp: " + this.MgcIp);
 650:                  sb.AppendLine("MgcSecondaryIp: " + this.MgcSecondaryIp);
 651:                  sb.AppendLine("ImsService: " + this.ImsService);
 652:                  sb.AppendLine("ImsFsdb: " + this.ImsFsdb);
 653:   
 654:                  return sb.ToString();
 655:              }
 656:          }
 657:   
 658:          ////////////////////////////////////////////////////////////////////////////
 659:   
 660:          /// <summary>
 661:          ///
 662:          /// </summary>
 663:          public class Access
 664:          {
 665:              public Access() { }
 666:   
 667:              public string Id { get; set; }
 668:              public string Name { get; set; }
 669:              public string ProposedName { get; set; }
 670:              public int Ont { get; set; }
 671:              public int Pon { get; set; }
 672:              public int ProposedPon { get; set; }
 673:              public string Symbol { get; set; }
 674:   
 675:              public string AccessId(int oltId, int ponNumber, int ontNumber)
 676:              {
 677:                  return Ia.Ngn.Cl.Model.Business.Access.AccessId(oltId, ponNumber, ontNumber);
 678:              }
 679:          }
 680:   
 681:          ////////////////////////////////////////////////////////////////////////////
 682:          ////////////////////////////////////////////////////////////////////////////    
 683:      }
 684:  }