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

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

SERUATTR Signaling Service Processing System (SPS) support class for Huawei's Optical Fiber Network (OFN) entity model.

    1: using System;
    2: using System.ComponentModel.DataAnnotations;
    3: using System.ComponentModel.DataAnnotations.Schema;
    4: using System.Linq;
    5: using System.Threading;
    6: using System.Threading.Tasks;
    7:  
    8: namespace Ia.Ngn.Cl.Model.Huawei
    9: {
   10:     ////////////////////////////////////////////////////////////////////////////
   11:  
   12:     /// <summary publish="true">
   13:     /// SERUATTR Signaling Service Processing System (SPS) support class for Huawei's Optical Fiber Network (OFN) entity model.
   14:     /// </summary>
   15:     /// 
   16:     /// <remarks> 
   17:     /// Copyright © 2018-2021 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
   18:     ///
   19:     /// 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
   20:     /// the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
   21:     ///
   22:     /// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
   23:     /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
   24:     /// 
   25:     /// You should have received a copy of the GNU General Public License along with this library. If not, see http://www.gnu.org/licenses.
   26:     /// 
   27:     /// Copyright notice: This notice may not be removed or altered from any source distribution.
   28:     /// </remarks> 
   29:     public class Seruattr
   30:     {
   31:         /*
   32:          * HUAWEI SPS Signaling Service Processing System
   33:          * V300R008C10
   34:          * SPS V300R008C10 PGW MML Command Protocol (NP)
   35:          */
   36:  
   37:         /// <summary/>
   38:         public Seruattr() { }
   39:  
   40:         /// <summary/>
   41:         [Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
   42:         public string Id { get; set; }
   43:  
   44:         /// <summary>
   45:         /// int SERVATTR Whether enable related services (e.g. OMNP-1) Enumerated This parameter specifies which service is enabled. It is a mandatory parameter. Value: OMNP(Enable MNP service). No default value
   46:         /// </summary>
   47:         public int SERVATTR { get; set; }
   48:  
   49:         /// <summary>
   50:         /// int NUMTYPE Number type Enumerated This parameter specifies the type of a subscriber. It is a mandatory parameter. 
   51:         /// </summary>
   52:         public int NUMTYPE { get; set; }
   53:  
   54:         /// <summary>
   55:         /// string USRNUM MSISDN String (16) The parameter specifies the MSISDN of a service subscriber. It is the key parameter that identifies a service subscriber. It is mandatory. 
   56:         /// </summary>
   57:         public string USRNUM { get; set; }
   58:  
   59:         /// <summary>
   60:         /// string IMSINUM User IMSI number String (16) This parameter specifies the IMSI of a subscriber. 
   61:         /// </summary>
   62:         public string IMSINUM { get; set; }
   63:  
   64:         /// <summary>
   65:         /// string DESC Description 
   66:         /// </summary>
   67:         public string DESC { get; set; }
   68:  
   69:         /// <summary>
   70:         /// int RNIDXTYPE Route index type Enumerated This parameter specifies the route index type of a subscriber. It is a mandatory parameter. 
   71:         /// </summary>
   72:         public int RNIDXTYPE { get; set; }
   73:  
   74:         /// <summary>
   75:         /// int HLRIDX HLR address index e.g. HLRIDX=1 HLRIDX HLR address index Numeric This parameter specifies the homing HLR index of a subscriber. It is valid only when Route index type is set to HLR(HLR number index) or ALL(HLR+RN). This parameter must be defined by running ADD SEMNPHLRADDR before being used. Value range: 0 to 65535. Default value: 65535
   76:         /// </summary>
   77:         public int HLRIDX { get; set; }
   78:  
   79:         /// <summary>
   80:         /// int RNIDX NP route index (e.g. RNIDX=0) NP route index Numeric This parameter specifies the route number index of the network where a subscriber belongs. It is valid only when Route index type is set to RN(Route number index). This parameter must be defined by running ADD SEMNPROUTENUM before being used. Value range: 0 to 65535. Default value: 65535
   81:         /// </summary>
   82:         public int RNIDX { get; set; }
   83:  
   84:         /// <summary>
   85:         /// int RNIDX2 Routing number index Numeric This parameter specifies the route number index of the network where a subscriber belongs. It is valid only when Route index type is set to ALL(HLR+RN). This parameter must be defined by running ADD SEMNPROUTENUM before being used. Value range: 0 to 65535. Default value: 65535
   86:         /// </summary>
   87:         public int RNIDX2 { get; set; }
   88:  
   89:         /// <summary>
   90:         /// string RN Routing number String (16) This parameter specifies the route number of the network where a subscriber belongs. It is valid only when Route index type is set to ALL(HLR+RN). This parameter must be defined by running ADD SEMNPROUTENUM before being used.. Value: a number of a maximum of 16 hexadecimal digits. No default value
   91:         /// </summary>
   92:         public string RN { get; set; }
   93:  
   94:         /// <summary/>
   95:         public DateTime Created { get; set; }
   96:  
   97:         /// <summary/>
   98:         public DateTime Updated { get; set; }
   99:  
  100:         ////////////////////////////////////////////////////////////////////////////
  101:  
  102:         /// <summary>
  103:         ///
  104:         /// </summary>
  105:         public bool Equal(Ia.Ngn.Cl.Model.Huawei.Seruattr b)
  106:         {
  107:             // below: this will not check the Id, Created, Updated fields
  108:             bool areEqual;
  109:  
  110:             if (this.SERVATTR != b.SERVATTR) areEqual = false;
  111:             else if (this.NUMTYPE != b.NUMTYPE) areEqual = false;
  112:             else if (this.USRNUM != b.USRNUM) areEqual = false;
  113:             else if (this.IMSINUM != b.IMSINUM) areEqual = false;
  114:             else if (this.DESC != b.DESC) areEqual = false;
  115:             else if (this.RNIDXTYPE != b.RNIDXTYPE) areEqual = false;
  116:             else if (this.HLRIDX != b.HLRIDX) areEqual = false;
  117:             else if (this.RNIDX != b.RNIDX) areEqual = false;
  118:             else if (this.RNIDX2 != b.RNIDX2) areEqual = false;
  119:             else if (this.RN != b.RN) areEqual = false;
  120:             else areEqual = true;
  121:  
  122:             return areEqual;
  123:         }
  124:  
  125:         ////////////////////////////////////////////////////////////////////////////
  126:  
  127:         /// <summary>
  128:         ///
  129:         /// </summary>
  130:         public bool Update(Ia.Ngn.Cl.Model.Huawei.Seruattr updatedItem)
  131:         {
  132:             // below: this will not update Id, Created
  133:             bool updated;
  134:  
  135:             updated = false;
  136:  
  137:             if (this.SERVATTR != updatedItem.SERVATTR) { this.SERVATTR = updatedItem.SERVATTR; updated = true; }
  138:             if (this.NUMTYPE != updatedItem.NUMTYPE) { this.NUMTYPE = updatedItem.NUMTYPE; updated = true; }
  139:             if (this.USRNUM != updatedItem.USRNUM) { this.USRNUM = updatedItem.USRNUM; updated = true; }
  140:             if (this.IMSINUM != updatedItem.IMSINUM) { this.IMSINUM = updatedItem.IMSINUM; updated = true; }
  141:             if (this.DESC != updatedItem.DESC) { this.DESC = updatedItem.DESC; updated = true; }
  142:             if (this.RNIDXTYPE != updatedItem.RNIDXTYPE) { this.RNIDXTYPE = updatedItem.RNIDXTYPE; updated = true; }
  143:             if (this.HLRIDX != updatedItem.HLRIDX) { this.HLRIDX = updatedItem.HLRIDX; updated = true; }
  144:             if (this.RNIDX != updatedItem.RNIDX) { this.RNIDX = updatedItem.RNIDX; updated = true; }
  145:             if (this.RNIDX2 != updatedItem.RNIDX2) { this.RNIDX2 = updatedItem.RNIDX2; updated = true; }
  146:             if (this.RN != updatedItem.RN) { this.RN = updatedItem.RN; updated = true; }
  147:  
  148:             if (updated) this.Updated = DateTime.UtcNow.AddHours(3);
  149:  
  150:             return updated;
  151:         }
  152:  
  153:         ////////////////////////////////////////////////////////////////////////////
  154:         ////////////////////////////////////////////////////////////////////////////
  155:  
  156:         /// <summary>
  157:         ///
  158:         /// </summary>
  159:         public string ToSimpleTextString()
  160:         {
  161:             return Ia.Ngn.Cl.Model.Data.Huawei.Seruattr.ToSimpleTextString(this);
  162:         }
  163:  
  164:         ////////////////////////////////////////////////////////////////////////////
  165:         ////////////////////////////////////////////////////////////////////////////
  166:     }
  167:  
  168:     ////////////////////////////////////////////////////////////////////////////
  169:     ////////////////////////////////////////////////////////////////////////////
  170: }