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

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), Integrated 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:          /// <summary>
 195:          ///
 196:          /// </summary>
 197:          public class Network
 198:          {
 199:              public int Id { get; set; }
 200:              public string Name { get; set; }
 201:   
 202:              public Network(int id, string name)
 203:              {
 204:                  this.Id = id;
 205:                  this.Name = name;
 206:              }
 207:   
 208:              public virtual ICollection<Site> Sites
 209:              {
 210:                  get
 211:                  {
 212:                      return (from s in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.SiteList where s.Network == this select s).ToList();
 213:                  }
 214:              }
 215:          }
 216:   
 217:          ////////////////////////////////////////////////////////////////////////////
 218:   
 219:          /// <summary>
 220:          ///
 221:          /// </summary>
 222:          public class Site
 223:          {
 224:              public Site() { }
 225:   
 226:              public int Id { get; set; }
 227:              public string Name { get; set; }
 228:              public string ArabicName { get; set; }
 229:              public string NameArabicName
 230:              {
 231:                  get
 232:                  {
 233:                      return Name + " (" + ArabicName + ")";
 234:                  }
 235:              }
 236:              public List<string> AreaSymbolList { get; set; }
 237:              public virtual Network Network { get; set; }
 238:   
 239:              public virtual ICollection<Router> Routers
 240:              {
 241:                  get
 242:                  {
 243:                      return (from r in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.RouterList where r.Site == this select r).ToList();
 244:                  }
 245:              }
 246:   
 247:              public virtual ICollection<Ia.Ngn.Cl.Model.Business.Service.KuwaitNgnArea> KuwaitNgnAreas
 248:              {
 249:                  get
 250:                  {
 251:                      ICollection<Ia.Ngn.Cl.Model.Business.Service.KuwaitNgnArea> ic;
 252:   
 253:                      ic = (from kna in Ia.Ngn.Cl.Model.Data.Service.KuwaitNgnAreaList where this.AreaSymbolList.Contains(kna.Symbol) select kna).ToList();
 254:   
 255:                      return ic;
 256:                  }
 257:              }
 258:   
 259:              public List<int> DomainList
 260:              {
 261:                  get
 262:                  {
 263:                      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();
 264:   
 265:                      return siteRouterDomainList;
 266:                  }
 267:              }
 268:   
 269:              public int NumberOfPossibleServicesWithinDomainList
 270:              {
 271:                  get
 272:                  {
 273:                      return Ia.Ngn.Cl.Model.Data.Service.NumberOfPossibleServicesWithinDomainList(this.DomainList);
 274:                  }
 275:              }
 276:   
 277:              public int SiteId(int networkId, int siteId)
 278:              {
 279:                  return networkId * 100 + siteId;
 280:              }
 281:          }
 282:   
 283:          ////////////////////////////////////////////////////////////////////////////
 284:   
 285:          /// <summary>
 286:          ///
 287:          /// </summary>
 288:          public class Pstn
 289:          {
 290:              public Pstn() { }
 291:   
 292:              public int Id { get; set; }
 293:              public string Name { get; set; }
 294:              public PstnExchangeType PstnExchangeType { get; set; }
 295:              public string Ip { get; set; }
 296:              public string DomainListString { get; set; }
 297:              public List<int> DomainList { get; set; }
 298:              public virtual Site Site { get; set; }
 299:   
 300:              public int PstnId(int siteId, int pstnId)
 301:              {
 302:                  return siteId * 100 + pstnId;
 303:              }
 304:          }
 305:   
 306:   
 307:          ////////////////////////////////////////////////////////////////////////////
 308:   
 309:          /// <summary>
 310:          ///
 311:          /// </summary>
 312:          public class Router
 313:          {
 314:              public Router() { }
 315:   
 316:              public int Id { get; set; }
 317:              public string Name { get; set; }
 318:              public string DomainListString { get; set; }
 319:              public List<int> DomainList { get; set; }
 320:              public virtual Vendor Vendor { get; set; }
 321:              public virtual Site Site { get; set; }
 322:              public virtual ICollection<Oam> Oams
 323:              {
 324:                  get
 325:                  {
 326:                      return (from r in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OamList where r.Router == this select r).ToList();
 327:                  }
 328:              }
 329:   
 330:              public virtual ICollection<Odf> Odfs
 331:              {
 332:                  get
 333:                  {
 334:                      return (from o in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OdfList where o.Router == this select o).ToList();
 335:                  }
 336:              }
 337:   
 338:              public int RouterId(int siteId, int routerId)
 339:              {
 340:                  return siteId * 100 + routerId;
 341:              }
 342:          }
 343:   
 344:          ////////////////////////////////////////////////////////////////////////////
 345:   
 346:          /// <summary>
 347:          ///
 348:          /// </summary>
 349:          public class Oam
 350:          {
 351:              public Oam() { }
 352:   
 353:              public int Id { get; set; }
 354:              public string Network { get; set; }
 355:              public string Gateway { get; set; }
 356:              public int Vlan { get; set; }
 357:              public int Vpls { get; set; }
 358:              public string FtpIp { get; set; }
 359:              public string ConfigFile { get; set; }
 360:              public virtual Router Router { get; set; }
 361:   
 362:              public int OamId(int routerId, int oamId)
 363:              {
 364:                  return routerId * 100 + oamId;
 365:              }
 366:          }
 367:   
 368:          ////////////////////////////////////////////////////////////////////////////
 369:   
 370:          /// <summary>
 371:          ///
 372:          /// </summary>
 373:          public class Odf
 374:          {
 375:              public Odf() { }
 376:   
 377:              public int Id { get; set; }
 378:              public string Name { get; set; }
 379:              public string GatewayIp { get; set; }
 380:              public string MgcIp { get; set; }
 381:              public virtual Vendor Vendor { get; set; }
 382:              public virtual Router Router { get; set; }
 383:              public virtual ICollection<Olt> Olts
 384:              {
 385:                  get
 386:                  {
 387:                      return (from o in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OltList where o.Odf == this select o).ToList();
 388:                  }
 389:              }
 390:   
 391:              public int OdfId(int routerId, int odfId)
 392:              {
 393:                  return routerId * 100 + odfId;
 394:              }
 395:          }
 396:   
 397:          ////////////////////////////////////////////////////////////////////////////
 398:   
 399:          /// <summary>
 400:          ///
 401:          /// </summary>
 402:          public class Olt
 403:          {
 404:              public Olt() { }
 405:   
 406:              public int Id { get; set; }
 407:              public string Type { get; set; }
 408:              public int StateId { get; set; }
 409:              public bool IsSip { get; set; }
 410:              public int Rack { get; set; }
 411:              public int Sub { get; set; }
 412:              public string GatewayIp { get; set; }
 413:              public string MgcIp { get; set; }
 414:              public string Name { get; set; }
 415:              public string AmsName { get; set; }
 416:              public string EmsName
 417:              {
 418:                  get
 419:                  {
 420:                      return this.AmsName;
 421:                  }
 422:   
 423:                  set
 424:                  {
 425:                      this.AmsName = value;
 426:                  }
 427:              }
 428:              public int Did { get; set; }
 429:              public Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.FieldType FieldType { get; set; }
 430:              public string Symbol { get; set; }
 431:              public int NumberOfLts { get; set; }
 432:              public int NumberOfPonsPerLt { get; set; }
 433:              public int NumberOfPons { get; set; }
 434:              public int NumberOfOntsInPon { get; set; }
 435:              public int NumberOfFirstSlot { get; set; }
 436:              public virtual Odf Odf { get; set; }
 437:              public virtual ICollection<Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.PonGroup> PonGroupList
 438:              {
 439:                  get
 440:                  {
 441:                      return (from l in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.PonGroupList where l.Olt == this select l).ToList();
 442:                  }
 443:              }
 444:   
 445:              public int OltId(int odfId, int oltId)
 446:              {
 447:                  return odfId * 100 + oltId;
 448:              }
 449:          }
 450:   
 451:          ////////////////////////////////////////////////////////////////////////////
 452:   
 453:          /// <summary>
 454:          ///
 455:          /// </summary>
 456:          public class PonGroup
 457:          {
 458:              public PonGroup() { }
 459:   
 460:              public long Id { get; set; }
 461:              public string Symbol { get; set; }
 462:              public int Number { get; set; }
 463:              public string PonListString { get; set; }
 464:              public string ProposedPonListString { get; set; }
 465:              public List<int> UsedPonInPonGroupList { get; set; }
 466:              public List<int> UsedProposedPonInPonGroupList { get; set; }
 467:              public string NetworkNumber { get; set; }
 468:              public string GatewayIp { get; set; }
 469:              public string MgcIp { get; set; }
 470:              public virtual Olt Olt { get; set; }
 471:              public virtual ICollection<Pon> PonList
 472:              {
 473:                  get
 474:                  {
 475:                      return (from p in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.PonList where p.PonGroup == this select p).ToList();
 476:                  }
 477:              }
 478:   
 479:              public bool HasNewProposedPonList
 480:              {
 481:                  get
 482:                  {
 483:                      return !string.IsNullOrEmpty(this.ProposedPonListString) && this.ProposedPonListString != this.PonListString;
 484:                  }
 485:              }
 486:   
 487:              public long PonGroupId(int oltId, int ponGroupId)
 488:              {
 489:                  return (long)oltId * 100 + ponGroupId;
 490:              }
 491:          }
 492:   
 493:          ////////////////////////////////////////////////////////////////////////////
 494:   
 495:          /// <summary>
 496:          ///
 497:          /// </summary>
 498:          public class Pon
 499:          {
 500:              private const int FixedLengthOfId = 14;
 501:   
 502:              public Pon() { }
 503:   
 504:              public string Id { get; set; }
 505:              public int Index { get; set; }
 506:              public int PonGroupPonIndex { get; set; }
 507:              public int Rack { get; set; }
 508:              public int Sub { get; set; }
 509:              public int CardSlot { get; set; }
 510:              public int Port { get; set; }
 511:              public int Number { get; set; }
 512:              public int ProposedNumber { get; set; }
 513:              public string Position { get; set; }
 514:              public string Name { get; set; }
 515:              public string ProposedName { get; set; }
 516:              public virtual PonGroup PonGroup { get; set; }
 517:              public virtual ICollection<Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.Ont> OntList
 518:              {
 519:                  get
 520:                  {
 521:                      return (from o in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OntList where o.Pon == this select o).ToList();
 522:                  }
 523:              }
 524:   
 525:              public string PonId(int oltId, int oltPonIndex)
 526:              {
 527:                  string id;
 528:   
 529:                  // "01" to indicate PonGroup 1. This is the case in almost all PONs. I will remove 01 later
 530:                  id = oltId.ToString() + "01" + oltPonIndex.ToString().PadLeft(3, '0');
 531:   
 532:                  if (id.Length != FixedLengthOfId)
 533:                  {
 534:                      throw new ArgumentOutOfRangeException(@"PonId(): Id length is not " + FixedLengthOfId);
 535:                  }
 536:   
 537:                  return id;
 538:              }
 539:   
 540:              public string RxSxLtxPonx
 541:              {
 542:                  get
 543:                  {
 544:                      int ltNumber, ponNumber;
 545:                      string rxSxLtxPonx;
 546:   
 547:                      ltNumber = this.Number / this.PonGroup.Olt.NumberOfPonsPerLt + 1;
 548:                      ponNumber = this.Number - (ltNumber - 1) * this.PonGroup.Olt.NumberOfPonsPerLt;
 549:   
 550:                      rxSxLtxPonx = "R1.S1.LT" + ltNumber + ".PON" + ponNumber;
 551:   
 552:                      //rxSxLtxPonx = "R1.S1.LT7.PON1";
 553:   
 554:                      return rxSxLtxPonx;
 555:                  }
 556:              }
 557:          }
 558:   
 559:          ////////////////////////////////////////////////////////////////////////////
 560:   
 561:          /// <summary>
 562:          ///
 563:          /// </summary>
 564:          public class Ont
 565:          {
 566:              public Ont() { }
 567:   
 568:              public string Id { get; set; }
 569:              public int Rack { get; set; }
 570:              public int Sub { get; set; }
 571:              public int CardSlot { get; set; }
 572:              public int Port { get; set; }
 573:              public int Number { get; set; }
 574:              public int InternalNumber { get; set; }
 575:              public string Position { get; set; }
 576:              public string Ip { get; set; }
 577:   
 578:              public Ia.Ngn.Cl.Model.Business.Ims.ImsBasicService ImsBasicService { get; set; }
 579:   
 580:              public string MgcIp
 581:              {
 582:                  get
 583:                  {
 584:                      return ImsBasicService.MgcIp;
 585:                  }
 586:              }
 587:              public string MgcSecondaryIp
 588:              {
 589:                  get
 590:                  {
 591:                      return ImsBasicService.MgcSecondaryIp;
 592:                  }
 593:              }
 594:              public string MgcSubnetMask
 595:              {
 596:                  get
 597:                  {
 598:                      return ImsBasicService.MgcSubnetMask;
 599:                  }
 600:              }
 601:              public int ImsService
 602:              {
 603:                  get
 604:                  {
 605:                      return ImsBasicService.Service;
 606:                  }
 607:              }
 608:              public string ImsFsdb
 609:              {
 610:                  get
 611:                  {
 612:                      return ImsBasicService.Fsdb;
 613:                  }
 614:              }
 615:              public string PrimarySwitch
 616:              {
 617:                  get
 618:                  {
 619:                      return ImsBasicService.PrimarySwitch;
 620:                  }
 621:              }
 622:   
 623:              public virtual Pon Pon { get; set; }
 624:              public virtual Access Access { get; set; }
 625:   
 626:              ////////////////////////////////////////////////////////////////////////////
 627:   
 628:              /// <summary>
 629:              ///
 630:              /// </summary>
 631:              public string ToSimpleTextString()
 632:              {
 633:                  StringBuilder sb;
 634:                  Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.Vendor switchVendor, accessVendor;
 635:   
 636:                  sb = new StringBuilder();
 637:   
 638:                  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();
 639:                  accessVendor = (from o in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OntList where o.Id == this.Id select o.Pon.PonGroup.Olt.Odf.Vendor).SingleOrDefault();
 640:   
 641:                  sb.AppendLine("SwitchVendor: " + switchVendor.Name);
 642:                  sb.AppendLine("AccessVendor: " + accessVendor.Name);
 643:                  sb.AppendLine("AccessName: " + ((this.Access != null) ? this.Access.Name : string.Empty));
 644:                  sb.AppendLine("Position: " + this.Position);
 645:                  sb.AppendLine("Ip: " + this.Ip);
 646:                  sb.AppendLine("Site Name: " + this.Pon.PonGroup.Olt.Odf.Router.Site.Name);
 647:                  sb.AppendLine("PrimarySwitch: " + this.PrimarySwitch);
 648:                  sb.AppendLine("Olt Field Type: " + Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.FieldTypeString(this.Pon.PonGroup.Olt.FieldType));
 649:                  sb.AppendLine("Olt IsSip: " + Ia.Cl.Model.Default.YesNoText(this.Pon.PonGroup.Olt.IsSip));
 650:                  sb.AppendLine("NetworkNumber: " + this.Pon.PonGroup.NetworkNumber);
 651:                  sb.AppendLine("GatewayIp: " + this.Pon.PonGroup.GatewayIp);
 652:                  sb.AppendLine("MgcIp: " + this.MgcIp);
 653:                  sb.AppendLine("MgcSecondaryIp: " + this.MgcSecondaryIp);
 654:                  sb.AppendLine("ImsService: " + this.ImsService);
 655:                  sb.AppendLine("ImsFsdb: " + this.ImsFsdb);
 656:   
 657:                  return sb.ToString();
 658:              }
 659:          }
 660:   
 661:          ////////////////////////////////////////////////////////////////////////////
 662:   
 663:          /// <summary>
 664:          ///
 665:          /// </summary>
 666:          public class Access
 667:          {
 668:              public Access() { }
 669:   
 670:              public string Id { get; set; }
 671:              public string Name { get; set; }
 672:              public string ProposedName { get; set; }
 673:              public int Ont { get; set; }
 674:              public int Pon { get; set; }
 675:              public int ProposedPon { get; set; }
 676:              public string Symbol { get; set; }
 677:   
 678:              public string AccessId(int oltId, int ponNumber, int ontNumber)
 679:              {
 680:                  return Ia.Ngn.Cl.Model.Business.Access.AccessId(oltId, ponNumber, ontNumber);
 681:              }
 682:          }
 683:   
 684:          ////////////////////////////////////////////////////////////////////////////
 685:          ////////////////////////////////////////////////////////////////////////////    
 686:      }
 687:  }