)>}]
شركة التطبيقات المتكاملة لتصميم وبرمجة البرمجيات الخاصة ش.ش.و.
Integrated Applications Programming Company
Home » Code Library » NddPon (Ia.Ngn.Cl.Models.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) entity model.

    1: using System;
    2: using System.Collections.Generic;
    3: using System.Data;
    4: using System.Linq;
    5: using System.Text;
    6:  
    7: // I cancelled this part. All NDD related items could be generated by code
    8:  
    9: namespace Ia.Ngn.Cl.Models.NetworkDesignDocument
   10: {
   11:     ////////////////////////////////////////////////////////////////////////////
   12:  
   13:     /// <summary publish="true">
   14:     /// Network Design Document support class for Next Generation Network (NGN) entity model.
   15:     /// </summary>
   16:     /// 
   17:     /// <remarks> 
   18:     /// Copyright © 2006-2020 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
   19:     ///
   20:     /// 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
   21:     /// the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
   22:     ///
   23:     /// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
   24:     /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
   25:     /// 
   26:     /// You should have received a copy of the GNU General Public License along with this library. If not, see http://www.gnu.org/licenses.
   27:     /// 
   28:     /// Copyright notice: This notice may not be removed or altered from any source distribution.
   29:     /// </remarks> 
   30:  
   31:     ////////////////////////////////////////////////////////////////////////////
   32:  
   33:     /// <summary>
   34:     ///
   35:     /// </summary>
   36:     public class NddPon
   37:     {
   38:         private const int FixedLengthOfId = 14;
   39:  
   40:         /// <summary/>
   41:         public NddPon() { }
   42:  
   43:         /// <summary/>
   44:         public string Id { get; set; }
   45:  
   46:         /// <summary/>
   47:         public int Index { get; set; }
   48:  
   49:         /// <summary/>
   50:         public int PonGroupPonIndex { get; set; }
   51:  
   52:         /// <summary/>
   53:         public int Rack { get; set; }
   54:  
   55:         /// <summary/>
   56:         public int Sub { get; set; }
   57:  
   58:         /// <summary/>
   59:         public int CardSlot { get; set; }
   60:  
   61:         /// <summary/>
   62:         public int Port { get; set; }
   63:  
   64:         /// <summary/>
   65:         public int Number { get; set; }
   66:  
   67:         /// <summary/>
   68:         public int ProposedNumber { get; set; }
   69:  
   70:         /// <summary/>
   71:         public string Position { get; set; }
   72:  
   73:         /// <summary/>
   74:         public string Name { get; set; }
   75:  
   76:         /// <summary/>
   77:         public string ProposedName { get; set; }
   78:  
   79:         /// <summary/>
   80:         public long PonGroupId { get; set; }
   81:  
   82:         /// <summary/>
   83:         public virtual ICollection<Ia.Ngn.Cl.Models.NetworkDesignDocument.NddOnt> NddOnts { get; set; }
   84:  
   85:         /// <summary/>
   86:         public string PonId(int oltId, int oltPonIndex)
   87:         {
   88:             string id;
   89:  
   90:             // "01" to indicate PonGroup 1. This is the case in almost all PONs. I will remove 01 later
   91:             id = oltId.ToString() + "01" + oltPonIndex.ToString().PadLeft(3, '0');
   92:  
   93:             if (id.Length != FixedLengthOfId)
   94:             {
   95:                 throw new ArgumentOutOfRangeException(@"PonId(): Id length is not " + FixedLengthOfId);
   96:             }
   97:  
   98:             return id;
   99:         }
  100:     }
  101:  
  102:     ////////////////////////////////////////////////////////////////////////////
  103:  
  104:     /// <summary>
  105:     ///
  106:     /// </summary>
  107:     public class NddOnt
  108:     {
  109:         /// <summary/>
  110:         public NddOnt() { }
  111:  
  112:         /// <summary/>
  113:         public string Id { get; set; }
  114:  
  115:         /// <summary/>
  116:         public int Rack { get; set; }
  117:  
  118:         /// <summary/>
  119:         public int Sub { get; set; }
  120:  
  121:         /// <summary/>
  122:         public int CardSlot { get; set; }
  123:  
  124:         /// <summary/>
  125:         public int Port { get; set; }
  126:  
  127:         /// <summary/>
  128:         public int Number { get; set; }
  129:  
  130:         /// <summary/>
  131:         public int InternalNumber { get; set; }
  132:  
  133:         /// <summary/>
  134:         public string Position { get; set; }
  135:  
  136:         /// <summary/>
  137:         public string Ip { get; set; }
  138:  
  139:         /// <summary/>
  140:         public string ImsBasicServiceMgcIp { get; set; }
  141:  
  142:         /// <summary/>
  143:         public virtual Ia.Ngn.Cl.Models.NetworkDesignDocument.NddPon NddPon { get; set; }
  144:  
  145:         /// <summary/>
  146:         public virtual Ia.Ngn.Cl.Models.NetworkDesignDocument.NddAccess NddAccess { get; set; }
  147:     }
  148:  
  149:     ////////////////////////////////////////////////////////////////////////////
  150:  
  151:     /// <summary>
  152:     ///
  153:     /// </summary>
  154:     public class NddAccess
  155:     {
  156:         /// <summary/>
  157:         public NddAccess() { }
  158:  
  159:         /// <summary/>
  160:         public string Id { get; set; }
  161:  
  162:         /// <summary/>
  163:         public string Name { get; set; }
  164:  
  165:         /// <summary/>
  166:         public string ProposedName { get; set; }
  167:  
  168:         /// <summary/>
  169:         public int Ont { get; set; }
  170:  
  171:         /// <summary/>
  172:         public int Pon { get; set; }
  173:  
  174:         /// <summary/>
  175:         public int ProposedPon { get; set; }
  176:  
  177:         /// <summary/>
  178:         public string Symbol { get; set; }
  179:  
  180:         /// <summary/>
  181:         public string AccessId(int oltId, int ponNumber, int ontNumber)
  182:         {
  183:             return Ia.Ngn.Cl.Models.Business.Access.AccessId(oltId, ponNumber, ontNumber);
  184:         }
  185:     }
  186:  
  187:     ////////////////////////////////////////////////////////////////////////////
  188:     ////////////////////////////////////////////////////////////////////////////    
  189: }