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
9: {
10: ////////////////////////////////////////////////////////////////////////////
11:
12: /// <summary publish="true">
13: /// Service Entity Framework class for Optical Fiber Network (OFN) 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 System.Guid 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.Ngn.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: }