)>}]
شركة التطبيقات المتكاملة لتصميم وبرمجة البرمجيات الخاصة ش.ش.و.
Integrated Applications Programming Company
Skip Navigation Links

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.Model.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.Model.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.Model.NetworkDesignDocument.NddPon NddPon { get; set; }
  144:  
  145:         /// <summary/>
  146:         public virtual Ia.Ngn.Cl.Model.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.Model.Business.Access.AccessId(oltId, ponNumber, ontNumber);
  184:         }
  185:     }
  186:  
  187:     ////////////////////////////////////////////////////////////////////////////
  188:     ////////////////////////////////////////////////////////////////////////////    
  189: }