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

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

Huawei's AGCF Users (ASBR) Entity Framework class for 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:     /// Huawei's AGCF Users (ASBR) Entity Framework class for Optical Fiber Network (OFN) entity model.
   14:     /// </summary>
   15:     /// 
   16:     /// <remarks> 
   17:     /// Copyright © 2019-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 Asbr
   30:     {
   31:         /*
   32: ADD AGCF Users (ADD ASBR)
   33: 
   34: ADD ASBR is used to add AGCF subscriber data, including the data for ESL, V5, BRA, V5BRA, and PRA subscribers, so that these subscribers can be connected to the IMS Core using the AGCF.
   35: 
   36: Note
   37: Before adding a subscriber to the SoftX3000, this subscriber must be defined on the HSS9820 and ATS9900 in the IMS Core to which the SoftX3000 will connect this subscriber; otherwise, the subscriber fails to register or use the service.
   38: Before running this command, run ADD DMAP to add an emergency digitmap and then run MOD EMCYGRP to set Emergency call digitmap name to the added emergency digitmap.
   39: Emergency call group name is set to default for H.248 subscribers by default.
   40: Emergency call group name is set to default_mgcp_grp for MGCP subscribers by default.
   41:          */
   42:  
   43:         /// <summary/>
   44:         public Asbr() { }
   45:  
   46:         /// <summary/>
   47:         [Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
   48:         public string Id { get; set; }
   49:  
   50:         /// <summary>
   51:         /// Network element
   52:         /// </summary>
   53:         public string NetworkElement { get; set; }
   54:  
   55:         /// <summary>
   56:         /// Public User ID: This parameter specifies the public ID of the subscriber to be added. The value of this parameter must start with "sip:". Note: The user ID used outside the IMS Core is the public user ID that is used to communicate with others. The value of this parameter must be the same as the user ID defined on the HSS9820 and ATS9900. Value: a string of up to 128 characters No default value
   57:         /// </summary>
   58:         public string PUI { get; set; }
   59:  
   60:         /// <summary>
   61:         /// Private User ID: This parameter specifies the private ID of the subscriber to be added. Note: The private user ID for IMS subscribers, is a globally unique identity defined by a home network carrier. It is used to uniquely identify a piece of subscription in the home network from a network perspective. The value of this parameter must be the same as the user ID defined on the HSS9820 and ATS9900. Value: a string of up to 128 characters No default value
   62:         /// </summary>
   63:         public string PRI { get; set; }
   64:  
   65:         /// <summary>
   66:         /// Register Type: This parameter specifies the register type of the subscriber. The options are as follows: Single: indicates that the subscriber can use services only after this subscriber successfully registers with the IMS. Group: indicates that the subscriber can use services after the registration group successfully registers with the IMS. A registration group can be added as required by running ADD REGGRP. No default value
   67:         /// </summary>
   68:         public string REGTP { get; set; }
   69:  
   70:         /// <summary>
   71:         /// Port Type: This parameter specifies the type for a single subscriber. This parameter is valid only when Register type is set to Single. The options are as follows: ESL subscriber: indicates that subscribers gain access to the SoftX3000 through the H.248 or MGCP protocol. V5 subscriber: indicates that subscribers gain access to the SoftX3000 through the V5 protocol. BRA subscriber: indicates that subscribers gain access to the SoftX3000 through the H.248 protocol. V5 BRA subscriber: indicates that subscribers gain access to the SoftX3000 through the V5 protocol. PRA subscriber: indicates that subscribers gain access to the SoftX3000 through the H.248 protocol. Default value: ESL subscriber
   72:         /// </summary>
   73:         public string DID { get; set; }
   74:  
   75:         /// <summary>
   76:         /// Port Type: This parameter specifies the type for a group subscriber. This parameter is valid only when Register type is set to Group. The options are as follows: ESL subscriber: indicates that subscribers gain access to the SoftX3000 through the H.248 or MGCP protocol. V5 subscriber: indicates that subscribers gain access to the SoftX3000 through the V5 protocol. Default value: ESL subscriber
   77:         /// </summary>
   78:         public string DIDG { get; set; }
   79:  
   80:         /// <summary>
   81:         /// Terminal Equipment Type: This parameter specifies type of the terminal equipment a specified subscriber uses. The options are as follows: Normal Terminal: indicates that the SoftX3000 processes the emergency call as a normal emergency call when a subscriber initiates an emergency call using the normal terminal. Payphone Terminal: When a subscriber who does not register with the SoftX3000 or does not subscribe to the ua-profile service, initiates an emergency call, "Termination equipment type" must be set to "Payphone" to enable the SoftX3000 to send the polarity reversal indication to the subscriber when an emergency call is established and released. Default value: Normal Terminal
   82:         /// </summary>
   83:         public string TET { get; set; }
   84:  
   85:         /// <summary>
   86:         /// Module Number: This parameter specifies the module number of the UACU on which the subscriber data is configured. This parameter is valid only when Register type is set to Single and Port type is set to ESL subscriber. This parameter must be defined by running ADD BRD before being referenced. Note: If this parameter is left empty, the subscribers served by the static MGWs may be added to the module with the minimum number of subscribers. Value range: 22-101 No default value
   87:         /// </summary>
   88:         public int MN { get; set; }
   89:  
   90:         /// <summary>
   91:         /// MGW ID: This parameter specifies the ID of an MGW. This parameter is valid only when Register type is set to Single and Port type is set to ESL subscriber or BRA subscriber. Value range: 0-2147483646 No default value
   92:         /// </summary>
   93:         public long MGWID { get; set; }
   94:  
   95:         /// <summary>
   96:         /// Type of Equipment Name: This parameter specifies the type of the equipment name. This parameter is valid only when Register type is set to Single and Port type is set to ESL subscriber or BRA subscriber. Either type can uniquely identify a piece of equipment. Users can choose the required type. The options are as follows: Equipment ID: specifies the equipment ID of the MGW serving a specified subscriber. Equipment description: specifies the description about the MGW serving a specified subscriber. Default value: Equipment ID
   97:         /// </summary>
   98:         public string TEN { get; set; }
   99:  
  100:         /// <summary>
  101:         /// Equipment Description: This parameter specifies the description about the MGW serving a specified subscriber. This parameter is valid only when Type of equipment name is set to Equipment description. The value of this parameter is case-insensitive. This parameter must be defined by running ADD MGWbefore being referenced.
  102:         /// </summary>
  103:         public string EDESC { get; set; }
  104:  
  105:         /// <summary>
  106:         /// Equipment ID: This parameter specifies the equipment ID of the MGW serving a specified subscriber. This parameter is valid only when Type of equipment name is set to Equipment ID. This parameter must be defined by running ADD MGW before being referenced.
  107:         /// </summary>
  108:         public string EID { get; set; }
  109:  
  110:         /// <summary>
  111:         /// Registration Group Name: This parameter specifies the name of the registration group to which the subscriber belongs. This parameter is valid only when Register type is set to Group. This parameter must be defined by running ADD REGGRP before being referenced.
  112:         /// </summary>
  113:         public string RGN { get; set; }
  114:  
  115:         /// <summary>
  116:         /// Termination ID: This parameter specifies the physical port number of the MG to which the ESL subscriber belongs. This parameter is valid only when Port type is set to ESL subscriber or BRA subscriber. Set this parameter in compliance with the following principles: If the prefix of a termination ID is not hierarchical in structure, enter digits for this parameter. For example, the domain name of a gateway is amg1.huawei.com. The prefix (that is, the interface name) of the termination ID is aaln. If the Termination ID is 0 here, aaln/0 @ amg1.hauwei.com indicates physical interface 0 of the media gateway. If the prefix of a termination ID is hierarchical, set this parameter in format of digit/digit/digit. The maximum values for hierarchical layers and digits are defined by ADD TIDLAY. Do not add the slash (/) at the end of the last digit. Value: digits and slash (/) No default value
  117:         /// </summary>
  118:         public string TID { get; set; }
  119:  
  120:         /// <summary>
  121:         /// IUA Linkset Index: This parameter specifies the IUA linkset that bears the BRA link messages, that is, the signaling link over which signaling messages over D channel are transmitted for the BRA subscriber. This parameter is valid only when Port type is set to BRA subscriber. This parameter must be defined by running ADD IUALKSbefore being referenced.
  122:         /// </summary>
  123:         public string LKS { get; set; }
  124:  
  125:         /// <summary>
  126:         /// Interface ID: This parameter specifies the interface ID of the signaling message transmitted over D channel in the IUA linkset for this batch of BRA or V5 BRA subscribers. This parameter is valid only when Port type is set to BRA subscriber. For different BRA subscribers in the same IUA linkset that bears the D channel signaling message, interface IDs must be different. When a large number of BRA subscribers are configured for the system, carriers must plan their interface IDs universally. Value range: 0-16777215 No default value
  127:         /// </summary>
  128:         public int IID { get; set; }
  129:  
  130:         /// <summary>
  131:         /// SG IAD Index: This parameter specifies an IUA message from the ISDN IAD. This parameter is valid only when Port type is set to BRA subscriber. This parameter must be configured only when the SoftX3000 interworks with the IAD serving the BRA subscriber through the IUA assembled signaling gateway. In this networking mode, the IUA assembled signaling gateway transmits IUA messages between the SoftX3000 and ISDN IAD. The DSS1 D channel signaling can be identified by the field Interface ID contained in the IUA message, which requires the universal numbering of all Interface IDs used by the ISDN IAD. To solve this problem, the field SG IAD index is introduced in the IUA message. When the SoftX3000 interworks with the IUA assembled signaling gateway, the SoftX3000 uses SG IAD index to identify IUA messages sent by the ISDN IAD, and then use Interface ID to identify DSS1 D channel signaling. Value range: 0-65535 No default value
  132:         /// </summary>
  133:         public int SGIAD { get; set; }
  134:  
  135:         /// <summary>
  136:         /// ISDN Index: This parameter specifies the ISDN data used for PRA, BRA or V5 BRA subscribers. This parameter must be defined by running ADD ISDNDAT before being referenced.
  137:         /// </summary>
  138:         public string ISDN { get; set; }
  139:  
  140:         /// <summary>
  141:         /// ISDN Features: This parameter specifies the ISDN function subscribed by BRA or V5 BRA subscribers. Point-to-multipoint configuration (PMP): indicates that whether the NT2 device on the subscriber side can be connected to multiple terminals, such as, TE1 and TA through the S interface. If this option is selected, the NT2 device on the subscriber side can be connected to multiple terminal devices. If all terminal devices use the same phone number, all these terminal devices will be alerted simultaneously when the subscriber using multiple terminal device is alerted  If this option is not selected, the NT2 device on the subscriber side can be connected to only one terminal device. Specifically, all session and signaling control messages are transmitted over an active Q.921 link between the network side and subscriber side, which facilities the network maintenance for ISDN terminal status and enhances the reliability. You do not need to activate or establish the link for each call, improving call connection speed. Multi-subscriber number (MSN): indicates that whether the subscriber has subscribed to the MSN service. If this option is selected, the subscriber has the rights to use the MSN service. The SoftX3000 can allocate a maximum of 8 numbers for each U interface. These numbers can be assigned to one terminal or different terminals with the same U interface. No default value 
  142:         /// </summary>
  143:         public string ISA { get; set; }
  144:  
  145:         /// <summary>
  146:         /// PRA Trunk Group: This parameter specifies the PRA trunk group to which the specified PRA trunk circuit belongs. This parameter is valid only when Port type is set to PRA subscriber. This parameter must be defined by running ADD APRATG before being referenced.
  147:         /// </summary>
  148:         public string TRUNKGP { get; set; }
  149:  
  150:         /// <summary>
  151:         /// V5 Interface ID: This parameter specifies the ID of the interface connecting to the V5 AN device to which the V5 subscriber or V5 BRA subscriber belongs. This parameter is valid only when Register type is set to Single and Port type is set to V5 subscriber or V5 BRA subscriber. This parameter must be defined by running ADD V5I before being referenced.
  152:         /// </summary>
  153:         public string V5IID { get; set; }
  154:  
  155:         /// <summary>
  156:         /// L3 Address: This parameter specifies the physical port address of the V5 subscriber or V5 BRA subscriber in the V5 AN device. This parameter is valid only when Port type is set to V5 subscriber or V5 BRA subscriber. L3 address is the address of the PSTN protocol or control protocol of EFaddr type in the layer-3 message. Set this parameter in compliance with the following principles: When used for PSTN protocol, L3 address is used to identify the PSTN subscriber port, and the valid address contains 15 bits. That is, a maximum of 32768 analog subscribers can be supported. When used for control protocol, L3 address is used to identify the PSTN subscriber port, ISDN subscriber port, or V5 public control function. When L3 address is used to identify PSTN subscriber port, its valid length is 15 bits, which means that a maximum of 32768 analog subscribers can be supported. When it identifies ISDN subscriber port or public control function, its valid length is 13 bits, which means that a maximum of 8175 ISDN subscribers can be supported. The public control function needs to occupy part of the L3 address. Value range: 0-32767 No default value
  157:         /// </summary>
  158:         public int L3ADDR { get; set; }
  159:  
  160:         /// <summary>
  161:         /// V51 B1 Circuit Number: This parameter specifies the timeslot in the 2.048 Mbit/s circuit to be used by the V5 subscriber or V5 BRA subscriber. This parameter is valid only when Port type is set to V5 subscriber or V5 BRA subscriber and the V5 AN device adopts the V5.1 protocol. Among the 30 B circuits, one B circuit corresponds to one V5 subscriber because the V5.1 protocol only supports one E1 link and does not support the convergence function. Value range: 1-15, 17-31 No default value
  162:         /// </summary>
  163:         public int B1NO { get; set; }
  164:  
  165:         /// <summary>
  166:         /// V51 B2 Circuit Number: This parameter specifies the circuit of the 2.048M bit/s link used by the V5 subscriber. This parameter is valid only when Port type is set to V5 BRA subscriber and the V5 access device uses the V5.1 protocol. Value range: 1-15, 17-31 No default value
  167:         /// </summary>
  168:         public int B2NO { get; set; }
  169:  
  170:         /// <summary>
  171:         /// ISDN Ds Logical C-Channel ID: This parameter specifies the logical C-channel ID of D channel signaling message with Ds type for BRA subscribers. This parameter is valid only when Port type is set to V5 BRA subscriber. This parameter must be defined by runningADD V5I before being referenced.
  172:         /// </summary>
  173:         public string ISDNDS { get; set; }
  174:  
  175:         /// <summary>
  176:         /// Priority Line Flag: This parameter specifies the priority flag of the subscriber. The options are as follows: False: indicates that the subscriber is a common subscriber. True: indicates that the subscriber is a priority subscriber who can make a call even though the system is overloaded. Default value: False
  177:         /// </summary>
  178:         public bool PLF { get; set; }
  179:  
  180:         /// <summary>
  181:         /// Terminal Status: This parameter specifies the terminal status of the subscriber. The options are as follows: Active: indicates that the subscriber can make a call. Deactive: indicates that the subscriber cannot register with the IMS network or make a call. Default value: Active
  182:         /// </summary>
  183:         public bool TS { get; set; }
  184:  
  185:         /// <summary>
  186:         /// Default Dial Tone: This parameter specifies the dial tone the subscriber hears after picking up the phone. The options are as follows: Standard: indicates that the subscriber hears the standard tone after picking up the phone. Special: indicates that the subscriber hears the special tone after picking up the phone. Wait: indicates that the subscriber hears the waiting tone after picking up the phone. Default value: Standard
  187:         /// </summary>
  188:         public string DT { get; set; }
  189:  
  190:         /// <summary>
  191:         /// Home Network ID Name: This parameter specifies the name of the home network of a subscriber. This parameter must be defined by running ADD HNID before being referenced.
  192:         /// </summary>
  193:         public string HNID { get; set; }
  194:  
  195:         /// <summary>
  196:         /// Visited Network ID Name: This parameter specifies the name of the visited network of a subscriber. This parameter must be defined by running ADD VNID before being referenced.
  197:         /// </summary>
  198:         public string NETID { get; set; }
  199:  
  200:         /// <summary>
  201:         /// Access Network Information Name: This parameter specifies the name of the access network of a subscriber. This parameter must be defined by running ADD ANI before being referenced.
  202:         /// </summary>
  203:         public string NETINFO { get; set; }
  204:  
  205:         /// <summary>
  206:         /// Phone Context Name: This parameter specifies the number context name of the subscriber. This parameter must be defined by running ADD PHNCT before being referenced.
  207:         /// </summary>
  208:         public string PHNCON { get; set; }
  209:  
  210:         /// <summary>
  211:         /// Initial Digitmap Index: This parameter specifies the digitmap the subscriber sends to the MGW after picking up the phone. This parameter must be defined by running ADD DMAP before being referenced.
  212:         /// </summary>
  213:         public string DIGMAP { get; set; }
  214:  
  215:         /// <summary>
  216:         /// Global Digitmap Index: This parameter specifies the digit map to match the two-stage dialed number. This parameter must be defined by running ADD DMAP before being referenced. This parameter must be specified when subscribers use the Centrex service.
  217:         /// </summary>
  218:         public string GLOBDMAPIDX { get; set; }
  219:  
  220:         /// <summary>
  221:         /// Password: This parameter specifies the password used for authentication. Note: The value of this parameter must be the same as the password defined on the HSS9820 during subscriber definition; otherwise, the authentication will fail. Value: a string of up to 32 characters No default value
  222:         /// </summary>
  223:         public string PWD { get; set; }
  224:  
  225:         /// <summary>
  226:         /// SCC Group Name: This parameter specifies the name of the SCC group to which the subscriber belongs. This parameter must be defined by running ADD SCCGRP before being referenced.
  227:         /// </summary>
  228:         public string SGN { get; set; }
  229:  
  230:         /// <summary>
  231:         /// SOC Group Number: This parameter specifies the SOC logic corresponding to the user. This parameter must be defined by running ADD SOCLOGIC before being referenced.
  232:         /// </summary>
  233:         public string SOCGN { get; set; }
  234:  
  235:         /// <summary>
  236:         /// Emergency Call Group Name: This parameter specifies the name of the emergency call group to which the subscriber belongs. If this parameter is specified, the subscriber can make an emergency call related to this emergence call group when the system is overloaded or the subscriber has not paid the overdue balance. This parameter must be defined by running ADD EMCYGRP before being referenced. If this parameter is not configured, the name of the emergence call group is determined by the value of bit 1 of P361. 1 (default value): The SoftX3000 does not add the subscriber to the default emergency call group. 0: The SoftX3000 adds the subscriber to the default emergency call group. The H.248 subscriber uses the default emergency call group name default, and the MGCP subscriber uses the default emergency call group name default_mgcp_grp. In addition, the emergency call data related to the emergency call group must be configured.
  237:         /// </summary>
  238:         public string EMGCN { get; set; }
  239:  
  240:         /// <summary>
  241:         /// Download Profile: This parameter specifies whether to download the profile from the AS. The options are as follows: No Subscription: The subscriber does not subscribe to the UA-profile event. Explicit Subscription: The subscriber proactively subscribes to the UA-profile event after user registration is complete. Implicit Subscription: The subscriber does not initiate subscription and reactively receives the NOTIFY message carrying the UA-profile event. Default value: No Subscription
  242:         /// </summary>
  243:         public string DP { get; set; }
  244:  
  245:         /// <summary>
  246:         /// Send Registration Subscription: This parameter specifies whether to initiate a registration subscription to the S-CSCF. This parameter is valid only when Register type is set to Single. The options are as follows: No Subscription: The subscriber does not subscribe to the registration event. Explicit Subscription: The subscriber proactively subscribes to the registration event after user registration is complete. Default value: No Subscription
  247:         /// </summary>
  248:         public string DR { get; set; }
  249:  
  250:         /// <summary>
  251:         /// Conference URI Index: This parameter specifies the conference URI index used for applying for a conference. Specifically, the subscriber uses the domain name of the MRF server associated with the conference URI index to instruct the AS to apply for conference resources. This parameter must be defined by running ADD CONFURI before being referenced.
  252:         /// </summary>
  253:         public string CONF { get; set; }
  254:  
  255:         /// <summary>
  256:         /// CLIP/R Mode: This parameter specifies the CLIP/CLIR mode provided to the subscriber. The options are as follows: ATS mode: indicates that the NE interworking with the SoftX3000 is the ATS9900. Broadsoft AS mode: indicates that the NE interworking with the SoftX3000 is the Broadsoft AS. Default value: ATS mode
  257:         /// </summary>
  258:         public string CLIPMD { get; set; }
  259:  
  260:         /// <summary>
  261:         /// IFMI Module Number: This parameter specifies the IFM associated with the subscriber. This parameter must be defined by running ADD BRD before being referenced. If it is set to 255 or null, see the Help in SET ASIR. Value range: 132-211, 255 No default value
  262:         /// </summary>
  263:         public int IFMIMN { get; set; }
  264:  
  265:         /// <summary>
  266:         /// Codec Prefer: This parameter specifies the voice codec mode preferred by the media gateway (controlled by the SoftX3000 during call connection process) to process the RTP audio media streams of the subscriber. The default value is None. It must be one among the codec list defined by ADD MGW. Otherwise, it is invalid. When processing a call, the SoftX3000 preferentially uses the codec defined by this parameter for establishing media stream. If the codec defined by this parameter is not applicable to the call, the SoftX3000 uses the codec required by the peer end. The options are as follows: PCMA(G.711A) PCMU(G.711u) G7231(G.723.1) G726(G.726) G729(G.729) NONE(none) Default value: none
  267:         /// </summary>
  268:         public string CODEC { get; set; }
  269:  
  270:         /// <summary>
  271:         /// Gate Priority: This parameter specifies the priority level of the subscriber to use the resources. The options are as follows: NoInd (No Indicate) Normal (Normal) High (High) Note: NoInd (No Indicate) has the lowest priority. Default value: Normal
  272:         /// </summary>
  273:         public string CGP { get; set; }
  274:  
  275:         /// <summary/>
  276:         [ForeignKey("Mgw_Id")]
  277:         public virtual Mgw Mgw { get; set; }
  278:  
  279:         /// <summary/>
  280:         public DateTime Created { get; set; }
  281:  
  282:         /// <summary/>
  283:         public DateTime Updated { get; set; }
  284:  
  285:         ////////////////////////////////////////////////////////////////////////////
  286:  
  287:         /// <summary>
  288:         ///
  289:         /// </summary>
  290:         public bool Equal(Ia.Ngn.Cl.Model.Huawei.Asbr b)
  291:         {
  292:             // below: this will not check the Id, Created, Updated fields
  293:             bool areEqual;
  294:  
  295:             if (this.PUI != b.PUI) areEqual = false;
  296:             else if (this.NetworkElement != b.NetworkElement) areEqual = false;
  297:             else if (this.PRI != b.PRI) areEqual = false;
  298:             else if (this.REGTP != b.REGTP) areEqual = false;
  299:             else if (this.DID != b.DID) areEqual = false;
  300:             else if (this.DIDG != b.DIDG) areEqual = false;
  301:             else if (this.TET != b.TET) areEqual = false;
  302:             else if (this.MN != b.MN) areEqual = false;
  303:             else if (this.MGWID != b.MGWID) areEqual = false;
  304:             else if (this.TEN != b.TEN) areEqual = false;
  305:             else if (this.EDESC != b.EDESC) areEqual = false;
  306:             else if (this.EID != b.EID) areEqual = false;
  307:             else if (this.RGN != b.RGN) areEqual = false;
  308:             else if (this.TID != b.TID) areEqual = false;
  309:             else if (this.LKS != b.LKS) areEqual = false;
  310:             else if (this.IID != b.IID) areEqual = false;
  311:             else if (this.SGIAD != b.SGIAD) areEqual = false;
  312:             else if (this.ISDN != b.ISDN) areEqual = false;
  313:             else if (this.ISA != b.ISA) areEqual = false;
  314:             else if (this.TRUNKGP != b.TRUNKGP) areEqual = false;
  315:             else if (this.V5IID != b.V5IID) areEqual = false;
  316:             else if (this.L3ADDR != b.L3ADDR) areEqual = false;
  317:             else if (this.B1NO != b.B1NO) areEqual = false;
  318:             else if (this.B2NO != b.B2NO) areEqual = false;
  319:             else if (this.ISDNDS != b.ISDNDS) areEqual = false;
  320:             else if (this.PLF != b.PLF) areEqual = false;
  321:             else if (this.TS != b.TS) areEqual = false;
  322:             else if (this.DT != b.DT) areEqual = false;
  323:             else if (this.HNID != b.HNID) areEqual = false;
  324:             else if (this.NETID != b.NETID) areEqual = false;
  325:             else if (this.NETINFO != b.NETINFO) areEqual = false;
  326:             else if (this.PHNCON != b.PHNCON) areEqual = false;
  327:             else if (this.DIGMAP != b.DIGMAP) areEqual = false;
  328:             else if (this.GLOBDMAPIDX != b.GLOBDMAPIDX) areEqual = false;
  329:             else if (this.PWD != b.PWD) areEqual = false;
  330:             else if (this.SGN != b.SGN) areEqual = false;
  331:             else if (this.SOCGN != b.SOCGN) areEqual = false;
  332:             else if (this.EMGCN != b.EMGCN) areEqual = false;
  333:             else if (this.DP != b.DP) areEqual = false;
  334:             else if (this.DR != b.DR) areEqual = false;
  335:             else if (this.CONF != b.CONF) areEqual = false;
  336:             else if (this.CLIPMD != b.CLIPMD) areEqual = false;
  337:             else if (this.IFMIMN != b.IFMIMN) areEqual = false;
  338:             else if (this.CODEC != b.CODEC) areEqual = false;
  339:             else if (this.CGP != b.CGP) areEqual = false;
  340:             else if (this.Mgw != b.Mgw) areEqual = false;
  341:             else areEqual = true;
  342:  
  343:             return areEqual;
  344:         }
  345:  
  346:         ////////////////////////////////////////////////////////////////////////////
  347:  
  348:         /// <summary>
  349:         ///
  350:         /// </summary>
  351:         public bool Update(Ia.Ngn.Cl.Model.Huawei.Asbr updatedItem)
  352:         {
  353:             // below: this will not update Id, Created
  354:             bool updated;
  355:  
  356:             updated = false;
  357:  
  358:             if (this.PUI != updatedItem.PUI) { this.PUI = updatedItem.PUI; updated = true; }
  359:             if (this.NetworkElement != updatedItem.NetworkElement) { this.NetworkElement = updatedItem.NetworkElement; updated = true; }
  360:             if (this.PRI != updatedItem.PRI) { this.PRI = updatedItem.PRI; updated = true; }
  361:             if (this.REGTP != updatedItem.REGTP) { this.REGTP = updatedItem.REGTP; updated = true; }
  362:             if (this.DID != updatedItem.DID) { this.DID = updatedItem.DID; updated = true; }
  363:             if (this.DIDG != updatedItem.DIDG) { this.DIDG = updatedItem.DIDG; updated = true; }
  364:             if (this.TET != updatedItem.TET) { this.TET = updatedItem.TET; updated = true; }
  365:             if (this.MN != updatedItem.MN) { this.MN = updatedItem.MN; updated = true; }
  366:             if (this.MGWID != updatedItem.MGWID) { this.MGWID = updatedItem.MGWID; updated = true; }
  367:             if (this.TEN != updatedItem.TEN) { this.TEN = updatedItem.TEN; updated = true; }
  368:             if (this.EDESC != updatedItem.EDESC) { this.EDESC = updatedItem.EDESC; updated = true; }
  369:             if (this.EID != updatedItem.EID) { this.EID = updatedItem.EID; updated = true; }
  370:             if (this.RGN != updatedItem.RGN) { this.RGN = updatedItem.RGN; updated = true; }
  371:             if (this.TID != updatedItem.TID) { this.TID = updatedItem.TID; updated = true; }
  372:             if (this.LKS != updatedItem.LKS) { this.LKS = updatedItem.LKS; updated = true; }
  373:             if (this.IID != updatedItem.IID) { this.IID = updatedItem.IID; updated = true; }
  374:             if (this.SGIAD != updatedItem.SGIAD) { this.SGIAD = updatedItem.SGIAD; updated = true; }
  375:             if (this.ISDN != updatedItem.ISDN) { this.ISDN = updatedItem.ISDN; updated = true; }
  376:             if (this.ISA != updatedItem.ISA) { this.ISA = updatedItem.ISA; updated = true; }
  377:             if (this.TRUNKGP != updatedItem.TRUNKGP) { this.TRUNKGP = updatedItem.TRUNKGP; updated = true; }
  378:             if (this.V5IID != updatedItem.V5IID) { this.V5IID = updatedItem.V5IID; updated = true; }
  379:             if (this.L3ADDR != updatedItem.L3ADDR) { this.L3ADDR = updatedItem.L3ADDR; updated = true; }
  380:             if (this.B1NO != updatedItem.B1NO) { this.B1NO = updatedItem.B1NO; updated = true; }
  381:             if (this.B2NO != updatedItem.B2NO) { this.B2NO = updatedItem.B2NO; updated = true; }
  382:             if (this.ISDNDS != updatedItem.ISDNDS) { this.ISDNDS = updatedItem.ISDNDS; updated = true; }
  383:             if (this.PLF != updatedItem.PLF) { this.PLF = updatedItem.PLF; updated = true; }
  384:             if (this.TS != updatedItem.TS) { this.TS = updatedItem.TS; updated = true; }
  385:             if (this.DT != updatedItem.DT) { this.DT = updatedItem.DT; updated = true; }
  386:             if (this.HNID != updatedItem.HNID) { this.HNID = updatedItem.HNID; updated = true; }
  387:             if (this.NETID != updatedItem.NETID) { this.NETID = updatedItem.NETID; updated = true; }
  388:             if (this.NETINFO != updatedItem.NETINFO) { this.NETINFO = updatedItem.NETINFO; updated = true; }
  389:             if (this.PHNCON != updatedItem.PHNCON) { this.PHNCON = updatedItem.PHNCON; updated = true; }
  390:             if (this.DIGMAP != updatedItem.DIGMAP) { this.DIGMAP = updatedItem.DIGMAP; updated = true; }
  391:             if (this.GLOBDMAPIDX != updatedItem.GLOBDMAPIDX) { this.GLOBDMAPIDX = updatedItem.GLOBDMAPIDX; updated = true; }
  392:             if (this.PWD != updatedItem.PWD) { this.PWD = updatedItem.PWD; updated = true; }
  393:             if (this.SGN != updatedItem.SGN) { this.SGN = updatedItem.SGN; updated = true; }
  394:             if (this.SOCGN != updatedItem.SOCGN) { this.SOCGN = updatedItem.SOCGN; updated = true; }
  395:             if (this.EMGCN != updatedItem.EMGCN) { this.EMGCN = updatedItem.EMGCN; updated = true; }
  396:             if (this.DP != updatedItem.DP) { this.DP = updatedItem.DP; updated = true; }
  397:             if (this.DR != updatedItem.DR) { this.DR = updatedItem.DR; updated = true; }
  398:             if (this.CONF != updatedItem.CONF) { this.CONF = updatedItem.CONF; updated = true; }
  399:             if (this.CLIPMD != updatedItem.CLIPMD) { this.CLIPMD = updatedItem.CLIPMD; updated = true; }
  400:             if (this.IFMIMN != updatedItem.IFMIMN) { this.IFMIMN = updatedItem.IFMIMN; updated = true; }
  401:             if (this.CODEC != updatedItem.CODEC) { this.CODEC = updatedItem.CODEC; updated = true; }
  402:             if (this.CGP != updatedItem.CGP) { this.CGP = updatedItem.CGP; updated = true; }
  403:             if (this.Mgw != updatedItem.Mgw) { this.Mgw = updatedItem.Mgw; updated = true; }
  404:  
  405:             if (updated) this.Updated = DateTime.UtcNow.AddHours(3);
  406:  
  407:             return updated;
  408:         }
  409:  
  410:         ////////////////////////////////////////////////////////////////////////////
  411:         ////////////////////////////////////////////////////////////////////////////
  412:  
  413:         /// <summary>
  414:         ///
  415:         /// </summary>
  416:         public string ToSimpleTextString()
  417:         {
  418:             return Ia.Ngn.Cl.Model.Data.Huawei.Asbr.ToSimpleTextString(this);
  419:         }
  420:  
  421:         ////////////////////////////////////////////////////////////////////////////
  422:         ////////////////////////////////////////////////////////////////////////////
  423:     }
  424:  
  425:     ////////////////////////////////////////////////////////////////////////////
  426:     ////////////////////////////////////////////////////////////////////////////
  427: }