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

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

Service Entity Framework class for Fixed Telecommunications Network (FTN) 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.Ftn.Cl.Model
    9: {
   10:     ////////////////////////////////////////////////////////////////////////////
   11:  
   12:     /// <summary publish="true">
   13:     /// Service Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
   14:     /// </summary>
   15:     /// 
   16:     /// <remarks> 
   17:     /// Copyright © 2006-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 Service2
   30:     {
   31:         /// <summary/>
   32:         public Service2() { }
   33:  
   34:         /// <summary/>
   35:         [Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
   36:         public string Id { get; set; }
   37:  
   38:         /// <summary/>
   39:         public string Service { get; set; }
   40:  
   41:         /// <summary/>
   42:         public int ServiceType { get; set; }
   43:  
   44:         /// <summary/>
   45:         public int AreaCode { get; set; }
   46:  
   47:         /// <summary/>
   48:         public bool CallWaiting { get; set; }
   49:  
   50:         /// <summary/>
   51:         public bool CallForwarding { get; set; }
   52:  
   53:         /// <summary/>
   54:         public bool AlarmCall { get; set; }
   55:  
   56:         /// <summary/>
   57:         public bool WakeupCall { get; set; }
   58:  
   59:         /// <summary/>
   60:         public bool InternationalCallingUserControlled { get; set; }
   61:  
   62:         /// <summary/>
   63:         public bool InternationalCalling { get; set; }
   64:  
   65:         /// <summary/>
   66:         public bool CallerId { get; set; }
   67:  
   68:         /// <summary/>
   69:         public bool ConferenceCall { get; set; }
   70:  
   71:         /// <summary/>
   72:         public bool CallBarring { get; set; }
   73:  
   74:         /// <summary/>
   75:         public bool ServiceSuspension { get; set; }
   76:  
   77:         /// <summary/>
   78:         public bool AbbriviatedCalling { get; set; }
   79:  
   80:         /// <summary/>
   81:         public bool CallForwardingUnconditional { get; set; }
   82:  
   83:         /// <summary/>
   84:         public bool CallingLineIdentificationRestriction { get; set; }
   85:  
   86:         /// <summary/>
   87:         public bool ConnectedLineIdentificationRestriction { get; set; }
   88:  
   89:         /// <summary/>
   90:         public bool WakeUp { get; set; }
   91:  
   92:         /// <summary/>
   93:         public bool CallForwardingByTime { get; set; }
   94:  
   95:         /// <summary/>
   96:         public bool MutlimediaInformationPresentation { get; set; }
   97:  
   98:         /// <summary/>
   99:         public bool SelectiveOutgoingCallBarring { get; set; }
  100:  
  101:         /// <summary/>
  102:         public bool DialNumberCallOutAllow { get; set; }
  103:  
  104:         /// <summary/>
  105:         public bool DoNotDisturb { get; set; }
  106:  
  107:         /// <summary/>
  108:         public bool OutgoingCallBarring { get; set; }
  109:  
  110:         /// <summary/>
  111:         public bool TemporaryLine { get; set; }
  112:  
  113:         /// <summary/>
  114:         public bool CodecControl { get; set; }
  115:  
  116:         /// <summary/>
  117:         public bool SelectiveIncomingCallBarring { get; set; }
  118:  
  119:         /// <summary/>
  120:         public bool SelectiveCallForwarding { get; set; }
  121:  
  122:         /// <summary/>
  123:         public bool DialNumberCallOutBarring { get; set; }
  124:  
  125:         /// <summary/>
  126:         public bool CallForwardingBasedonBlackList { get; set; }
  127:  
  128:         /// <summary/>
  129:         public bool CallForwardingBusy { get; set; }
  130:  
  131:         /// <summary/>
  132:         public bool CallForwardingNoReply { get; set; }
  133:  
  134:         /// <summary/>
  135:         public bool CallForwardingOffline { get; set; }
  136:  
  137:         /// <summary/>
  138:         public bool CallForwardingOnUserNotReachable { get; set; }
  139:  
  140:         /// <summary/>
  141:         public bool CallForwardingNoReplyinCallWaiting { get; set; }
  142:  
  143:         /// <summary/>
  144:         public bool MultiRinging { get; set; }
  145:  
  146:         /// <summary/>
  147:         public bool ConvergentInterPersonalService { get; set; }
  148:  
  149:         /// <summary/>
  150:         public bool CallForwardingBySequence { get; set; }
  151:  
  152:         /// <summary/>
  153:         public bool UserNumberChange { get; set; }
  154:  
  155:         /// <summary/>
  156:         public bool BlackNumberData { get; set; }
  157:  
  158:         /// <summary/>
  159:         public bool WhiteNumberData { get; set; }
  160:  
  161:         /// <summary/>
  162:         public bool OwedRestriction { get; set; }
  163:  
  164:         /// <summary/>
  165:         public bool Strategy { get; set; }
  166:  
  167:         /// <summary/>
  168:         public bool GreenNumberData { get; set; }
  169:  
  170:         /// <summary/>
  171:         public bool RedNumberData { get; set; }
  172:  
  173:         /// <summary/>
  174:         public bool BarringOfAllOutgoingCalls { get; set; }
  175:  
  176:         /// <summary/>
  177:         public bool BarringOfAllOutgoingInternationalCalls { get; set; }
  178:  
  179:         /// <summary/>
  180:         public bool BarringOfOutgoingInternationalCallsExceptThoseDirectedToTheHomePlmnCountry { get; set; }
  181:  
  182:         /// <summary/>
  183:         public bool BarringOfAllIncomingCalls { get; set; }
  184:  
  185:         /// <summary/>
  186:         public bool BarringOfIncomingCallsWhenRoamingOutsideTheHomePlmnCountry { get; set; }
  187:  
  188:         /// <summary/>
  189:         public bool SpeedDial { get; set; }
  190:  
  191:         /// <summary/>
  192:         public bool GreenCall { get; set; }
  193:  
  194:         /// <summary/>
  195:         public bool SetDataUpgrade { get; set; }
  196:  
  197:         /// <summary/>
  198:         public bool AutoConsole { get; set; }
  199:  
  200:         /// <summary/>
  201:         public bool NightService { get; set; }
  202:  
  203:         /// <summary/>
  204:         public bool BackupNumber { get; set; }
  205:  
  206:         /// <summary/>
  207:         public bool Absence { get; set; }
  208:  
  209:         /// <summary/>
  210:         public bool AuthorizedCodeForStdIdd { get; set; }
  211:  
  212:         /// <summary/>
  213:         public bool Hotline { get; set; }
  214:  
  215:         /// <summary/>
  216:         public bool CetMaliciousCommunicationIdentification { get; set; }
  217:  
  218:         /// <summary/>
  219:         public bool MissCallNotify { get; set; }
  220:  
  221:         /// <summary/>
  222:         public bool SubscriptionStatus { get; set; }
  223:  
  224:         /// <summary/>
  225:         public bool UsbDongleOneKeyService { get; set; }
  226:  
  227:         /// <summary/>
  228:         public bool IRoamingInboundSingleImsiMultiMsisdn { get; set; }
  229:  
  230:         /// <summary/>
  231:         public bool IRoamingOutboundSingleImsiMultiMsisdn { get; set; }
  232:  
  233:         /// <summary/>
  234:         public bool NpaSplit { get; set; }
  235:  
  236:         /// <summary/>
  237:         public bool AllCallForwardingGroup { get; set; }
  238:  
  239:         /// <summary/>
  240:         public bool ConditionalCallForwardingGroup { get; set; }
  241:  
  242:         /// <summary/>
  243:         public bool GeneralOrigIdentificationRestriction { get; set; }
  244:  
  245:         /// <summary/>
  246:         public bool MultimediaOfOrigIdRestriction { get; set; }
  247:  
  248:         /// <summary/>
  249:         public bool TerminatingIdentityRestriction { get; set; }
  250:  
  251:         /// <summary/>
  252:         public bool DistinctiveRing { get; set; }
  253:  
  254:         /// <summary/>
  255:         public bool VisitedNetworkImpu { get; set; }
  256:  
  257:         /// <summary/>
  258:         public bool SeasonalSuspend { get; set; }
  259:  
  260:         /// <summary/>
  261:         public bool NumberInvalidation { get; set; }
  262:  
  263:         /// <summary/>
  264:         public bool IroamingServiceProvision { get; set; }
  265:  
  266:         /// <summary/>
  267:         public bool IptvCallerId { get; set; }
  268:  
  269:         /// <summary/>
  270:         public bool IptvVideoCall { get; set; }
  271:  
  272:         /// <summary/>
  273:         public bool NumberPortability { get; set; }
  274:  
  275:         /// <summary/>
  276:         public bool SecretaryService { get; set; }
  277:  
  278:         /// <summary/>
  279:         public bool SalesBlock { get; set; }
  280:  
  281:         /// <summary/>
  282:         public bool FilterCriteria { get; set; }
  283:  
  284:         /// <summary/>
  285:         public bool CallerInformation { get; set; }
  286:  
  287:         /// <summary/>
  288:         public bool PresenceStatus { get; set; }
  289:  
  290:         /// <summary/>
  291:         public bool OneNumberService { get; set; }
  292:  
  293:         /// <summary/>
  294:         public bool AssociationList { get; set; }
  295:  
  296:         /// <summary/>
  297:         public int Pin { get; set; }
  298:  
  299:         /// <summary/>
  300:         public int Port { get; set; }
  301:  
  302:         /// <summary/>
  303:         [ForeignKey("Access_Id")]
  304:         public virtual Access Access { get; set; }
  305:  
  306:         /// <summary/>
  307:         public DateTime Created { get; set; }
  308:  
  309:         /// <summary/>
  310:         public DateTime Updated { get; set; }
  311:  
  312:         /// <summary/>
  313:         public string UserId { get; set; }
  314:  
  315:         ////////////////////////////////////////////////////////////////////////////
  316:  
  317:         /// <summary>
  318:         ///
  319:         /// </summary>
  320:         [NotMapped]
  321:         public int Position
  322:         {
  323:             get
  324:             {
  325:                 return 0; // Ia.Ftn.Cl.Model.Data.Service.ServiceIdPositionDictionary[this.Id];
  326:             }
  327:         }
  328:  
  329:         ////////////////////////////////////////////////////////////////////////////
  330:  
  331:         /// <summary>
  332:         ///
  333:         /// </summary>
  334:         public bool Update(Service2 updatedService)
  335:         {
  336:             // below: this will not update Id, Created
  337:             bool updated;
  338:  
  339:             updated = false;
  340:  
  341:             if (this.Service != updatedService.Service) { this.Service = updatedService.Service; updated = true; }
  342:             if (this.ServiceType != updatedService.ServiceType) { this.ServiceType = updatedService.ServiceType; updated = true; }
  343:             if (this.AreaCode != updatedService.AreaCode) { this.AreaCode = updatedService.AreaCode; updated = true; }
  344:             if (this.CallWaiting != updatedService.CallWaiting) { this.CallWaiting = updatedService.CallWaiting; updated = true; }
  345:             if (this.CallForwarding != updatedService.CallForwarding) { this.CallForwarding = updatedService.CallForwarding; updated = true; }
  346:  
  347:             if (this.AlarmCall != updatedService.AlarmCall) { this.AlarmCall = updatedService.AlarmCall; updated = true; }
  348:             if (this.WakeupCall != updatedService.WakeupCall) { this.WakeupCall = updatedService.WakeupCall; updated = true; }
  349:  
  350:             // remove later if (this.CallBarring != updatedService.CallBarring) { this.CallBarring = updatedService.CallBarring; updated = true; }
  351:             if (this.InternationalCallingUserControlled != updatedService.InternationalCallingUserControlled) { this.InternationalCallingUserControlled = updatedService.InternationalCallingUserControlled; updated = true; }
  352:             if (this.InternationalCalling != updatedService.InternationalCalling) { this.InternationalCalling = updatedService.InternationalCalling; updated = true; }
  353:             if (this.CallerId != updatedService.CallerId) { this.CallerId = updatedService.CallerId; updated = true; }
  354:             if (this.ConferenceCall != updatedService.ConferenceCall) { this.ConferenceCall = updatedService.ConferenceCall; updated = true; }
  355:             if (this.ServiceSuspension != updatedService.ServiceSuspension) { this.ServiceSuspension = updatedService.ServiceSuspension; updated = true; }
  356:             //if (this.ServiceSuspensionTypeId != updatedService.ServiceSuspensionTypeId) { this.ServiceSuspensionTypeId = updatedService.ServiceSuspensionTypeId; updated = true; }
  357:             if (this.AbbriviatedCalling != updatedService.AbbriviatedCalling) { this.AbbriviatedCalling = updatedService.AbbriviatedCalling; updated = true; }
  358:             if (this.CallForwardingUnconditional != updatedService.CallForwardingUnconditional) { this.CallForwardingUnconditional = updatedService.CallForwardingUnconditional; updated = true; }
  359:             if (this.CallingLineIdentificationRestriction != updatedService.CallingLineIdentificationRestriction) { this.CallingLineIdentificationRestriction = updatedService.CallingLineIdentificationRestriction; updated = true; }
  360:             if (this.ConnectedLineIdentificationRestriction != updatedService.ConnectedLineIdentificationRestriction) { this.ConnectedLineIdentificationRestriction = updatedService.ConnectedLineIdentificationRestriction; updated = true; }
  361:             if (this.WakeUp != updatedService.WakeUp) { this.WakeUp = updatedService.WakeUp; updated = true; }
  362:             if (this.CallForwardingByTime != updatedService.CallForwardingByTime) { this.CallForwardingByTime = updatedService.CallForwardingByTime; updated = true; }
  363:             if (this.MutlimediaInformationPresentation != updatedService.MutlimediaInformationPresentation) { this.MutlimediaInformationPresentation = updatedService.MutlimediaInformationPresentation; updated = true; }
  364:             if (this.SelectiveOutgoingCallBarring != updatedService.SelectiveOutgoingCallBarring) { this.SelectiveOutgoingCallBarring = updatedService.SelectiveOutgoingCallBarring; updated = true; }
  365:             if (this.DialNumberCallOutAllow != updatedService.DialNumberCallOutAllow) { this.DialNumberCallOutAllow = updatedService.DialNumberCallOutAllow; updated = true; }
  366:             if (this.DoNotDisturb != updatedService.DoNotDisturb) { this.DoNotDisturb = updatedService.DoNotDisturb; updated = true; }
  367:             if (this.OutgoingCallBarring != updatedService.OutgoingCallBarring) { this.OutgoingCallBarring = updatedService.OutgoingCallBarring; updated = true; }
  368:             if (this.TemporaryLine != updatedService.TemporaryLine) { this.TemporaryLine = updatedService.TemporaryLine; updated = true; }
  369:             if (this.CodecControl != updatedService.CodecControl) { this.CodecControl = updatedService.CodecControl; updated = true; }
  370:             if (this.SelectiveIncomingCallBarring != updatedService.SelectiveIncomingCallBarring) { this.SelectiveIncomingCallBarring = updatedService.SelectiveIncomingCallBarring; updated = true; }
  371:             if (this.SelectiveCallForwarding != updatedService.SelectiveCallForwarding) { this.SelectiveCallForwarding = updatedService.SelectiveCallForwarding; updated = true; }
  372:             if (this.DialNumberCallOutBarring != updatedService.DialNumberCallOutBarring) { this.DialNumberCallOutBarring = updatedService.DialNumberCallOutBarring; updated = true; }
  373:             if (this.CallForwardingBasedonBlackList != updatedService.CallForwardingBasedonBlackList) { this.CallForwardingBasedonBlackList = updatedService.CallForwardingBasedonBlackList; updated = true; }
  374:             if (this.CallForwardingBusy != updatedService.CallForwardingBusy) { this.CallForwardingBusy = updatedService.CallForwardingBusy; updated = true; }
  375:             if (this.CallForwardingNoReply != updatedService.CallForwardingNoReply) { this.CallForwardingNoReply = updatedService.CallForwardingNoReply; updated = true; }
  376:             if (this.CallForwardingOffline != updatedService.CallForwardingOffline) { this.CallForwardingOffline = updatedService.CallForwardingOffline; updated = true; }
  377:             if (this.CallForwardingOnUserNotReachable != updatedService.CallForwardingOnUserNotReachable) { this.CallForwardingOnUserNotReachable = updatedService.CallForwardingOnUserNotReachable; updated = true; }
  378:             if (this.CallForwardingNoReplyinCallWaiting != updatedService.CallForwardingNoReplyinCallWaiting) { this.CallForwardingNoReplyinCallWaiting = updatedService.CallForwardingNoReplyinCallWaiting; updated = true; }
  379:             if (this.MultiRinging != updatedService.MultiRinging) { this.MultiRinging = updatedService.MultiRinging; updated = true; }
  380:             if (this.ConvergentInterPersonalService != updatedService.ConvergentInterPersonalService) { this.ConvergentInterPersonalService = updatedService.ConvergentInterPersonalService; updated = true; }
  381:             if (this.CallForwardingBySequence != updatedService.CallForwardingBySequence) { this.CallForwardingBySequence = updatedService.CallForwardingBySequence; updated = true; }
  382:             if (this.UserNumberChange != updatedService.UserNumberChange) { this.UserNumberChange = updatedService.UserNumberChange; updated = true; }
  383:             if (this.BlackNumberData != updatedService.BlackNumberData) { this.BlackNumberData = updatedService.BlackNumberData; updated = true; }
  384:             if (this.WhiteNumberData != updatedService.WhiteNumberData) { this.WhiteNumberData = updatedService.WhiteNumberData; updated = true; }
  385:             if (this.OwedRestriction != updatedService.OwedRestriction) { this.OwedRestriction = updatedService.OwedRestriction; updated = true; }
  386:             if (this.Strategy != updatedService.Strategy) { this.Strategy = updatedService.Strategy; updated = true; }
  387:             if (this.GreenNumberData != updatedService.GreenNumberData) { this.GreenNumberData = updatedService.GreenNumberData; updated = true; }
  388:             if (this.RedNumberData != updatedService.RedNumberData) { this.RedNumberData = updatedService.RedNumberData; updated = true; }
  389:             if (this.BarringOfAllOutgoingCalls != updatedService.BarringOfAllOutgoingCalls) { this.BarringOfAllOutgoingCalls = updatedService.BarringOfAllOutgoingCalls; updated = true; }
  390:             if (this.BarringOfAllOutgoingInternationalCalls != updatedService.BarringOfAllOutgoingInternationalCalls) { this.BarringOfAllOutgoingInternationalCalls = updatedService.BarringOfAllOutgoingInternationalCalls; updated = true; }
  391:             if (this.BarringOfOutgoingInternationalCallsExceptThoseDirectedToTheHomePlmnCountry != updatedService.BarringOfOutgoingInternationalCallsExceptThoseDirectedToTheHomePlmnCountry) { this.BarringOfOutgoingInternationalCallsExceptThoseDirectedToTheHomePlmnCountry = updatedService.BarringOfOutgoingInternationalCallsExceptThoseDirectedToTheHomePlmnCountry; updated = true; }
  392:             if (this.BarringOfAllIncomingCalls != updatedService.BarringOfAllIncomingCalls) { this.BarringOfAllIncomingCalls = updatedService.BarringOfAllIncomingCalls; updated = true; }
  393:             if (this.BarringOfIncomingCallsWhenRoamingOutsideTheHomePlmnCountry != updatedService.BarringOfIncomingCallsWhenRoamingOutsideTheHomePlmnCountry) { this.BarringOfIncomingCallsWhenRoamingOutsideTheHomePlmnCountry = updatedService.BarringOfIncomingCallsWhenRoamingOutsideTheHomePlmnCountry; updated = true; }
  394:             if (this.SpeedDial != updatedService.SpeedDial) { this.SpeedDial = updatedService.SpeedDial; updated = true; }
  395:             if (this.GreenCall != updatedService.GreenCall) { this.GreenCall = updatedService.GreenCall; updated = true; }
  396:             if (this.SetDataUpgrade != updatedService.SetDataUpgrade) { this.SetDataUpgrade = updatedService.SetDataUpgrade; updated = true; }
  397:             if (this.AutoConsole != updatedService.AutoConsole) { this.AutoConsole = updatedService.AutoConsole; updated = true; }
  398:             if (this.NightService != updatedService.NightService) { this.NightService = updatedService.NightService; updated = true; }
  399:             if (this.BackupNumber != updatedService.BackupNumber) { this.BackupNumber = updatedService.BackupNumber; updated = true; }
  400:             if (this.Absence != updatedService.Absence) { this.Absence = updatedService.Absence; updated = true; }
  401:             if (this.AuthorizedCodeForStdIdd != updatedService.AuthorizedCodeForStdIdd) { this.AuthorizedCodeForStdIdd = updatedService.AuthorizedCodeForStdIdd; updated = true; }
  402:             if (this.Hotline != updatedService.Hotline) { this.Hotline = updatedService.Hotline; updated = true; }
  403:             if (this.CetMaliciousCommunicationIdentification != updatedService.CetMaliciousCommunicationIdentification) { this.CetMaliciousCommunicationIdentification = updatedService.CetMaliciousCommunicationIdentification; updated = true; }
  404:             if (this.MissCallNotify != updatedService.MissCallNotify) { this.MissCallNotify = updatedService.MissCallNotify; updated = true; }
  405:             if (this.SubscriptionStatus != updatedService.SubscriptionStatus) { this.SubscriptionStatus = updatedService.SubscriptionStatus; updated = true; }
  406:             if (this.UsbDongleOneKeyService != updatedService.UsbDongleOneKeyService) { this.UsbDongleOneKeyService = updatedService.UsbDongleOneKeyService; updated = true; }
  407:             if (this.IRoamingInboundSingleImsiMultiMsisdn != updatedService.IRoamingInboundSingleImsiMultiMsisdn) { this.IRoamingInboundSingleImsiMultiMsisdn = updatedService.IRoamingInboundSingleImsiMultiMsisdn; updated = true; }
  408:             if (this.IRoamingOutboundSingleImsiMultiMsisdn != updatedService.IRoamingOutboundSingleImsiMultiMsisdn) { this.IRoamingOutboundSingleImsiMultiMsisdn = updatedService.IRoamingOutboundSingleImsiMultiMsisdn; updated = true; }
  409:             if (this.NpaSplit != updatedService.NpaSplit) { this.NpaSplit = updatedService.NpaSplit; updated = true; }
  410:             if (this.AllCallForwardingGroup != updatedService.AllCallForwardingGroup) { this.AllCallForwardingGroup = updatedService.AllCallForwardingGroup; updated = true; }
  411:             if (this.ConditionalCallForwardingGroup != updatedService.ConditionalCallForwardingGroup) { this.ConditionalCallForwardingGroup = updatedService.ConditionalCallForwardingGroup; updated = true; }
  412:             if (this.GeneralOrigIdentificationRestriction != updatedService.GeneralOrigIdentificationRestriction) { this.GeneralOrigIdentificationRestriction = updatedService.GeneralOrigIdentificationRestriction; updated = true; }
  413:             if (this.MultimediaOfOrigIdRestriction != updatedService.MultimediaOfOrigIdRestriction) { this.MultimediaOfOrigIdRestriction = updatedService.MultimediaOfOrigIdRestriction; updated = true; }
  414:             if (this.TerminatingIdentityRestriction != updatedService.TerminatingIdentityRestriction) { this.TerminatingIdentityRestriction = updatedService.TerminatingIdentityRestriction; updated = true; }
  415:             if (this.DistinctiveRing != updatedService.DistinctiveRing) { this.DistinctiveRing = updatedService.DistinctiveRing; updated = true; }
  416:             if (this.VisitedNetworkImpu != updatedService.VisitedNetworkImpu) { this.VisitedNetworkImpu = updatedService.VisitedNetworkImpu; updated = true; }
  417:             if (this.SeasonalSuspend != updatedService.SeasonalSuspend) { this.SeasonalSuspend = updatedService.SeasonalSuspend; updated = true; }
  418:             if (this.NumberInvalidation != updatedService.NumberInvalidation) { this.NumberInvalidation = updatedService.NumberInvalidation; updated = true; }
  419:             if (this.IroamingServiceProvision != updatedService.IroamingServiceProvision) { this.IroamingServiceProvision = updatedService.IroamingServiceProvision; updated = true; }
  420:             if (this.IptvCallerId != updatedService.IptvCallerId) { this.IptvCallerId = updatedService.IptvCallerId; updated = true; }
  421:             if (this.IptvVideoCall != updatedService.IptvVideoCall) { this.IptvVideoCall = updatedService.IptvVideoCall; updated = true; }
  422:             if (this.NumberPortability != updatedService.NumberPortability) { this.NumberPortability = updatedService.NumberPortability; updated = true; }
  423:             if (this.SecretaryService != updatedService.SecretaryService) { this.SecretaryService = updatedService.SecretaryService; updated = true; }
  424:             if (this.SalesBlock != updatedService.SalesBlock) { this.SalesBlock = updatedService.SalesBlock; updated = true; }
  425:             if (this.FilterCriteria != updatedService.FilterCriteria) { this.FilterCriteria = updatedService.FilterCriteria; updated = true; }
  426:             if (this.CallerInformation != updatedService.CallerInformation) { this.CallerInformation = updatedService.CallerInformation; updated = true; }
  427:             if (this.PresenceStatus != updatedService.PresenceStatus) { this.PresenceStatus = updatedService.PresenceStatus; updated = true; }
  428:             if (this.OneNumberService != updatedService.OneNumberService) { this.OneNumberService = updatedService.OneNumberService; updated = true; }
  429:             if (this.AssociationList != updatedService.AssociationList) { this.AssociationList = updatedService.AssociationList; updated = true; }
  430:             if (this.Pin != updatedService.Pin) { this.Pin = updatedService.Pin; updated = true; }
  431:  
  432:             // I need the Port value to be maitained in updates. I will use it for migration
  433:             //if (this.Port != updatedService.Port) { this.Port = updatedService.Port; updated = true; }
  434:  
  435:             if (this.Access != null && updatedService.Access != null && this.Access.Id != updatedService.Access.Id) { this.Access = updatedService.Access; updated = true; }
  436:             else if (this.Access == null && updatedService.Access != null) { this.Access = updatedService.Access; updated = true; }
  437:  
  438:             if (this.UserId != updatedService.UserId) { this.UserId = updatedService.UserId; updated = true; }
  439:  
  440:             if (updated) this.Updated = DateTime.UtcNow.AddHours(3);
  441:  
  442:             return updated;
  443:         }
  444:  
  445:         ////////////////////////////////////////////////////////////////////////////
  446:         ////////////////////////////////////////////////////////////////////////////
  447:     }
  448:  
  449:     ////////////////////////////////////////////////////////////////////////////
  450:     ////////////////////////////////////////////////////////////////////////////
  451: }