)>}]
شركة التطبيقات المتكاملة لتصميم وبرمجة البرمجيات الخاصة ش.ش.و.
Integrated Applications Programming Company
Home » Code Library » EmsDev (Ia.Ftn.Cl.Model.Huawei)

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

Huawei's EMS Dev Entity Framework class for Fixed Telecommunications Network (FTN) entity model.

    1: using System;
    2: using System.Collections.Generic;
    3: using System.ComponentModel.DataAnnotations;
    4: using System.ComponentModel.DataAnnotations.Schema;
    5: using System.Linq;
    6: using System.Threading;
    7: using System.Threading.Tasks;
    8:  
    9: namespace Ia.Ftn.Cl.Model.Huawei
   10: {
   11:     ////////////////////////////////////////////////////////////////////////////
   12:  
   13:     /// <summary publish="true">
   14:     /// Huawei's EMS Dev Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
   15:     /// </summary>
   16:     /// 
   17:     /// <remarks> 
   18:     /// Copyright © 2016-2021 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:     public class EmsDev
   31:     {
   32:         /*
   33:          * iManager_NCE_V200R014C60_TL1_NBI_User_Guide_13.pdf
   34:          * 14.1.3 Querying the Information About a Device (LST-DEV)
   35:          * 
   36:          * Usage Note:
   37:          * 
   38:          * The DEV (IP address of an optical line terminal) and ONULOCATEINFO parameters can be used as the location information. Before using these two parameters as the location information, make sure that the DEV parameter indicates the device IP address. For details, see C.7 How to Locate a Device According to the IP Address.
   39:          * 
   40:          * Command Format:
   41:          * 
   42:          * LST-DEV::[(DID=Device-ID)|(DEV=Device-name)|(DEVIP=device-IP)|(DT=device-type)| (DEVVER=device-ver)|(DEV=device-olt-ipaddress,ONULOCATEINFO=onu-locateinformation)]:CTAG::[SHOWOPTION=option of result's attributes][,USERID=user id]; 
   43:          * 
   44:          */
   45:  
   46:         /// <summary/>
   47:         //public enum ServiceTypeList { IMPU = 1, TEMPLATEIDX, DSPIDX, LP, CSC, UNAME, VCCFLAG, VTFLAG, NSCFU, NSCFUVM, NSCFB, NSCFBVM, NSCFNR, NSCFNRVM, NSCFNL, NSCFNLVM, NSCD, NSCDVM, NSCFNRC, NSCFNRCVM, NSCLIP, NSCIDCW, NSRIO, NSCNIP, NSCLIR, NSRIP, NSCNIR, NSRID, NSNRID, NSRND, NSNRND, NSCW, NSCCW, NSOIP, NSACRM, NSGOIR, NSMOIR, NSTIP, NSTIR, NSOTIR, NSCLIPNOSCREENING, NSCR, NSWAKE_UP, NSAOC_D, NSAOC_E, NSXEXH, NSXEGJ, NSCWCFNR, NSIIFC, NSDN_CALL_OUT_BAR, NSCCBS, NSCCNR, NSCCBSR, NSCCNRR, NS3PTY, NSNPTY, NSDND, NSMCR, NSCBA, NSTMP_LIN, NSCODEC_CNTRL, NSMWI, NSDC, NSHOLD, NSECT, NSCFTB, NSDAN, NSSTOP_SECRET, NSMCID, NSEBO, NSICO, NSOUTG, NSINQYH, NSUINFO, NSDN_CALL_OUT_ALLOW, NSSIC, NSSOC, NSSETCFNRTIME, NSCFS, NSCFSB, NSFAX, NSABRC, NSACRTOVM, NSPREPAID, NSCRBT, NSICB, NSMRINGING, NSCIS, NSCBEG, NSCOLP, NSCOLR, NSCOLPOVR, NSBAOC, NSBOIC, NSBOICEXHC, NSBAIC, NSBICROM, NSSPEED_DIAL, NSSD1D, NSSD2D, NSGRNCALL, NSCPARK, NSGAA, NSQSNS, NSMSN, NSHOTLINE, NSAOC_S, NSNIGHTSRV, NSBACKNUM, NSAUTOCON, NSCAMPON, NSCTD, NSCLICKHOLD, NSQUEUE, NSSANSWER, NSICENCF, NSCFGO, NSCECT, NSCTGO, NSCTIO, NSSETBUSY, NSOVERSTEP, NSABSENT, NSMONITOR, NSFMONITOR, NSDISCNT, NSFDISCNT, NSINSERT, NSFINSERT, NSASI, NSPWCB, NSRD, NSLCPS, NSNCPS, NSICPS, NSCBCLOCK, NSMINIBAR, NSMCN, NSDSTR, NSOPRREG, NSONEKEY, NSINBOUND, NSOUTBOUND, NSCALLERID, NSCUN, NSIPTVVC, NSNP, NSSEC, NSSECSTA, NSHRCN, NSSB, NSOCCR, LCO, LC, LCT, NTT, ITT, ICTX, OCTX, INTT, IITT, ICLT, ICDDD, ICIDD, IOLT, CTLCO, CTLCT, CTLD, CTINTNANP, CTINTWORLD, CTDA, CTOSM, CTOSP, CTOSP1, CCO1, CCO2, CCO3, CCO4, CCO5, CCO6, CCO7, CCO8, CCO9, CCO10, CCO11, CCO12, CCO13, CCO14, CCO15, CCO16, HIGHENTCO, OPERATOR, SUPYSRV, IDDCI, NTCI, LTCI, RSC, CIG, OUTRST, INRST, NOAT, RINGCOUNT, VMAIND, VDMAIND, TGRP, TIDHLD, TIDCW, SCF, LMTGRP, FLBGRP, SLBGRP, COP, G711_64K_A_LAW, G711_64K_U_LAW, G722, G723, G726, G728, G729, CODEC_MP4A, CODEC2833, CODEC2198, G726_40, G726_32, G726_24, G726_16, AMR, CLEARMODE, ILBC, SPEEX, G729EV, EVRC, EVRCB, H261, H263, CODEC_MP4V, H264, T38, T120, G711A_VBD, G711U_VBD, G726_VBD, G726_40_VBD, G726_32_VBD, G726_24_VBD, G726_16_VBD, WIND_BAND_AMR, GSM610, H263_2000, BROADVOICE_32, UNKNOWN_CODEC, ACODEC, VCODEC, POLIDX, NCPI, ICPI, EBOCL, EBOPL, EBOIT, RM, CPC, PCHG, TFPT, CHT, MCIDMODE, MCIDCMODE, MCIDAMODE, PREPAIDIDX, CRBTID, ODBBICTYPE, ODBBOCTYPE, ODBBARTYPE, ODBSS, ODBBRCFTYPE, PNOTI, MAXPARACALL, ATSDTMBUSY, CALLCOUNT, CDNOTICALLER, ISCHGFLAG, CHC, CUSER, CGRP, CUSERGRP, STCF, CHARSC, REGUIDX, SOCBFUNC, SOCBPTONEIDX, ADMINCBA, ADCONTROL_DIVERSION, DPR, PRON, CPCRUS, CUSCAT, SPT100REL }
   48:  
   49:         /// <summary/>
   50:         public EmsDev() { }
   51:  
   52:         /// <summary/>
   53:         [Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
   54:         public int Id { get; set; }
   55:  
   56:         /// <summary>
   57:         /// Last ResultCode of device
   58:         /// </summary>
   59:         public long ResultCode { get; set; }
   60:  
   61:         /// <summary>
   62:         /// Operational state ID of the device
   63:         /// </summary>
   64:         public int StateId { get; set; }
   65:  
   66:         /// <summary>
   67:         /// DID INTEGER - Indicates the device ID. 
   68:         /// </summary>
   69:         public int DID { get; set; }
   70:  
   71:         /// <summary>
   72:         /// DEV OCTET STRING SIZE (192) Indicates the device name. 
   73:         /// </summary>
   74:         public string DEV { get; set; }
   75:  
   76:         /// <summary>
   77:         /// DEVIP IPADDRESS - Indicates the IP address of the device. 
   78:         /// </summary>
   79:         public string DEVIP { get; set; }
   80:  
   81:         /// <summary>
   82:         /// DT OCTET STRING See Supporting Device. Indicates the device type. When you query information about an MA5683T, DT in the response message is related to the TL1_SHOW_MA5683T_S WITCH configuration item setting. For details about the meaning and setting method of the configuration item, see Table 8-1. 
   83:         /// </summary>
   84:         public string DT { get; set; }
   85:  
   86:         /// <summary>
   87:         /// DVER OCTET STRING SIZE (252) Indicates the device version. 
   88:         /// </summary>
   89:         public string DVER { get; set; }
   90:  
   91:         /// <summary>
   92:         /// DSTAT OCTET STRING l Connecting l Disconnecting l WarningFault l MinorFault l MajorFault l CriticalFault l Loop l Test l Unknown Indicates the status of the device. 
   93:         /// </summary>
   94:         public string DSTAT { get; set; }
   95:  
   96:         /// <summary>
   97:         /// DLOC OCTET STRING SIZE (252)
   98:         /// </summary>
   99:         public string DLOC { get; set; }
  100:  
  101:         /// <summary>
  102:         /// AdminStat OCTET STRING l UNKOWN l Plan l Install Indicates the management status of the device. 
  103:         /// </summary>
  104:         public string AdminStat { get; set; }
  105:  
  106:         /// <summary>
  107:         /// WorkMode OCTET STRING l CMSAN l AMSAN Indicates the working mode of the device. Only the UA5000 (IPMB) supports this parameter. The meanings of the options are as follows: l CMSAN: It is short for copper multi-service access node. l AMSAN: It is short for aggregator multi-service access node. 
  108:         /// </summary>
  109:         public string WorkMode { get; set; }
  110:  
  111:         /// <summary>
  112:         /// ADDITIONALINFO OCTET STRING SIZE (252) Indicates the location of the MDU. The format of the value is OLT device name/subrack ID of the PON port/slot ID of the PON port/number of the PON port/MDUID (ONTID), such as 10.71.35.172/0/14/0/0. 
  113:         /// </summary>
  114:         public string ADDITIONALINFO { get; set; }
  115:  
  116:         /// <summary>
  117:         /// CRTID OCTET STRING SIZE (255) Indicates the ID of an NE creator. 
  118:         /// </summary>
  119:         public string CRTID { get; set; }
  120:  
  121:         /// <summary>
  122:         /// CRTADDR OCTET STRING SIZE (255) Indicates the address of an NE creator. 
  123:         /// </summary>
  124:         public string CRTADDR { get; set; }
  125:  
  126:         /// <summary>
  127:         /// CRTTEL OCTET STRING SIZE (255) Indicates the telephone number of an NE creator. The parameter value is a character string in any format that represents a telephone number.
  128:         /// </summary>
  129:         public string CRTTEL { get; set; }
  130:  
  131:         /// <summary>
  132:         /// CRTDATE OCTET STRING SIZE (255) Indicates the time when an NE is created. l the value of configuration item BMS_LST_DEV_CRT DATE_SHOW_GMT is set to 0. Format: yearmonth-day hour:minute:second. For example, 2010-12-16 07:22:57. l the value of configuration item BMS_LST_DEV_CRT DATE_SHOW_GMT is set to 1. Format: yearmonth-day hour:minute:second time zone. For example, 2010-12-16 07:22:57 GMT. For details about the meaning and setting method of the configuration item, see Table 8-1. 
  133:         /// </summary>
  134:         public string CRTDATE { get; set; }
  135:  
  136:         /// <summary>
  137:         /// REMARK OCTET STRING SIZE (255) Indicates remarks. 
  138:         /// </summary>
  139:         public string REMARK { get; set; }
  140:  
  141:         /// <summary>
  142:         /// TYPE OCTET STRING l OLT l ONU l OTHER Indicates the NE type. Options are as follows: l OLT: OLTs l ONU: ONUs l OTHER: Other devices
  143:         /// </summary>
  144:         public string TYPE { get; set; }
  145:  
  146:         /// <summary>
  147:         /// NERATELIST OCTET STRING l 155 M/620 M/1000 M/10000 M l 1000 M/10000 M Indicates the upstream port rate supported by an NE. Options are as follows: l 155M, 620M, 1000M, 10000M: An OLT or another device supports the upstream port rate of 155 Mbit/s, 620 Mbit/s, 1000 Mbit/s, or 10000 Mbit/s. l 1000 M, 10000 M: An ONU supports the upstream port rate of 1000 Mbit/s or 10000 Mbit/s at s. 
  148:         /// </summary>
  149:         public string NERATELIST { get; set; }
  150:  
  151:         /// <summary>
  152:         /// NEPROV OCTET STRING HUAWEI Indicates the NE vender name. 
  153:         /// </summary>
  154:         public string NEPROV { get; set; }
  155:  
  156:         /// <summary>
  157:         /// TOPXY OCTET STRING SIZE (255) Indicates the relative coordinate of an NE in the Main Topology. Format: (horizontal coordinate, vertical coordinate). For example, (106, 225). 
  158:         /// </summary>
  159:         public string TOPXY { get; set; }
  160:  
  161:         /// <summary>
  162:         /// EMSID OCTET STRING HUAWEIEMS Indicates the ID of an EMS. 
  163:         /// </summary>
  164:         public string EMSID { get; set; }
  165:  
  166:         /// <summary>
  167:         /// ALIAS OCTET STRING SIZE (255) Indicates the NE alias. 
  168:         /// </summary>
  169:         public string ALIAS { get; set; }
  170:  
  171:         /// <summary>
  172:         /// PCBVER OCTET STRING SIZE (255) Indicates the hardware version of an NE, that is, the control board version. 
  173:         /// </summary>
  174:         public string PCBVER { get; set; }
  175:  
  176:         /// <summary>
  177:         /// MAINTAINID OCTET STRING SIZE (255) Indicates the ID of an NE maintenance engineer. 
  178:         /// </summary>
  179:         public string MAINTAINID { get; set; }
  180:  
  181:         /// <summary>
  182:         /// MAINTAINADDR OCTET STRING SIZE (255) Indicates the address of an NE maintenance engineer. The parameter value is an email address. For example: w11@huawei.com.
  183:         /// </summary>
  184:         public string MAINTAINADDR { get; set; }
  185:  
  186:         /// <summary>
  187:         /// MAINTAINTEL OCTET STRING SIZE (255) Indicates the telephone number of an NE maintenance engineer. The parameter value is a character string in any format that represents a telephone number. 
  188:         /// </summary>
  189:         public string MAINTAINTEL { get; set; }
  190:  
  191:         /// <summary>
  192:         /// REGISTERSTAT OCTET STRING l registered l unregistered Indicates the registration status of an ONU. Options are as follows: l registered: The ONU has been registered. l unregistered: The ONU has not been registered.
  193:         /// </summary>
  194:         public string REGISTERSTAT { get; set; }
  195:  
  196:         /// <summary/>
  197:         public DateTime Created { get; set; }
  198:  
  199:         /// <summary/>
  200:         public DateTime Updated { get; set; }
  201:  
  202:         /// <summary/>
  203:         [ForeignKey("Access_Id")]
  204:         public virtual Ia.Ftn.Cl.Model.Access Access { get; set; }
  205:  
  206:         /// <summary/>
  207:         public virtual ICollection<Ia.Ftn.Cl.Model.Huawei.EmsBoard> EmsBoards { get; set; }
  208:  
  209:         ////////////////////////////////////////////////////////////////////////////
  210:  
  211:         /// <summary>
  212:         ///
  213:         /// </summary>
  214:         [NotMapped]
  215:         public string ResultCodeString
  216:         {
  217:             get
  218:             {
  219:                 return this.ResultCode.ToString();
  220:             }
  221:         }
  222:  
  223:         ////////////////////////////////////////////////////////////////////////////
  224:  
  225:         /// <summary>
  226:         ///
  227:         /// </summary>
  228:         [NotMapped]
  229:         public string State
  230:         {
  231:             get
  232:             {
  233:                 return Ia.Ftn.Cl.Model.Data.Huawei.Ems.BellcoreStateFromId(this.StateId);
  234:             }
  235:         }
  236:  
  237:         ////////////////////////////////////////////////////////////////////////////
  238:  
  239:         /// <summary>
  240:         ///
  241:         /// </summary>
  242:         [NotMapped]
  243:         public Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type Type
  244:         {
  245:             get
  246:             {
  247:                 Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type type;
  248:  
  249:                 if (!string.IsNullOrEmpty(this.DT))
  250:                 {
  251:                     if (this.DT == "MA5600T" || this.DT == "MA5603T")
  252:                     {
  253:                         if (this.DEV.Contains("_MSAN_")) type = Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type.Msan;
  254:                         else type = Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type.Olt;
  255:                     }
  256:                     else if (this.DT == "MA5616" || this.DT == "MA5878")
  257:                     {
  258:                         type = Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type.Mdu;
  259:                     }
  260:                     else
  261:                     {
  262:                         type = Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type.Unknown;
  263:                     }
  264:                 }
  265:                 else
  266:                 {
  267:                     type = Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type.Unknown;
  268:                 }
  269:  
  270:                 return type;
  271:             }
  272:         }
  273:  
  274:         ////////////////////////////////////////////////////////////////////////////
  275:  
  276:         /// <summary>
  277:         ///
  278:         /// </summary>
  279:         public bool Equal(Ia.Ftn.Cl.Model.Huawei.EmsDev b)
  280:         {
  281:             // below: this will not check the Id, Created, Updated fields
  282:             bool areEqual;
  283:  
  284:             if (this.ResultCode != b.ResultCode) areEqual = false;
  285:             else if (this.StateId != b.StateId) areEqual = false;
  286:             else if (this.DID != b.DID) areEqual = false;
  287:             else if (this.DEV != b.DEV) areEqual = false;
  288:             else if (this.DEVIP != b.DEVIP) areEqual = false;
  289:             else if (this.DT != b.DT) areEqual = false;
  290:             else if (this.DVER != b.DVER) areEqual = false;
  291:             else if (this.DSTAT != b.DSTAT) areEqual = false;
  292:             else if (this.DLOC != b.DLOC) areEqual = false;
  293:             else if (this.AdminStat != b.AdminStat) areEqual = false;
  294:             else if (this.WorkMode != b.WorkMode) areEqual = false;
  295:             else if (this.ADDITIONALINFO != b.ADDITIONALINFO) areEqual = false;
  296:             else if (this.CRTID != b.CRTID) areEqual = false;
  297:             else if (this.CRTADDR != b.CRTADDR) areEqual = false;
  298:             else if (this.CRTTEL != b.CRTTEL) areEqual = false;
  299:             else if (this.CRTDATE != b.CRTDATE) areEqual = false;
  300:             else if (this.REMARK != b.REMARK) areEqual = false;
  301:             else if (this.TYPE != b.TYPE) areEqual = false;
  302:             else if (this.NERATELIST != b.NERATELIST) areEqual = false;
  303:             else if (this.NEPROV != b.NEPROV) areEqual = false;
  304:             else if (this.TOPXY != b.TOPXY) areEqual = false;
  305:             else if (this.EMSID != b.EMSID) areEqual = false;
  306:             else if (this.ALIAS != b.ALIAS) areEqual = false;
  307:             else if (this.PCBVER != b.PCBVER) areEqual = false;
  308:             else if (this.MAINTAINID != b.MAINTAINID) areEqual = false;
  309:             else if (this.MAINTAINADDR != b.MAINTAINADDR) areEqual = false;
  310:             else if (this.MAINTAINTEL != b.MAINTAINTEL) areEqual = false;
  311:             else if (this.REGISTERSTAT != b.REGISTERSTAT) areEqual = false;
  312:             else if (this.Access != null && b.Access != null && this.Access.Id != b.Access.Id) areEqual = false;
  313:             else areEqual = true;
  314:  
  315:             return areEqual;
  316:         }
  317:  
  318:         ////////////////////////////////////////////////////////////////////////////
  319:  
  320:         /// <summary>
  321:         ///
  322:         /// </summary>
  323:         public bool Update(Ia.Ftn.Cl.Model.Huawei.EmsDev updatedItem)
  324:         {
  325:             // below: this will not update Id, Created
  326:             bool updated;
  327:  
  328:             updated = false;
  329:  
  330:             if (this.ResultCode != updatedItem.ResultCode) { this.ResultCode = updatedItem.ResultCode; updated = true; }
  331:             if (this.StateId != updatedItem.StateId) { this.StateId = updatedItem.StateId; updated = true; }
  332:             if (this.DID != updatedItem.DID) { this.DID = updatedItem.DID; updated = true; }
  333:             if (this.DEV != updatedItem.DEV) { this.DEV = updatedItem.DEV; updated = true; }
  334:             if (this.DEVIP != updatedItem.DEVIP) { this.DEVIP = updatedItem.DEVIP; updated = true; }
  335:             if (this.DT != updatedItem.DT) { this.DT = updatedItem.DT; updated = true; }
  336:             if (this.DVER != updatedItem.DVER) { this.DVER = updatedItem.DVER; updated = true; }
  337:             if (this.DSTAT != updatedItem.DSTAT) { this.DSTAT = updatedItem.DSTAT; updated = true; }
  338:             if (this.DLOC != updatedItem.DLOC) { this.DLOC = updatedItem.DLOC; updated = true; }
  339:             if (this.AdminStat != updatedItem.AdminStat) { this.AdminStat = updatedItem.AdminStat; updated = true; }
  340:             if (this.WorkMode != updatedItem.WorkMode) { this.WorkMode = updatedItem.WorkMode; updated = true; }
  341:             if (this.ADDITIONALINFO != updatedItem.ADDITIONALINFO) { this.ADDITIONALINFO = updatedItem.ADDITIONALINFO; updated = true; }
  342:             if (this.CRTID != updatedItem.CRTID) { this.CRTID = updatedItem.CRTID; updated = true; }
  343:             if (this.CRTADDR != updatedItem.CRTADDR) { this.CRTADDR = updatedItem.CRTADDR; updated = true; }
  344:             if (this.CRTTEL != updatedItem.CRTTEL) { this.CRTTEL = updatedItem.CRTTEL; updated = true; }
  345:             if (this.CRTDATE != updatedItem.CRTDATE) { this.CRTDATE = updatedItem.CRTDATE; updated = true; }
  346:             if (this.REMARK != updatedItem.REMARK) { this.REMARK = updatedItem.REMARK; updated = true; }
  347:             if (this.TYPE != updatedItem.TYPE) { this.TYPE = updatedItem.TYPE; updated = true; }
  348:             if (this.NERATELIST != updatedItem.NERATELIST) { this.NERATELIST = updatedItem.NERATELIST; updated = true; }
  349:             if (this.NEPROV != updatedItem.NEPROV) { this.NEPROV = updatedItem.NEPROV; updated = true; }
  350:             if (this.TOPXY != updatedItem.TOPXY) { this.TOPXY = updatedItem.TOPXY; updated = true; }
  351:             if (this.EMSID != updatedItem.EMSID) { this.EMSID = updatedItem.EMSID; updated = true; }
  352:             if (this.ALIAS != updatedItem.ALIAS) { this.ALIAS = updatedItem.ALIAS; updated = true; }
  353:             if (this.PCBVER != updatedItem.PCBVER) { this.PCBVER = updatedItem.PCBVER; updated = true; }
  354:             if (this.MAINTAINID != updatedItem.MAINTAINID) { this.MAINTAINID = updatedItem.MAINTAINID; updated = true; }
  355:             if (this.MAINTAINADDR != updatedItem.MAINTAINADDR) { this.MAINTAINADDR = updatedItem.MAINTAINADDR; updated = true; }
  356:             if (this.MAINTAINTEL != updatedItem.MAINTAINTEL) { this.MAINTAINTEL = updatedItem.MAINTAINTEL; updated = true; }
  357:             if (this.REGISTERSTAT != updatedItem.REGISTERSTAT) { this.REGISTERSTAT = updatedItem.REGISTERSTAT; updated = true; }
  358:             if ((this.Access == null && updatedItem.Access != null) || (this.Access != null && updatedItem.Access != null && this.Access.Id != updatedItem.Access.Id)) { this.Access = updatedItem.Access; updated = true; }
  359:  
  360:             if (updated) this.Updated = DateTime.UtcNow.AddHours(3);
  361:  
  362:             return updated;
  363:         }
  364:  
  365:         ////////////////////////////////////////////////////////////////////////////
  366:         ////////////////////////////////////////////////////////////////////////////
  367:  
  368:         /// <summary>
  369:         ///
  370:         /// </summary>
  371:         public string ToSimpleTextString()
  372:         {
  373:             return Ia.Ftn.Cl.Model.Data.Huawei.Dev.ToSimpleTextString(this);
  374:         }
  375:  
  376:         ////////////////////////////////////////////////////////////////////////////
  377:         ////////////////////////////////////////////////////////////////////////////
  378:     }
  379:  
  380:     ////////////////////////////////////////////////////////////////////////////
  381:     ////////////////////////////////////////////////////////////////////////////
  382: }