)>}]
شركة التطبيقات المتكاملة لتصميم وبرمجة البرمجيات الخاصة ش.ش.و.
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 EMS VAG 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 EMS VAG 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 EmsVag : IEquatable<EmsVag>
   30:     {
   31:         /*
   32:          * iManager_NCE_V200R014C60_TL1_NBI_User_Guide_13.pdf
   33:          * 14.19.21 Querying a VAG (LST-VAG)
   34:          * Command Format LST-VAG::(DID=Device-ID|DEV=Device-name)[,(VAGNAME=VAG-Name|VAGID=MG-ID)]:CTAG:: [SHOWOPTION=SIPPFNAME REGMODE];          
   35:          */
   36:  
   37:         /*
   38:          * Response Format:
   39:          * It complies with the response format of the query command provided in 10.3 Response Format Description.
   40:          * title="VAG information of the device "+device-name name of attributes:DID  VAGNAME  VAGID  SIGIP  SIGMASK  SIGGW  SIGPORT SIGVLANID   SIGVLANID  SIGQOS  SIGDSCP  SIGIPPRI  SIGTOSPRI  SIGVLANPRI  MEDIAIP  MEDIAMASK  MEDIAGW  MEDIAPORT  MEDIAVLANID  MEDIAQOS  MEDIADSCP  MEDIAIPPRI  MEDIATOSPRI  MEDIAVLANPRI  DOMAINNAME  ACTIVEMGCDNAME STANDBYMGCDNAME  VAGSTAT  PROTOCOLTYPE  TIDLAYER H248PFNAME SIPPFNAME REGMODE 
   41:          */
   42:  
   43:         /// <summary/>
   44:         public EmsVag() { }
   45:  
   46:         /// <summary/>
   47:         [Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
   48:         public string Id { get; set; }
   49:  
   50:         /// <summary>
   51:         /// Last ResultCode of device
   52:         /// </summary>
   53:         public long ResultCode { get; set; }
   54:  
   55:         /// <summary>
   56:         /// Operational state ID of the device
   57:         /// </summary>
   58:         public int StateId { get; set; }
   59:  
   60:         /// <summary>
   61:         /// DID INTEGER Indicates the device ID.
   62:         /// </summary>
   63:         public int DID { get; set; }
   64:  
   65:         /// <summary>
   66:         /// VAGNAME OCTET STRING SIZE (32) Indicates the VAG name.
   67:         /// </summary>
   68:         public string VAGNAME { get; set; }
   69:  
   70:         /// <summary>
   71:         /// VAGID INTEGER 0-16777215 Indicates the MG ID.
   72:         /// </summary>
   73:         public int VAGID { get; set; }
   74:  
   75:         /// <summary>
   76:         /// SIGIP OCTET STRING SIZE (16) Indicates the signaling IP address.
   77:         /// </summary>
   78:         public string SIGIP { get; set; }
   79:  
   80:         /// <summary>
   81:         /// SIGMASK OCTET STRING SIZE (16) Indicates the subnet mask of the signaling IP address.
   82:         /// </summary>
   83:         public string SIGMASK { get; set; }
   84:  
   85:         /// <summary>
   86:         /// SIGGW OCTET STRING SIZE (16) Indicates the gateway of the signaling IP address.
   87:         /// </summary>
   88:         public string SIGGW { get; set; }
   89:  
   90:         /// <summary>
   91:         /// SIGPORT INTEGER 0-65534 Indicates the signaling port ID that is the same as the original communication port.
   92:         /// </summary>
   93:         public int SIGPORT { get; set; }
   94:  
   95:         /// <summary>
   96:         /// SIGVLANID INTEGER 0 - 4095 For the range of this parameter in the case of different devices. Indicates the signaling VLAN ID.
   97:         /// </summary>
   98:         public int SIGVLANID { get; set; }
   99:  
  100:         /// <summary>
  101:         /// SIGQOS OCTET STRING l NONE l ToS l DSCP Indicates the QoS policy of the signaling IP address.
  102:         /// </summary>
  103:         public string SIGQOS { get; set; }
  104:  
  105:         /// <summary>
  106:         /// SIGDSCP INTEGER 0-63 Indicates the differentiated services code point (DSCP) value of the signaling packet.
  107:         /// </summary>
  108:         public int SIGDSCP { get; set; }
  109:  
  110:         /// <summary>
  111:         /// SIGIPPRI INTEGER 0-7 Indicates the IP priority of the signaling packet.
  112:         /// </summary>
  113:         public int SIGIPPRI { get; set; }
  114:  
  115:         /// <summary>
  116:         /// SIGTOSPRI INTEGER 0-15 Indicates the ToS priority of the signaling packet.
  117:         /// </summary>
  118:         public int SIGTOSPRI { get; set; }
  119:  
  120:         /// <summary>
  121:         /// SIGVLANPRI INTEGER 0-7 Indicates the VLAN priority of the signaling packet.
  122:         /// </summary>
  123:         public int SIGVLANPRI { get; set; }
  124:  
  125:         /// <summary>
  126:         /// MEDIAIP OCTET STRING SIZE (16) Indicates the media IP address.
  127:         /// </summary>
  128:         public string MEDIAIP { get; set; }
  129:  
  130:         /// <summary>
  131:         /// MEDIAMASK OCTET STRING SIZE (16) Indicates the subnet mask of the media IP address.
  132:         /// </summary>
  133:         public string MEDIAMASK { get; set; }
  134:  
  135:         /// <summary>
  136:         /// MEDIAGW OCTET STRING SIZE (16) Indicates the gateway of the media IP address.
  137:         /// </summary>
  138:         public string MEDIAGW { get; set; }
  139:  
  140:         /// <summary>
  141:         /// MEDIAPORT INTEGER 0-65534 Indicates the media port ID.
  142:         /// </summary>
  143:         public int MEDIAPORT { get; set; }
  144:  
  145:         /// <summary>
  146:         /// MEDIAVLANID INTEGER 0 - 4095 For the range of this parameter in the case of different devices, see Table D-11 Indicates the media VLAN ID.
  147:         /// </summary>
  148:         public int MEDIAVLANID { get; set; }
  149:  
  150:         /// <summary>
  151:         /// MEDIAQOS OCTET STRING l NONE l ToS l DSCP Indicates the QoS policy of the media IP address.
  152:         /// </summary>
  153:         public string MEDIAQOS { get; set; }
  154:  
  155:         /// <summary>
  156:         /// MEDIADSCP INTEGER 0-63 Indicates the DSCP of the media packet.
  157:         /// </summary>
  158:         public int MEDIADSCP { get; set; }
  159:  
  160:         /// <summary>
  161:         /// MEDIAIPPRI INTEGER 0-7 Indicates the IP priority of the media packet.
  162:         /// </summary>
  163:         public int MEDIAIPPRI { get; set; }
  164:  
  165:         /// <summary>
  166:         /// MEDIATOSPRI INTEGER 0-15 Indicates the ToS priority of the media packet.
  167:         /// </summary>
  168:         public int MEDIATOSPRI { get; set; }
  169:  
  170:         /// <summary>
  171:         /// MEDIAVLANPRI INTEGER 0-7 Indicates the VLAN priority of the media packet.
  172:         /// </summary>
  173:         public int MEDIAVLANPRI { get; set; }
  174:  
  175:         /// <summary>
  176:         /// DOMAINNAME OCTET STRING SIZE (64) Indicates the domain name.
  177:         /// </summary>
  178:         public string DOMAINNAME { get; set; }
  179:  
  180:         /// <summary>
  181:         /// ACTIVEMGCDNAME OCTET STRING SIZE (32) Indicates the name of the active MGC.
  182:         /// </summary>
  183:         public string ACTIVEMGCDNAME { get; set; }
  184:  
  185:         /// <summary>
  186:         /// STANDBYMGCDNAME OCTET STRING SIZE (32) Indicates the name of the standby MGC.
  187:         /// </summary>
  188:         public string STANDBYMGCDNAME { get; set; }
  189:  
  190:         /// <summary>
  191:         /// VAGSTAT OCTET STRING l Up l Down l Fault l Waiting l Unknown l Not Start Indicates the VAG status.
  192:         /// </summary>
  193:         public string VAGSTAT { get; set; }
  194:  
  195:         /// <summary>
  196:         /// PROTOCOLTYPE OCTET STRING l H248 l MGCP Indicates the type of protocol that the VAG supports. Currently, the VAG does not support the MGCP protocol.
  197:         /// </summary>
  198:         public string PROTOCOLTYPE { get; set; }
  199:  
  200:         /// <summary>
  201:         /// TIDLAYER OCTET STRING l No l Yes (Optional). Specifies whether to enable the layering configuration.
  202:         /// </summary>
  203:         public string TIDLAYER { get; set; }
  204:  
  205:         /// <summary>
  206:         /// H248PFNAME OCTET STRING SIZE (64) Indicates the name of the H248 profile configured for the MG. The UA5000PVM V100R017C02B010 and the later versions support this parameter.
  207:         /// </summary>
  208:         public string H248PFNAME { get; set; }
  209:  
  210:         /// <summary>
  211:         /// SIPPFNAME OCTET STRING SIZE (64) Indicates the name of the SIP profile configured for the MG.
  212:         /// </summary>
  213:         public string SIPPFNAME { get; set; }
  214:  
  215:         /// <summary>
  216:         /// REGMODE OCTET STRING l Wildcard l Single Indicates the SIP interface user and the account registration mode. Only MA5600Ts and MA5603Ts of V800R11C00 and later versions support this parameter. Options are as follows: l Wildcard: indicates a wildcard registration mode. When there is a coordinate-subordinate relationship between accounts, only the coordinate account is registered. l Single: indicates an independent registration mode. Every account needs to be registered independently.
  217:         /// </summary>
  218:         public string REGMODE { get; set; }
  219:  
  220:         /// <summary/>
  221:         public DateTime Created { get; set; }
  222:  
  223:         /// <summary/>
  224:         public DateTime Updated { get; set; }
  225:  
  226:         /// <summary/>
  227:         [ForeignKey("EmsOnt_Id")]
  228:         public virtual Ia.Ngn.Cl.Model.Huawei.EmsOnt EmsOnt { get; set; }
  229:  
  230:         ////////////////////////////////////////////////////////////////////////////
  231:  
  232:         /// <summary>
  233:         ///
  234:         /// </summary>
  235:         [NotMapped]
  236:         public string ResultCodeString
  237:         {
  238:             get
  239:             {
  240:                 return this.ResultCode.ToString();
  241:             }
  242:         }
  243:  
  244:         ////////////////////////////////////////////////////////////////////////////
  245:  
  246:         /// <summary>
  247:         ///
  248:         /// </summary>
  249:         [NotMapped]
  250:         public string State
  251:         {
  252:             get
  253:             {
  254:                 return Ia.Ngn.Cl.Model.Data.Huawei.Ems.BellcoreStateFromId(this.StateId);
  255:             }
  256:         }
  257:  
  258:         ////////////////////////////////////////////////////////////////////////////
  259:  
  260:         /// <summary>
  261:         ///
  262:         /// </summary>
  263:         public static bool operator ==(Ia.Ngn.Cl.Model.Huawei.EmsVag a, Ia.Ngn.Cl.Model.Huawei.EmsVag b)
  264:         {
  265:             bool areEqual;
  266:  
  267:             if (ReferenceEquals(a, b)) areEqual = true;
  268:             else if (a is null) areEqual = false;
  269:             else if (b is null) areEqual = false;
  270:             else
  271:             {
  272:                 if (a.ResultCode != b.ResultCode) areEqual = false;
  273:                 else if (a.StateId != b.StateId) areEqual = false;
  274:                 else if (a.DID != b.DID) areEqual = false;
  275:                 else if (a.VAGNAME != b.VAGNAME) areEqual = false;
  276:                 else if (a.VAGID != b.VAGID) areEqual = false;
  277:                 else if (a.SIGIP != b.SIGIP) areEqual = false;
  278:                 else if (a.SIGMASK != b.SIGMASK) areEqual = false;
  279:                 else if (a.SIGGW != b.SIGGW) areEqual = false;
  280:                 else if (a.SIGPORT != b.SIGPORT) areEqual = false;
  281:                 else if (a.SIGVLANID != b.SIGVLANID) areEqual = false;
  282:                 else if (a.SIGQOS != b.SIGQOS) areEqual = false;
  283:                 else if (a.SIGDSCP != b.SIGDSCP) areEqual = false;
  284:                 else if (a.SIGIPPRI != b.SIGIPPRI) areEqual = false;
  285:                 else if (a.SIGTOSPRI != b.SIGTOSPRI) areEqual = false;
  286:                 else if (a.SIGVLANPRI != b.SIGVLANPRI) areEqual = false;
  287:                 else if (a.MEDIAIP != b.MEDIAIP) areEqual = false;
  288:                 else if (a.MEDIAMASK != b.MEDIAMASK) areEqual = false;
  289:                 else if (a.MEDIAGW != b.MEDIAGW) areEqual = false;
  290:                 else if (a.MEDIAPORT != b.MEDIAPORT) areEqual = false;
  291:                 else if (a.MEDIAVLANID != b.MEDIAVLANID) areEqual = false;
  292:                 else if (a.MEDIAQOS != b.MEDIAQOS) areEqual = false;
  293:                 else if (a.MEDIADSCP != b.MEDIADSCP) areEqual = false;
  294:                 else if (a.MEDIAIPPRI != b.MEDIAIPPRI) areEqual = false;
  295:                 else if (a.MEDIATOSPRI != b.MEDIATOSPRI) areEqual = false;
  296:                 else if (a.MEDIAVLANPRI != b.MEDIAVLANPRI) areEqual = false;
  297:                 else if (a.DOMAINNAME != b.DOMAINNAME) areEqual = false;
  298:                 else if (a.ACTIVEMGCDNAME != b.ACTIVEMGCDNAME) areEqual = false;
  299:                 else if (a.STANDBYMGCDNAME != b.STANDBYMGCDNAME) areEqual = false;
  300:                 else if (a.VAGSTAT != b.VAGSTAT) areEqual = false;
  301:                 else if (a.PROTOCOLTYPE != b.PROTOCOLTYPE) areEqual = false;
  302:                 else if (a.TIDLAYER != b.TIDLAYER) areEqual = false;
  303:                 else if (a.H248PFNAME != b.H248PFNAME) areEqual = false;
  304:                 else if (a.SIPPFNAME != b.SIPPFNAME) areEqual = false;
  305:                 else if (a.REGMODE != b.REGMODE) areEqual = false;
  306:                 else if (a.EmsOnt.Id != b.EmsOnt.Id) areEqual = false;
  307:                 else areEqual = true;
  308:             }
  309:  
  310:             return areEqual;
  311:         }
  312:  
  313:         ////////////////////////////////////////////////////////////////////////////
  314:  
  315:         /// <summary>
  316:         ///
  317:         /// </summary>
  318:         public static bool operator !=(Ia.Ngn.Cl.Model.Huawei.EmsVag a, Ia.Ngn.Cl.Model.Huawei.EmsVag b)
  319:         {
  320:             return !(a == b);
  321:         }
  322:  
  323:         ////////////////////////////////////////////////////////////////////////////
  324:  
  325:         /// <summary>
  326:         ///
  327:         /// </summary>
  328:         public bool Equals(EmsVag vag)
  329:         {
  330:             // below: this will not check the Id, Created, Updated fields
  331:             bool areEqual;
  332:  
  333:             if (vag is null) areEqual = false;
  334:             else if (ReferenceEquals(this, vag)) areEqual = true;
  335:             else
  336:             {
  337:                 if (this.ResultCode != vag.ResultCode) areEqual = false;
  338:                 else if (this.StateId != vag.StateId) areEqual = false;
  339:                 else if (this.DID != vag.DID) areEqual = false;
  340:                 else if (this.VAGNAME != vag.VAGNAME) areEqual = false;
  341:                 else if (this.VAGID != vag.VAGID) areEqual = false;
  342:                 else if (this.SIGIP != vag.SIGIP) areEqual = false;
  343:                 else if (this.SIGMASK != vag.SIGMASK) areEqual = false;
  344:                 else if (this.SIGGW != vag.SIGGW) areEqual = false;
  345:                 else if (this.SIGPORT != vag.SIGPORT) areEqual = false;
  346:                 else if (this.SIGVLANID != vag.SIGVLANID) areEqual = false;
  347:                 else if (this.SIGQOS != vag.SIGQOS) areEqual = false;
  348:                 else if (this.SIGDSCP != vag.SIGDSCP) areEqual = false;
  349:                 else if (this.SIGIPPRI != vag.SIGIPPRI) areEqual = false;
  350:                 else if (this.SIGTOSPRI != vag.SIGTOSPRI) areEqual = false;
  351:                 else if (this.SIGVLANPRI != vag.SIGVLANPRI) areEqual = false;
  352:                 else if (this.MEDIAIP != vag.MEDIAIP) areEqual = false;
  353:                 else if (this.MEDIAMASK != vag.MEDIAMASK) areEqual = false;
  354:                 else if (this.MEDIAGW != vag.MEDIAGW) areEqual = false;
  355:                 else if (this.MEDIAPORT != vag.MEDIAPORT) areEqual = false;
  356:                 else if (this.MEDIAVLANID != vag.MEDIAVLANID) areEqual = false;
  357:                 else if (this.MEDIAQOS != vag.MEDIAQOS) areEqual = false;
  358:                 else if (this.MEDIADSCP != vag.MEDIADSCP) areEqual = false;
  359:                 else if (this.MEDIAIPPRI != vag.MEDIAIPPRI) areEqual = false;
  360:                 else if (this.MEDIATOSPRI != vag.MEDIATOSPRI) areEqual = false;
  361:                 else if (this.MEDIAVLANPRI != vag.MEDIAVLANPRI) areEqual = false;
  362:                 else if (this.DOMAINNAME != vag.DOMAINNAME) areEqual = false;
  363:                 else if (this.ACTIVEMGCDNAME != vag.ACTIVEMGCDNAME) areEqual = false;
  364:                 else if (this.STANDBYMGCDNAME != vag.STANDBYMGCDNAME) areEqual = false;
  365:                 else if (this.VAGSTAT != vag.VAGSTAT) areEqual = false;
  366:                 else if (this.PROTOCOLTYPE != vag.PROTOCOLTYPE) areEqual = false;
  367:                 else if (this.TIDLAYER != vag.TIDLAYER) areEqual = false;
  368:                 else if (this.H248PFNAME != vag.H248PFNAME) areEqual = false;
  369:                 else if (this.SIPPFNAME != vag.SIPPFNAME) areEqual = false;
  370:                 else if (this.REGMODE != vag.REGMODE) areEqual = false;
  371:                 else if (this.EmsOnt.Id != vag.EmsOnt.Id) areEqual = false;
  372:                 else areEqual = true;
  373:             }
  374:  
  375:             return areEqual;
  376:         }
  377:  
  378:         ////////////////////////////////////////////////////////////////////////////
  379:  
  380:         /// <summary>
  381:         ///
  382:         /// </summary>
  383:         public override bool Equals(object obj)
  384:         {
  385:             bool areEqual;
  386:  
  387:             if (obj is null) areEqual = false;
  388:             else if (ReferenceEquals(this, obj)) areEqual = true;
  389:             else
  390:             {
  391:                 areEqual = obj.GetType() == GetType() && Equals((EmsVag)obj);
  392:             }
  393:  
  394:             return areEqual;
  395:         }
  396:  
  397:         ////////////////////////////////////////////////////////////////////////////
  398:  
  399:         /// <summary>
  400:         ///
  401:         /// </summary>
  402:         public override int GetHashCode()
  403:         {
  404:             unchecked
  405:             {
  406:                 int hashCode;
  407:  
  408:                 hashCode = ResultCode.GetHashCode();
  409:                 hashCode = (hashCode * 397) ^ StateId.GetHashCode();
  410:                 hashCode = (hashCode * 397) ^ DID.GetHashCode();
  411:                 hashCode = (hashCode * 397) ^ VAGNAME.GetHashCode();
  412:                 hashCode = (hashCode * 397) ^ VAGID.GetHashCode();
  413:                 hashCode = (hashCode * 397) ^ SIGIP.GetHashCode();
  414:                 hashCode = (hashCode * 397) ^ SIGMASK.GetHashCode();
  415:                 hashCode = (hashCode * 397) ^ SIGGW.GetHashCode();
  416:                 hashCode = (hashCode * 397) ^ SIGPORT.GetHashCode();
  417:                 hashCode = (hashCode * 397) ^ SIGVLANID.GetHashCode();
  418:                 hashCode = (hashCode * 397) ^ SIGQOS.GetHashCode();
  419:                 hashCode = (hashCode * 397) ^ SIGDSCP.GetHashCode();
  420:                 hashCode = (hashCode * 397) ^ SIGIPPRI.GetHashCode();
  421:                 hashCode = (hashCode * 397) ^ SIGTOSPRI.GetHashCode();
  422:                 hashCode = (hashCode * 397) ^ SIGVLANPRI.GetHashCode();
  423:                 hashCode = (hashCode * 397) ^ MEDIAIP.GetHashCode();
  424:                 hashCode = (hashCode * 397) ^ MEDIAMASK.GetHashCode();
  425:                 hashCode = (hashCode * 397) ^ MEDIAGW.GetHashCode();
  426:                 hashCode = (hashCode * 397) ^ MEDIAPORT.GetHashCode();
  427:                 hashCode = (hashCode * 397) ^ MEDIAVLANID.GetHashCode();
  428:                 hashCode = (hashCode * 397) ^ MEDIAQOS.GetHashCode();
  429:                 hashCode = (hashCode * 397) ^ MEDIADSCP.GetHashCode();
  430:                 hashCode = (hashCode * 397) ^ MEDIAIPPRI.GetHashCode();
  431:                 hashCode = (hashCode * 397) ^ MEDIATOSPRI.GetHashCode();
  432:                 hashCode = (hashCode * 397) ^ MEDIAVLANPRI.GetHashCode();
  433:                 hashCode = (hashCode * 397) ^ DOMAINNAME.GetHashCode();
  434:                 hashCode = (hashCode * 397) ^ ACTIVEMGCDNAME.GetHashCode();
  435:                 hashCode = (hashCode * 397) ^ STANDBYMGCDNAME.GetHashCode();
  436:                 hashCode = (hashCode * 397) ^ VAGSTAT.GetHashCode();
  437:                 hashCode = (hashCode * 397) ^ PROTOCOLTYPE.GetHashCode();
  438:                 hashCode = (hashCode * 397) ^ TIDLAYER.GetHashCode();
  439:                 hashCode = (hashCode * 397) ^ H248PFNAME.GetHashCode();
  440:                 hashCode = (hashCode * 397) ^ SIPPFNAME.GetHashCode();
  441:                 hashCode = (hashCode * 397) ^ REGMODE.GetHashCode();
  442:                 hashCode = (hashCode * 397) ^ EmsOnt.Id.GetHashCode();
  443:  
  444:                 return hashCode;
  445:             }
  446:         }
  447:  
  448:         ////////////////////////////////////////////////////////////////////////////
  449:  
  450:         /// <summary>
  451:         ///
  452:         /// </summary>
  453:         public bool Update(Ia.Ngn.Cl.Model.Huawei.EmsVag updatedItem)
  454:         {
  455:             // below: this will not update Id, Created
  456:             bool updated;
  457:  
  458:             updated = false;
  459:  
  460:             if (this.ResultCode != updatedItem.ResultCode) { this.ResultCode = updatedItem.ResultCode; updated = true; }
  461:             if (this.StateId != updatedItem.StateId) { this.StateId = updatedItem.StateId; updated = true; }
  462:             if (this.DID != updatedItem.DID) { this.DID = updatedItem.DID; updated = true; }
  463:             if (this.VAGNAME != updatedItem.VAGNAME) { this.VAGNAME = updatedItem.VAGNAME; updated = true; }
  464:             if (this.VAGID != updatedItem.VAGID) { this.VAGID = updatedItem.VAGID; updated = true; }
  465:             if (this.SIGIP != updatedItem.SIGIP) { this.SIGIP = updatedItem.SIGIP; updated = true; }
  466:             if (this.SIGMASK != updatedItem.SIGMASK) { this.SIGMASK = updatedItem.SIGMASK; updated = true; }
  467:             if (this.SIGGW != updatedItem.SIGGW) { this.SIGGW = updatedItem.SIGGW; updated = true; }
  468:             if (this.SIGPORT != updatedItem.SIGPORT) { this.SIGPORT = updatedItem.SIGPORT; updated = true; }
  469:             if (this.SIGVLANID != updatedItem.SIGVLANID) { this.SIGVLANID = updatedItem.SIGVLANID; updated = true; }
  470:             if (this.SIGQOS != updatedItem.SIGQOS) { this.SIGQOS = updatedItem.SIGQOS; updated = true; }
  471:             if (this.SIGDSCP != updatedItem.SIGDSCP) { this.SIGDSCP = updatedItem.SIGDSCP; updated = true; }
  472:             if (this.SIGIPPRI != updatedItem.SIGIPPRI) { this.SIGIPPRI = updatedItem.SIGIPPRI; updated = true; }
  473:             if (this.SIGTOSPRI != updatedItem.SIGTOSPRI) { this.SIGTOSPRI = updatedItem.SIGTOSPRI; updated = true; }
  474:             if (this.SIGVLANPRI != updatedItem.SIGVLANPRI) { this.SIGVLANPRI = updatedItem.SIGVLANPRI; updated = true; }
  475:             if (this.MEDIAIP != updatedItem.MEDIAIP) { this.MEDIAIP = updatedItem.MEDIAIP; updated = true; }
  476:             if (this.MEDIAMASK != updatedItem.MEDIAMASK) { this.MEDIAMASK = updatedItem.MEDIAMASK; updated = true; }
  477:             if (this.MEDIAGW != updatedItem.MEDIAGW) { this.MEDIAGW = updatedItem.MEDIAGW; updated = true; }
  478:             if (this.MEDIAPORT != updatedItem.MEDIAPORT) { this.MEDIAPORT = updatedItem.MEDIAPORT; updated = true; }
  479:             if (this.MEDIAVLANID != updatedItem.MEDIAVLANID) { this.MEDIAVLANID = updatedItem.MEDIAVLANID; updated = true; }
  480:             if (this.MEDIAQOS != updatedItem.MEDIAQOS) { this.MEDIAQOS = updatedItem.MEDIAQOS; updated = true; }
  481:             if (this.MEDIADSCP != updatedItem.MEDIADSCP) { this.MEDIADSCP = updatedItem.MEDIADSCP; updated = true; }
  482:             if (this.MEDIAIPPRI != updatedItem.MEDIAIPPRI) { this.MEDIAIPPRI = updatedItem.MEDIAIPPRI; updated = true; }
  483:             if (this.MEDIATOSPRI != updatedItem.MEDIATOSPRI) { this.MEDIATOSPRI = updatedItem.MEDIATOSPRI; updated = true; }
  484:             if (this.MEDIAVLANPRI != updatedItem.MEDIAVLANPRI) { this.MEDIAVLANPRI = updatedItem.MEDIAVLANPRI; updated = true; }
  485:             if (this.DOMAINNAME != updatedItem.DOMAINNAME) { this.DOMAINNAME = updatedItem.DOMAINNAME; updated = true; }
  486:             if (this.ACTIVEMGCDNAME != updatedItem.ACTIVEMGCDNAME) { this.ACTIVEMGCDNAME = updatedItem.ACTIVEMGCDNAME; updated = true; }
  487:             if (this.STANDBYMGCDNAME != updatedItem.STANDBYMGCDNAME) { this.STANDBYMGCDNAME = updatedItem.STANDBYMGCDNAME; updated = true; }
  488:             if (this.VAGSTAT != updatedItem.VAGSTAT) { this.VAGSTAT = updatedItem.VAGSTAT; updated = true; }
  489:             if (this.PROTOCOLTYPE != updatedItem.PROTOCOLTYPE) { this.PROTOCOLTYPE = updatedItem.PROTOCOLTYPE; updated = true; }
  490:             if (this.TIDLAYER != updatedItem.TIDLAYER) { this.TIDLAYER = updatedItem.TIDLAYER; updated = true; }
  491:             if (this.H248PFNAME != updatedItem.H248PFNAME) { this.H248PFNAME = updatedItem.H248PFNAME; updated = true; }
  492:             if (this.SIPPFNAME != updatedItem.SIPPFNAME) { this.SIPPFNAME = updatedItem.SIPPFNAME; updated = true; }
  493:             if (this.REGMODE != updatedItem.REGMODE) { this.REGMODE = updatedItem.REGMODE; updated = true; }
  494:             if (this.EmsOnt != updatedItem.EmsOnt) { this.EmsOnt = updatedItem.EmsOnt; updated = true; }
  495:  
  496:             if (updated) this.Updated = DateTime.UtcNow.AddHours(3);
  497:  
  498:             return updated;
  499:         }
  500:  
  501:         ////////////////////////////////////////////////////////////////////////////
  502:         ////////////////////////////////////////////////////////////////////////////
  503:  
  504:         /// <summary>
  505:         ///
  506:         /// </summary>
  507:         public string ToSimpleTextString()
  508:         {
  509:             return Ia.Ngn.Cl.Model.Data.Huawei.Vag.ToSimpleTextString(this);
  510:         }
  511:  
  512:         ////////////////////////////////////////////////////////////////////////////
  513:         ////////////////////////////////////////////////////////////////////////////
  514:     }
  515:  
  516:     ////////////////////////////////////////////////////////////////////////////
  517:     ////////////////////////////////////////////////////////////////////////////
  518: }