Public general use code classes and xml files that we've compiled and used over the years:
Service support class for Fixed Telecommunications Network (FTN) data model.
1: using Microsoft.EntityFrameworkCore;
2: using Microsoft.EntityFrameworkCore.Internal;
3: using System;
4: using System.Collections;
5: using System.Collections.Generic;
6: using System.Data;
7: using System.Linq;
8:
9: namespace Ia.Ftn.Cl.Model.Data
10: {
11: ////////////////////////////////////////////////////////////////////////////
12:
13: /// <summary publish="true">
14: /// Service support class for Fixed Telecommunications Network (FTN) data model.
15: /// </summary>
16: ///
17: /// <remarks>
18: /// Copyright © 2006-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 Service2
31: {
32: public Service2() { }
33:
34: ////////////////////////////////////////////////////////////////////////////
35:
36: /// <summary>
37: ///
38: /// </summary>
39: public static Ia.Ftn.Cl.Model.Service2 Read(string service)
40: {
41: Ia.Ftn.Cl.Model.Service2 service2;
42:
43: using (var db = new Ia.Ftn.Cl.Model.Db())
44: {
45: service2 = (from s in db.Service2
46: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Service == service
47: select s).SingleOrDefault();
48: }
49:
50: return service2;
51: }
52:
53: ////////////////////////////////////////////////////////////////////////////
54:
55: /// <summary>
56: ///
57: /// </summary>
58: public static List<Ia.Ftn.Cl.Model.Service2> ReadList(List<string> serviceList)
59: {
60: List<Ia.Ftn.Cl.Model.Service2> list;
61:
62: using (var db = new Ia.Ftn.Cl.Model.Db())
63: {
64: if (serviceList.Count > 0)
65: {
66: list = (from s in db.Service2
67: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && serviceList.Contains(s.Service)
68: select s).ToList();
69: }
70: else list = new List<Ia.Ftn.Cl.Model.Service2>();
71: }
72:
73: return list;
74: }
75:
76: ////////////////////////////////////////////////////////////////////////////
77:
78: /// <summary>
79: ///
80: /// </summary>
81: public static Ia.Ftn.Cl.Model.Service2 ReadMsan(string service)
82: {
83: Ia.Ftn.Cl.Model.Service2 service2;
84:
85: #if DEBUG
86: var dummyVarToDrawRefractorToBelow = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Dn("0000000");
87: #endif
88:
89: using (var db = new Ia.Ftn.Cl.Model.Db())
90: {
91: service2 = (from s in db.Service2
92: join evpu in db.EmsVoipPstnUsers on "+965" + s.Service equals evpu.DN // see: Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Dn()
93: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Service == service
94: select s).SingleOrDefault();
95: }
96:
97: return service2;
98: }
99:
100: ////////////////////////////////////////////////////////////////////////////
101:
102: /// <summary>
103: ///
104: /// </summary>
105: public static List<Ia.Ftn.Cl.Model.Service2> ReadMsanList(List<string> serviceList)
106: {
107: List<Ia.Ftn.Cl.Model.Service2> list;
108:
109: #if DEBUG
110: var dummyVarToDrawRefractorToBelow = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Dn("0000000");
111: #endif
112:
113: using (var db = new Ia.Ftn.Cl.Model.Db())
114: {
115: if (serviceList.Count > 0)
116: {
117: list = (from s in db.Service2
118: join evpu in db.EmsVoipPstnUsers on "+965" + s.Service equals evpu.DN // see: Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Dn()
119: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && serviceList.Contains(s.Service)
120: select s).ToList();
121:
122: }
123: else list = new List<Ia.Ftn.Cl.Model.Service2>();
124: }
125:
126: return list;
127: }
128:
129: ////////////////////////////////////////////////////////////////////////////
130:
131: /// <summary>
132: ///
133: /// </summary>
134: public static Ia.Ftn.Cl.Model.Service2 ReadPstn(string service)
135: {
136: Ia.Ftn.Cl.Model.Service2 service2;
137:
138: using (var db = new Ia.Ftn.Cl.Model.Db())
139: {
140: service2 = (from s in db.Service2
141: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.PstnService && s.Service == service
142: select s).SingleOrDefault();
143: }
144:
145: return service2;
146: }
147:
148: ////////////////////////////////////////////////////////////////////////////
149:
150: /// <summary>
151: ///
152: /// </summary>
153: public static List<Ia.Ftn.Cl.Model.Service2> ReadPstnList(List<string> serviceList)
154: {
155: List<Ia.Ftn.Cl.Model.Service2> list;
156:
157: using (var db = new Ia.Ftn.Cl.Model.Db())
158: {
159: if (serviceList.Count > 0)
160: {
161: list = (from s in db.Service2
162: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.PstnService && serviceList.Contains(s.Service)
163: select s).ToList();
164: }
165: else list = new List<Ia.Ftn.Cl.Model.Service2>();
166: }
167:
168: return list;
169: }
170:
171: ////////////////////////////////////////////////////////////////////////////
172:
173: /// <summary>
174: ///
175: /// </summary>
176: public static Ia.Ftn.Cl.Model.Service2 Read(long number)
177: {
178: Ia.Ftn.Cl.Model.Service2 service;
179:
180: using (var db = new Ia.Ftn.Cl.Model.Db())
181: {
182: service = (from s in db.Service2
183: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Service == number.ToString()
184: select s).SingleOrDefault();
185: }
186:
187: return service;
188: }
189:
190: ////////////////////////////////////////////////////////////////////////////
191:
192: /// <summary>
193: ///
194: /// </summary>
195: public static Ia.Ftn.Cl.Model.Service2 ReadByIdIncludeAccess(string serviceId)
196: {
197: Ia.Ftn.Cl.Model.Service2 service2;
198:
199: using (var db = new Ia.Ftn.Cl.Model.Db())
200: {
201: service2 = (from s in db.Service2.Include(a => a.Access)
202: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Id == serviceId
203: select s).AsNoTracking().SingleOrDefault();
204: }
205:
206: return service2;
207: }
208:
209: ////////////////////////////////////////////////////////////////////////////
210:
211: /// <summary>
212: ///
213: /// </summary>
214: public static Ia.Ftn.Cl.Model.Service2 ReadWithAccess(string service)
215: {
216: Ia.Ftn.Cl.Model.Service2 service2;
217:
218: using (var db = new Ia.Ftn.Cl.Model.Db())
219: {
220: service2 = (from s in db.Service2.Include(a => a.Access)
221: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Service == service
222: select s).SingleOrDefault();
223: }
224:
225: return service2;
226: }
227:
228: ////////////////////////////////////////////////////////////////////////////
229:
230: /// <summary>
231: ///
232: /// </summary>
233: public static List<Ia.Ftn.Cl.Model.Service2> List()
234: {
235: List<Ia.Ftn.Cl.Model.Service2> serviceList;
236:
237: using (var db = new Ia.Ftn.Cl.Model.Db())
238: {
239: serviceList = (from s in db.Service2
240: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService
241: select s).ToList();
242: }
243:
244: return serviceList;
245: }
246:
247: ////////////////////////////////////////////////////////////////////////////
248:
249: /// <summary>
250: ///
251: /// </summary>
252: public static List<string> List(List<int> domainList)
253: {
254: List<string> stringDomainList;
255: List<string> serviceList;
256:
257: using (var db = new Ia.Ftn.Cl.Model.Db())
258: {
259: if (domainList.Count > 0)
260: {
261: stringDomainList = new List<string>();
262:
263: foreach (int i in domainList) stringDomainList.Add(i.ToString());
264:
265: serviceList = (from s in db.Service2
266: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && stringDomainList.Any(u => s.Service.StartsWith(u.ToString()))
267: select s.Service).ToList();
268: }
269: else serviceList = new List<string>();
270: }
271:
272: return serviceList;
273: }
274:
275: ////////////////////////////////////////////////////////////////////////////
276:
277: /// <summary>
278: ///
279: /// </summary>
280: public static List<string> ServiceList
281: {
282: get
283: {
284: List<string> list;
285:
286: using (var db = new Ia.Ftn.Cl.Model.Db())
287: {
288: list = (from s in db.Service2
289: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService
290: select s.Service).ToList();
291: }
292:
293: return list;
294: }
295: }
296:
297: ////////////////////////////////////////////////////////////////////////////
298:
299: /// <summary>
300: ///
301: /// </summary>
302: public static List<string> ImsServiceList
303: {
304: get
305: {
306: List<string> list;
307:
308: using (var db = new Ia.Ftn.Cl.Model.Db())
309: {
310: list = (from s in db.Service2
311: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService
312: select s.Service).ToList();
313: }
314:
315: return list;
316: }
317: }
318:
319: ////////////////////////////////////////////////////////////////////////////
320:
321: /// <summary>
322: ///
323: /// </summary>
324: public static bool IsImsService(string service)
325: {
326: bool isImsService;
327:
328: using (var db = new Ia.Ftn.Cl.Model.Db())
329: {
330: isImsService = (from s in db.Service2
331: where s.Service == service && s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService
332: select s.Service).Any();
333: }
334:
335: return isImsService;
336: }
337:
338: ////////////////////////////////////////////////////////////////////////////
339:
340: /// <summary>
341: ///
342: /// </summary>
343: public static List<string> ImsServiceWithAccessNullList
344: {
345: get
346: {
347: List<string> list;
348:
349: using (var db = new Ia.Ftn.Cl.Model.Db())
350: {
351: list = (from s in db.Service2
352: where s.Access == null && s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService
353: select s.Service).ToList();
354: }
355:
356: return list;
357: }
358: }
359:
360: ////////////////////////////////////////////////////////////////////////////
361:
362: /// <summary>
363: ///
364: /// </summary>
365: public static List<string> MsanServiceList
366: {
367: get
368: {
369: List<string> list;
370:
371: #if DEBUG
372: var dummyVarToDrawRefractorToBelow = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Dn("0000000");
373: #endif
374:
375: using (var db = new Ia.Ftn.Cl.Model.Db())
376: {
377: list = (from s in db.Service2
378: join evpu in db.EmsVoipPstnUsers on "+965" + s.Service equals evpu.DN // see: Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Dn()
379: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService
380: select s.Service).ToList();
381: }
382:
383: return list;
384: }
385: }
386:
387: ////////////////////////////////////////////////////////////////////////////
388:
389: /// <summary>
390: ///
391: /// </summary>
392: public static List<string> PstnServiceList
393: {
394: get
395: {
396: List<string> list;
397:
398: using (var db = new Ia.Ftn.Cl.Model.Db())
399: {
400: list = (from s in db.Service2
401: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.PstnService
402: select s.Service).ToList();
403: }
404:
405: return list.ToList();
406: }
407: }
408:
409: ////////////////////////////////////////////////////////////////////////////
410:
411: /// <summary>
412: ///
413: /// </summary>
414: public static bool IsPstnService(string service)
415: {
416: bool isPstnService;
417:
418:
419: using (var db = new Ia.Ftn.Cl.Model.Db())
420: {
421: isPstnService = (from s in db.Service2
422: where s.Service == service && s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.PstnService
423: select s.Service).Any();
424: }
425:
426: return isPstnService;
427: }
428:
429: ////////////////////////////////////////////////////////////////////////////
430:
431: /// <summary>
432: ///
433: /// </summary>
434: public static List<string> ServiceIdList
435: {
436: get
437: {
438: List<string> list;
439:
440: using (var db = new Ia.Ftn.Cl.Model.Db())
441: {
442: list = (from s in db.Service2 /*where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService*/ select s.Id).ToList();
443: }
444:
445: return list.ToList();
446: }
447: }
448:
449: ////////////////////////////////////////////////////////////////////////////
450:
451: /// <summary>
452: ///
453: /// </summary>
454: public static List<string> ImsServiceIdList
455: {
456: get
457: {
458: List<string> list;
459:
460: using (var db = new Ia.Ftn.Cl.Model.Db())
461: {
462: list = (from s in db.Service2
463: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService
464: select s.Id).ToList();
465: }
466:
467: return list.ToList();
468: }
469: }
470:
471: ////////////////////////////////////////////////////////////////////////////
472:
473: /// <summary>
474: ///
475: /// </summary>
476: public static List<string> PstnServiceIdList
477: {
478: get
479: {
480: List<string> list;
481:
482: using (var db = new Ia.Ftn.Cl.Model.Db())
483: {
484: list = (from s in db.Service2
485: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.PstnService
486: select s.Id).ToList();
487: }
488:
489: return list.ToList();
490: }
491: }
492:
493: ////////////////////////////////////////////////////////////////////////////
494:
495: /// <summary>
496: ///
497: /// </summary>
498: public static List<Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated> ServiceOntList
499: {
500: get
501: {
502: List<Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated> list;
503:
504: var ontAccessIdToOntForOltIdListDictionary = Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.OntAccessIdToOntDictionary;
505:
506: using (var db = new Ia.Ftn.Cl.Model.Db())
507: {
508: list = (from s in db.Service2
509: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService
510: select new Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated { ServiceId = s.Id, Service = s.Service, AccessId = s.Access != null ? s.Access.Id : string.Empty, CreatedDateTime = s.Created }).AsNoTracking().ToList();
511: }
512:
513: foreach (var l in list)
514: {
515: l.Ont = ontAccessIdToOntForOltIdListDictionary.ContainsKey(l.AccessId) ? ontAccessIdToOntForOltIdListDictionary[l.AccessId] : null;
516: }
517:
518: return list;
519: }
520: }
521:
522: ////////////////////////////////////////////////////////////////////////////
523:
524: /// <summary>
525: ///
526: /// </summary>
527: public static List<Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated> ServiceOntBySiteIdList(int siteId)
528: {
529: List<Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated> list;
530:
531: var ontAccessIdToOntForOltIdListDictionary = Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.OntAccessIdToOntDictionary;
532:
533: var site = (from s in Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.SiteList
534: where s.Id == siteId
535: select s).SingleOrDefault();
536:
537: if (site != null)
538: {
539: var siteRouterDomainList = (from r in Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.RouterList
540: where r.Site.Id == site.Id
541: select r).SelectMany(d => d.DomainList).ToList();
542:
543: using (var db = new Ia.Ftn.Cl.Model.Db())
544: {
545: var list0 = (from s in db.Service2
546: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService
547: select new Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated { ServiceId = s.Id, Service = s.Service, AccessId = s.Access != null ? s.Access.Id : string.Empty, CreatedDateTime = s.Created }).AsNoTracking().ToList();
548:
549: list = new List<Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated>();
550:
551: foreach (var l in list0)
552: {
553: if (!string.IsNullOrEmpty(l.AccessId))
554: {
555: if (ontAccessIdToOntForOltIdListDictionary.ContainsKey(l.AccessId))
556: {
557: l.Ont = ontAccessIdToOntForOltIdListDictionary[l.AccessId];
558:
559: if (l.Ont.Pon.PonGroup.Olt.Odf.Router.Site.Id == siteId)
560: {
561: list.Add(l);
562: }
563: else
564: {
565:
566: }
567: }
568: else
569: {
570:
571: }
572: }
573: else
574: {
575: if (siteRouterDomainList.Any(u => l.Service.StartsWith(u.ToString())))
576: {
577: list.Add(l);
578: }
579: }
580: }
581: }
582:
583: var msanServiceList = Ia.Ftn.Cl.Model.Data.Huawei.Default.MsanServiceListBySiteId(siteId);
584:
585: foreach (var msanService in msanServiceList)
586: {
587: list.Add(new Business.ServiceAccessIpOntCreated { Service = msanService, AccessId = string.Empty });
588: }
589: }
590: else
591: {
592: list = new List<Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated>();
593: }
594:
595: return list;
596: }
597:
598: ////////////////////////////////////////////////////////////////////////////
599:
600: /// <summary>
601: ///
602: /// </summary>
603: public static List<Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated> ServiceOntByAreaIdList(int areaId)
604: {
605: List<Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated> list;
606:
607: var ontAccessIdToOntForOltIdListDictionary = Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.OntAccessIdToOntDictionary;
608:
609: var area = (from a in Ia.Ftn.Cl.Model.Data.Service.KuwaitFtnAreaList
610: where a.Id == areaId
611: select a).SingleOrDefault();
612:
613: if (area != null)
614: {
615: using (var db = new Ia.Ftn.Cl.Model.Db())
616: {
617: var list0 = (from s in db.Service2
618: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService
619: select new Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated { ServiceId = s.Id, Service = s.Service, AccessId = s.Access != null ? s.Access.Id : string.Empty }).AsNoTracking().ToList();
620:
621: list = new List<Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated>();
622:
623: foreach (var l in list0)
624: {
625: if (!string.IsNullOrEmpty(l.AccessId))
626: {
627: if (ontAccessIdToOntForOltIdListDictionary.ContainsKey(l.AccessId))
628: {
629: l.Ont = ontAccessIdToOntForOltIdListDictionary[l.AccessId];
630:
631: if (l.Ont.Pon.PonGroup.Symbol == area.Symbol)
632: {
633: list.Add(l);
634: }
635: else
636: {
637:
638: }
639: }
640: else
641: {
642:
643: }
644: }
645: else
646: {
647: }
648: }
649: }
650: }
651: else
652: {
653: list = new List<Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated>();
654: }
655:
656: return list;
657: }
658:
659: ////////////////////////////////////////////////////////////////////////////
660:
661: /// <summary>
662: ///
663: /// </summary>
664: public static List<Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated> ServiceOntByDomainList(string domain)
665: {
666: List<Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated> list;
667:
668: var ontAccessIdToOntForOltIdListDictionary = Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.OntAccessIdToOntDictionary;
669:
670: using (var db = new Ia.Ftn.Cl.Model.Db())
671: {
672: var list0 = (from s in db.Service2
673: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Service.StartsWith(domain)
674: select new Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated { ServiceId = s.Id, Service = s.Service, AccessId = s.Access != null ? s.Access.Id : string.Empty }).AsNoTracking().ToList();
675:
676: list = new List<Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated>();
677:
678: foreach (var l in list0)
679: {
680: if (!string.IsNullOrEmpty(l.AccessId))
681: {
682: if (ontAccessIdToOntForOltIdListDictionary.ContainsKey(l.AccessId))
683: {
684: l.Ont = ontAccessIdToOntForOltIdListDictionary[l.AccessId];
685:
686: list.Add(l);
687: }
688: else
689: {
690:
691: }
692: }
693: else
694: {
695: }
696: }
697: }
698:
699: return list;
700: }
701:
702: ////////////////////////////////////////////////////////////////////////////
703:
704: /// <summary>
705: ///
706: /// </summary>
707: public static List<Ia.Ftn.Cl.Model.Service2> WithinSiteList(int siteId)
708: {
709: List<Ia.Ftn.Cl.Model.Service2> list;
710:
711: var site = (from s in Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.SiteList
712: where s.Id == siteId
713: select s).SingleOrDefault();
714:
715: if (site != null)
716: {
717: var siteRouterDomainList = (from r in Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.RouterList
718: where r.Site.Id == site.Id
719: select r).SelectMany(d => d.DomainList).ToList();
720:
721: using (var db = new Ia.Ftn.Cl.Model.Db())
722: {
723: var list0 = (from s in db.Service2
724: select s).Include(u => u.Access).ToList();
725:
726: list = (from s in list0
727: where siteRouterDomainList.Any(u => s.Service.StartsWith(u.ToString()))
728: select s).ToList();
729: }
730: }
731: else
732: {
733: list = new List<Ia.Ftn.Cl.Model.Service2>();
734: }
735:
736: return list;
737: }
738:
739: ////////////////////////////////////////////////////////////////////////////
740:
741: /// <summary>
742: ///
743: /// </summary>
744: public static List<Ia.Ftn.Cl.Model.Service2> PstnService2List
745: {
746: get
747: {
748: List<Ia.Ftn.Cl.Model.Service2> list;
749:
750: using (var db = new Ia.Ftn.Cl.Model.Db())
751: {
752: list = (from s in db.Service2
753: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.PstnService
754: select s).Include(s => s.Access).ToList();
755: }
756:
757: return list.ToList();
758: }
759: }
760:
761: ////////////////////////////////////////////////////////////////////////////
762:
763: /// <summary>
764: ///
765: /// </summary>
766: public static Dictionary<string, int> ServiceIdToPortDictionary
767: {
768: get
769: {
770: Dictionary<string, int> dictionary;
771:
772: using (var db = new Ia.Ftn.Cl.Model.Db())
773: {
774: dictionary = (from s in db.Service2
775: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Access != null
776: select new { s.Id, s.Port }).ToDictionary(m => m.Id, m => m.Port);
777: }
778:
779: return dictionary;
780: }
781: }
782:
783: ////////////////////////////////////////////////////////////////////////////
784:
785: /// <summary>
786: ///
787: /// </summary>
788: public static Ia.Ftn.Cl.Model.Access ReadAccess(string id)
789: {
790: Ia.Ftn.Cl.Model.Access access;
791:
792: using (var db = new Ia.Ftn.Cl.Model.Db())
793: {
794: access = (from s in db.Service2
795: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Id == id
796: select s.Access).SingleOrDefault();
797: }
798:
799: return access;
800: }
801:
802: ////////////////////////////////////////////////////////////////////////////
803:
804: /// <summary>
805: ///
806: /// </summary>
807: public static Dictionary<string, int> ServicePortDictionary
808: {
809: get
810: {
811: Dictionary<string, int> dictionary;
812:
813: using (var db = new Ia.Ftn.Cl.Model.Db())
814: {
815: dictionary = (from s in db.Service2
816: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Port > -1
817: select new { s.Service, s.Port }).ToDictionary(m => m.Service, m => m.Port);
818: }
819:
820: return dictionary;
821: }
822: }
823:
824: ////////////////////////////////////////////////////////////////////////////
825:
826: /// <summary>
827: ///
828: /// </summary>
829: public static Ia.Ftn.Cl.Model.Access ReadAccess(Ia.Ftn.Cl.Model.Db db, string id)
830: {
831: Ia.Ftn.Cl.Model.Access access;
832:
833: access = (from s in db.Service2
834: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Id == id
835: select s.Access).SingleOrDefault();
836:
837: return access;
838: }
839:
840: ////////////////////////////////////////////////////////////////////////////
841:
842: /// <summary>
843: ///
844: /// </summary>
845: public static bool UpdatePort(Ia.Ftn.Cl.Model.Service2 service, int port, out string result)
846: {
847: bool b;
848:
849: using (var db = new Ia.Ftn.Cl.Model.Db())
850: {
851: service = (from s in db.Service2
852: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Id == service.Id
853: select s).SingleOrDefault();
854:
855: if (service.Port != port)
856: {
857: service.Port = port;
858:
859: db.Service2.Attach(service);
860: db.Entry(service).Property(u => u.Port).IsModified = true;
861:
862: db.SaveChanges();
863:
864: result = "Success: Service Port updated. ";
865: b = true;
866: }
867: else
868: {
869: result = "Warning: Service Port value was not updated because its the same. ";
870:
871: b = false;
872: }
873: }
874:
875: return b;
876: }
877:
878: ////////////////////////////////////////////////////////////////////////////
879:
880: /// <summary>
881: ///
882: /// </summary>
883: public static List<Ia.Ftn.Cl.Model.Service2> ServiceWithNullAccessList
884: {
885: get
886: {
887: List<Ia.Ftn.Cl.Model.Service2> serviceList;
888:
889: using (var db = new Ia.Ftn.Cl.Model.Db())
890: {
891: serviceList = (from s in db.Service2
892: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Access == null
893: select s).ToList();
894: }
895:
896: return serviceList;
897: }
898: }
899:
900: ////////////////////////////////////////////////////////////////////////////
901:
902: /// <summary>
903: ///
904: /// </summary>
905: public static List<string> ServiceIdWithinSipOltList()
906: {
907: List<int> sipOltIdList;
908: List<string> list, list2;
909:
910: sipOltIdList = Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.SipOltIdList;
911:
912: using (var db = new Ia.Ftn.Cl.Model.Db())
913: {
914: // services with access
915: list = (from s in db.Service2
916: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Access != null && sipOltIdList.Contains(s.Access.Olt)
917: select s.Id).ToList();
918:
919: // services without access might be newly installed
920: list2 = (from s in db.Service2
921: join srs in db.ServiceRequestServices on s.Service equals srs.Service
922: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Access == null && srs.Access != null && srs.Provisioned == true && sipOltIdList.Contains(srs.Access.Olt)
923: select s.Id).ToList();
924: }
925:
926: return list.Union(list2).Distinct().ToList();
927: }
928:
929: ////////////////////////////////////////////////////////////////////////////
930:
931: /// <summary>
932: ///
933: /// </summary>
934: public static List<string> ServiceIdWithinAllowedSipOltToBeProvisionedOrMigratedList()
935: {
936: List<int> sipOltIdList;
937: List<string> list, list2;
938:
939: sipOltIdList = Ia.Ftn.Cl.Model.Data.Service.AllowedToBeProvisionedSipOltIdList.Union(Ia.Ftn.Cl.Model.Data.Service.AllowedToBeMigratedSipOltIdList).ToList();
940:
941: using (var db = new Ia.Ftn.Cl.Model.Db())
942: {
943: // services with access
944: list = (from s in db.Service2
945: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Access != null && sipOltIdList.Contains(s.Access.Olt)
946: select s.Id).ToList();
947:
948: // services without access might be newly installed
949: list2 = (from s in db.Service2
950: join srs in db.ServiceRequestServices on s.Service equals srs.Service
951: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Access == null && srs.Access != null && srs.Provisioned == true && sipOltIdList.Contains(srs.Access.Olt)
952: select s.Id).ToList();
953: }
954:
955: return list.Union(list2).Distinct().ToList();
956: }
957:
958: ////////////////////////////////////////////////////////////////////////////
959:
960: /// <summary>
961: ///
962: /// </summary>
963: public static List<Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated> ServiceOntWithinAllowedSipOltToBeProvisionedOrMigratedList
964: {
965: get
966: {
967: List<int> oltIdList;
968: List<Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated> list1, list2, list;
969:
970: oltIdList = Ia.Ftn.Cl.Model.Data.Service.AllowedToBeProvisionedSipOltIdList.Union(Ia.Ftn.Cl.Model.Data.Service.AllowedToBeMigratedSipOltIdList).ToList();
971:
972: var ontAccessIdToOntForOltIdListDictionary = Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.OntAccessIdToOntForOltIdListDictionary(oltIdList);
973:
974: using (var db = new Ia.Ftn.Cl.Model.Db())
975: {
976: // services with access
977: list1 = (from s in db.Service2
978: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Access != null && oltIdList.Contains(s.Access.Olt)
979: select new Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated { ServiceId = s.Id, Service = s.Service, AccessId = s.Access.Id, CreatedDateTime = s.Created }).AsNoTracking().ToList();
980:
981: // services without access might be newly installed
982: list2 = (from s in db.Service2
983: join srs in db.ServiceRequestServices on s.Service equals srs.Service
984: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Access == null && srs.Access != null && srs.Provisioned == true && oltIdList.Contains(srs.Access.Olt)
985: select new Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated { ServiceId = s.Id, Service = s.Service, AccessId = srs.Access.Id, CreatedDateTime = s.Created }).AsNoTracking().ToList();
986: }
987:
988: list = list1.Concat(list2).ToList();
989:
990: foreach (var l in list)
991: {
992: l.Ont = ontAccessIdToOntForOltIdListDictionary.ContainsKey(l.AccessId) ? ontAccessIdToOntForOltIdListDictionary[l.AccessId] : null;
993: }
994:
995: return list;
996: }
997: }
998:
999: ////////////////////////////////////////////////////////////////////////////
1000:
1001: /// <summary>
1002: ///
1003: /// </summary>
1004: public static Dictionary<string, int> ServiceToOltIdWithinNokiaSwitchHuaweiAccessOltListDictionary
1005: {
1006: get
1007: {
1008: List<int> oltIdList;
1009: Dictionary<string, int> dictionary, dictionary1, dictionary2;
1010:
1011: oltIdList = Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.NokiaRouterHuaweiAccessOltIdList;
1012:
1013: using (var db = new Ia.Ftn.Cl.Model.Db())
1014: {
1015: // services with access
1016: dictionary1 = (from s in db.Service2
1017: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Access != null && oltIdList.Contains(s.Access.Olt)
1018: select new { s.Service, s.Access.Olt }).AsNoTracking().ToDictionary(u => u.Service, u => u.Olt);
1019:
1020: /*
1021: // services without access might be newly installed
1022: dictionary2 = (from s in db.Service2
1023: join srs in db.ServiceRequestServices on s.Service equals srs.Service
1024: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Access == null && srs.Access != null && srs.Provisioned == true && oltIdList.Contains(srs.Access.Olt)
1025: select new { s.Service, s.Access.Olt }).AsNoTracking().ToDictionary(u => u.Service, u => u.Olt);
1026: */
1027: }
1028:
1029: dictionary = dictionary1;//.Union(dictionary2).ToDictionary(u => u.Key, u => u.Value);
1030:
1031: return dictionary;
1032: }
1033: }
1034:
1035: ////////////////////////////////////////////////////////////////////////////
1036:
1037: /// <summary>
1038: ///
1039: /// </summary>
1040: public static List<Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated> ServiceOntWithinAllowedToBeProvisionedOrMigratedHuaweiSwitchNokiaAccessOltList()
1041: {
1042: List<int> oltIdList;
1043: List<Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated> list1, list2, list;
1044:
1045: oltIdList = Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.HuaweiRouterNokiaAccessOltIdList;
1046:
1047: var ontAccessIdToOntForOltIdListDictionary = Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.OntAccessIdToOntForOltIdListDictionary(oltIdList);
1048:
1049: using (var db = new Ia.Ftn.Cl.Model.Db())
1050: {
1051: // services with access
1052: list1 = (from s in db.Service2
1053: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Access != null && oltIdList.Contains(s.Access.Olt)
1054: select new Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated { ServiceId = s.Id, Service = s.Service, AccessId = s.Access.Id, CreatedDateTime = s.Created }).AsNoTracking().ToList();
1055:
1056: // services without access might be newly installed
1057: list2 = (from s in db.Service2
1058: join srs in db.ServiceRequestServices on s.Service equals srs.Service
1059: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Access == null && srs.Access != null && srs.Provisioned == true && oltIdList.Contains(srs.Access.Olt)
1060: select new Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated { ServiceId = s.Id, Service = s.Service, AccessId = srs.Access.Id, CreatedDateTime = s.Created }).AsNoTracking().ToList();
1061: }
1062:
1063: list = list1.Concat(list2).ToList();
1064:
1065: foreach (var l in list)
1066: {
1067: l.Ont = ontAccessIdToOntForOltIdListDictionary.ContainsKey(l.AccessId) ? ontAccessIdToOntForOltIdListDictionary[l.AccessId] : null;
1068: }
1069:
1070: return list;
1071: }
1072:
1073: ////////////////////////////////////////////////////////////////////////////
1074:
1075: /// <summary>
1076: ///
1077: /// </summary>
1078: public static List<string> ServiceIdWithinHuaweiSwitchDomainList()
1079: {
1080: List<int> huaweiSwitchDomainList;
1081: List<string> list;
1082:
1083: huaweiSwitchDomainList = Ia.Ftn.Cl.Model.Data.Service.HuaweiSwitchDomainList;
1084:
1085: using (var db = new Ia.Ftn.Cl.Model.Db())
1086: {
1087: list = (from s in db.Service2
1088: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && huaweiSwitchDomainList.Any(u => s.Service.StartsWith(u.ToString()))
1089: select s.Id).ToList();
1090: }
1091:
1092: return list.ToList();
1093: }
1094:
1095: ////////////////////////////////////////////////////////////////////////////
1096:
1097: /// <summary>
1098: ///
1099: /// </summary>
1100: public static List<string> ServiceIdWithinNokiaSwitchDomainList()
1101: {
1102: List<int> nokiaSwitchDomainList;
1103: List<string> list;
1104:
1105: nokiaSwitchDomainList = Ia.Ftn.Cl.Model.Data.Service.NokiaSwitchDomainList;
1106:
1107: using (var db = new Ia.Ftn.Cl.Model.Db())
1108: {
1109: list = (from s in db.Service2
1110: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && nokiaSwitchDomainList.Any(u => s.Service.StartsWith(u.ToString()))
1111: select s.Id).ToList();
1112: }
1113:
1114: return list.ToList();
1115: }
1116:
1117: ////////////////////////////////////////////////////////////////////////////
1118:
1119: /// <summary>
1120: ///
1121: /// </summary>
1122: public static List<string> ServiceIdWithNullAccessList()
1123: {
1124: List<string> list;
1125:
1126: using (var db = new Ia.Ftn.Cl.Model.Db())
1127: {
1128: list = (from s in db.Service2
1129: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Access == null
1130: select s.Id).ToList();
1131: }
1132:
1133: return list;
1134: }
1135:
1136: ////////////////////////////////////////////////////////////////////////////
1137:
1138: /// <summary>
1139: ///
1140: /// </summary>
1141: public static List<Ia.Ftn.Cl.Model.Service2> ServiceSuspensionIsTrueList
1142: {
1143: get
1144: {
1145: List<Ia.Ftn.Cl.Model.Service2> serviceList;
1146:
1147: using (var db = new Ia.Ftn.Cl.Model.Db())
1148: {
1149: serviceList = (from s in db.Service2
1150: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.ServiceSuspension == true
1151: select s).ToList();
1152: }
1153:
1154: return serviceList;
1155: }
1156: }
1157:
1158: ////////////////////////////////////////////////////////////////////////////
1159:
1160: /// <summary>
1161: ///
1162: /// </summary>
1163: public static int ServiceSuspensionIsTrueListCount
1164: {
1165: get
1166: {
1167: int c;
1168:
1169: using (var db = new Ia.Ftn.Cl.Model.Db())
1170: {
1171: c = (from s in db.Service2
1172: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.ServiceSuspension == true
1173: select s).Count();
1174: }
1175:
1176: return c;
1177: }
1178: }
1179:
1180: ////////////////////////////////////////////////////////////////////////////
1181:
1182: /// <summary>
1183: ///
1184: /// </summary>
1185: public static List<Ia.Ftn.Cl.Model.Service2> ServiceSuspensionIsFalseList
1186: {
1187: get
1188: {
1189: List<Ia.Ftn.Cl.Model.Service2> serviceList;
1190:
1191: using (var db = new Ia.Ftn.Cl.Model.Db())
1192: {
1193: serviceList = (from s in db.Service2
1194: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.ServiceSuspension == false
1195: select s).ToList();
1196: }
1197:
1198: return serviceList;
1199: }
1200: }
1201:
1202: ////////////////////////////////////////////////////////////////////////////
1203:
1204: /// <summary>
1205: ///
1206: /// </summary>
1207: public static List<string> ServiceSuspensionIsTrueStringNumberList
1208: {
1209: get
1210: {
1211: List<string> serviceNumberStringList;
1212: List<Ia.Ftn.Cl.Model.Service2> serviceList;
1213:
1214: using (var db = new Ia.Ftn.Cl.Model.Db())
1215: {
1216: // below:
1217: serviceList = ServiceSuspensionIsTrueList;
1218:
1219: if (serviceList.Count > 0)
1220: {
1221: serviceNumberStringList = new List<string>(serviceList.Count);
1222:
1223: foreach (Ia.Ftn.Cl.Model.Service2 srs in serviceList)
1224: {
1225: serviceNumberStringList.Add(srs.Service);
1226: }
1227: }
1228: else
1229: {
1230: // below: not null
1231: serviceNumberStringList = new List<string>(1);
1232: }
1233: }
1234:
1235: return serviceNumberStringList;
1236: }
1237: }
1238:
1239: ////////////////////////////////////////////////////////////////////////////
1240:
1241: /// <summary>
1242: ///
1243: /// </summary>
1244: public static List<string> ServiceSuspensionIsFalseStringNumberList
1245: {
1246: get
1247: {
1248: List<string> serviceNumberStringList;
1249: List<Ia.Ftn.Cl.Model.Service2> serviceList;
1250:
1251: using (var db = new Ia.Ftn.Cl.Model.Db())
1252: {
1253: // below:
1254: serviceList = ServiceSuspensionIsFalseList;
1255:
1256: if (serviceList.Count > 0)
1257: {
1258: serviceNumberStringList = new List<string>(serviceList.Count);
1259:
1260: foreach (Ia.Ftn.Cl.Model.Service2 srs in serviceList)
1261: {
1262: serviceNumberStringList.Add(srs.Service);
1263: }
1264: }
1265: else
1266: {
1267: // below: not null
1268: serviceNumberStringList = new List<string>(1);
1269: }
1270: }
1271:
1272: return serviceNumberStringList;
1273: }
1274: }
1275:
1276: ////////////////////////////////////////////////////////////////////////////
1277:
1278: /// <summary>
1279: ///
1280: /// </summary>
1281: public static bool IsSuspended(string service)
1282: {
1283: bool isSuspended;
1284:
1285: using (var db = new Ia.Ftn.Cl.Model.Db())
1286: {
1287: isSuspended = (from s in db.Service2
1288: where s.Service == service && s.ServiceSuspension == true
1289: select s.Service).Any();
1290: }
1291:
1292: return isSuspended;
1293: }
1294:
1295: ////////////////////////////////////////////////////////////////////////////
1296:
1297: /// <summary>
1298: ///
1299: /// </summary>
1300: public static bool HasInternationalCalling(string service)
1301: {
1302: return InternationalCallingIsAssigned(service);
1303: }
1304:
1305: ////////////////////////////////////////////////////////////////////////////
1306:
1307: /// <summary>
1308: ///
1309: /// </summary>
1310: public static bool InternationalCallingIsAssigned(string service)
1311: {
1312: bool isAssigned;
1313:
1314: using (var db = new Ia.Ftn.Cl.Model.Db())
1315: {
1316: isAssigned = (from s in db.Service2
1317: where s.Service == service && s.InternationalCalling == true
1318: select s.Service).Any();
1319: }
1320:
1321: return isAssigned;
1322: }
1323:
1324: ////////////////////////////////////////////////////////////////////////////
1325:
1326: /// <summary>
1327: ///
1328: /// </summary>
1329: public static Dictionary<string, string> ServiceIdToAccessIdDictionary
1330: {
1331: get
1332: {
1333: Dictionary<string, string> dictionary, nullAccessDictionary;
1334:
1335: using (var db = new Ia.Ftn.Cl.Model.Db())
1336: {
1337: dictionary = (from s in db.Service2
1338: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Access != null
1339: select new { s.Id, s.Access }).AsNoTracking().ToDictionary(u => u.Id, u => u.Access.Id);
1340:
1341: nullAccessDictionary = (from s in db.Service2
1342: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Access == null
1343: select new { s.Id, s.Access }).AsNoTracking().ToDictionary(u => u.Id, u => string.Empty);
1344: }
1345:
1346: return dictionary.Union(nullAccessDictionary).ToDictionary(u => u.Key, u => u.Value);
1347: }
1348: }
1349:
1350: ////////////////////////////////////////////////////////////////////////////
1351:
1352: /// <summary>
1353: ///
1354: /// </summary>
1355: public static Dictionary<string, string> PstnServiceIdToAccessIdDictionary
1356: {
1357: get
1358: {
1359: Dictionary<string, string> dictionary, nullAccessDictionary;
1360:
1361: using (var db = new Ia.Ftn.Cl.Model.Db())
1362: {
1363: dictionary = (from s in db.Service2
1364: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.PstnService && s.Access != null
1365: select new { s.Id, s.Access }).ToDictionary(u => u.Id, u => u.Access.Id);
1366:
1367: nullAccessDictionary = (from s in db.Service2
1368: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.PstnService && s.Access == null
1369: select new { s.Id, s.Access }).ToDictionary(u => u.Id, u => string.Empty);
1370: }
1371:
1372: return dictionary.Union(nullAccessDictionary).ToDictionary(u => u.Key, u => u.Value);
1373: }
1374: }
1375:
1376: ////////////////////////////////////////////////////////////////////////////
1377: ////////////////////////////////////////////////////////////////////////////
1378:
1379: /// <summary>
1380: ///
1381: /// </summary>
1382: public static bool NullifyAccessIdByAccessId(string accessId, out string result)
1383: {
1384: bool b;
1385: int numberOfRecordsWhereAccessIsNullified;
1386: Ia.Ftn.Cl.Model.Service2 service2;
1387:
1388: b = false;
1389: numberOfRecordsWhereAccessIsNullified = 0;
1390:
1391: using (var db = new Ia.Ftn.Cl.Model.Db())
1392: {
1393: service2 = (from s in db.Service2 where s.Access.Id == accessId select s).Include(u => u.Access).FirstOrDefault(); //.SingleOrDefault();
1394:
1395: if (service2 != null)
1396: {
1397: service2.Access = null;
1398: service2.Updated = DateTime.UtcNow.AddHours(3);
1399:
1400: db.Service2.Attach(service2);
1401: db.Entry(service2).Property(u => u.Updated).IsModified = true;
1402:
1403: db.SaveChanges();
1404:
1405: numberOfRecordsWhereAccessIsNullified++;
1406: }
1407:
1408: b = true;
1409: }
1410:
1411: result = "Number of records where access is nullified: " + numberOfRecordsWhereAccessIsNullified;
1412:
1413: return b;
1414: }
1415:
1416: ////////////////////////////////////////////////////////////////////////////
1417: ////////////////////////////////////////////////////////////////////////////
1418:
1419: /// <summary>
1420: ///
1421: /// </summary>
1422: public static Dictionary<string, string> MigratedServiceIdToAccessIdDictionary
1423: {
1424: get
1425: {
1426: Dictionary<string, string> dictionary, nullAccessDictionary;
1427:
1428: var migrationDomainList = Ia.Ftn.Cl.Model.Data.Service.MigrationDomainList;
1429: var migrationDomainStringList = migrationDomainList.ConvertAll<string>(delegate (int i) { return i.ToString(); });
1430:
1431: using (var db = new Ia.Ftn.Cl.Model.Db())
1432: {
1433: dictionary = (from s in db.Service2
1434: where s.Access != null && migrationDomainStringList.Any(u => s.Service.StartsWith(u))
1435: select new { s.Id, s.Access }).AsNoTracking().ToDictionary(u => u.Id, u => u.Access.Id);
1436:
1437: nullAccessDictionary = (from s in db.Service2
1438: where s.Access == null && migrationDomainStringList.Any(u => s.Service.StartsWith(u))
1439: select new { s.Id, s.Access }).AsNoTracking().ToDictionary(u => u.Id, u => string.Empty);
1440: }
1441:
1442: return dictionary.Union(nullAccessDictionary).ToDictionary(u => u.Key, u => u.Value);
1443: }
1444: }
1445:
1446: ////////////////////////////////////////////////////////////////////////////
1447:
1448: /// <summary>
1449: ///
1450: /// </summary>
1451: public static Dictionary<string, string> MigratedServiceIdToAccessIdInAllowedToBeMigratedOltDictionary
1452: {
1453: get
1454: {
1455: Dictionary<string, string> dictionary;
1456:
1457: var allowedToBeMigratedOltIdList = Ia.Ftn.Cl.Model.Data.Service.AllowedToBeMigratedOltIdList;
1458:
1459: var migrationDomainList = Ia.Ftn.Cl.Model.Data.Service.MigrationDomainList;
1460: var migrationDomainStringList = migrationDomainList.ConvertAll<string>(delegate (int i) { return i.ToString(); });
1461:
1462: using (var db = new Ia.Ftn.Cl.Model.Db())
1463: {
1464: dictionary = (from s in db.Service2
1465: where s.Access != null && migrationDomainStringList.Any(u => s.Service.StartsWith(u)) && allowedToBeMigratedOltIdList.Contains(s.Access.Olt) && s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService
1466: select new { s.Id, s.Access }).ToDictionary(u => u.Id, u => u.Access.Id);
1467: }
1468:
1469: return dictionary.ToDictionary(u => u.Key, u => u.Value);
1470: }
1471: }
1472:
1473: ////////////////////////////////////////////////////////////////////////////
1474:
1475: /// <summary>
1476: ///
1477: /// </summary>
1478: public static List<string> ImsServiceInAllowedToBeMigratedOltList
1479: {
1480: get
1481: {
1482: List<string> list;
1483:
1484: var allowedToBeMigratedOltIdList = Ia.Ftn.Cl.Model.Data.Service.AllowedToBeMigratedOltIdList;
1485:
1486: var migrationDomainList = Ia.Ftn.Cl.Model.Data.Service.MigrationDomainList;
1487: var migrationDomainStringList = migrationDomainList.ConvertAll<string>(delegate (int i) { return i.ToString(); });
1488:
1489: using (var db = new Ia.Ftn.Cl.Model.Db())
1490: {
1491: var list0 = (from s in db.Service2
1492: where s.Access != null && s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService
1493: select new { s.Service, AccessOlt = s.Access.Olt }).AsNoTracking().ToList();
1494:
1495: list = (from l in list0
1496: where migrationDomainStringList.Any(u => l.Service.StartsWith(u)) && allowedToBeMigratedOltIdList.Contains(l.AccessOlt)
1497: select l.Service).ToList();
1498: }
1499:
1500: return list;
1501: }
1502: }
1503:
1504: ////////////////////////////////////////////////////////////////////////////
1505:
1506: /// <summary>
1507: ///
1508: /// </summary>
1509: public static Dictionary<string, string> ImsServiceToAccessIdInAllowedToBeMigratedOltDictionary
1510: {
1511: get
1512: {
1513: Dictionary<string, string> dictionary;
1514:
1515: var allowedToBeMigratedOltIdList = Ia.Ftn.Cl.Model.Data.Service.AllowedToBeMigratedOltIdList;
1516:
1517: var migrationDomainList = Ia.Ftn.Cl.Model.Data.Service.MigrationDomainList;
1518: var migrationDomainStringList = migrationDomainList.ConvertAll<string>(delegate (int i) { return i.ToString(); });
1519:
1520: using (var db = new Ia.Ftn.Cl.Model.Db())
1521: {
1522: var list = (from s in db.Service2
1523: where s.Access != null && s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService
1524: select new { s.Service, AccessId = s.Access.Id, AccessOlt = s.Access.Olt }).AsNoTracking().ToList();
1525:
1526: dictionary = (from l in list
1527: where migrationDomainStringList.Any(u => l.Service.StartsWith(u)) && allowedToBeMigratedOltIdList.Contains(l.AccessOlt)
1528: select l).ToDictionary(u => u.Service, u => u.AccessId);
1529: }
1530:
1531: return dictionary.ToDictionary(u => u.Key, u => u.Value);
1532: }
1533: }
1534:
1535: ////////////////////////////////////////////////////////////////////////////
1536:
1537: /// <summary>
1538: ///
1539: /// </summary>
1540: public static List<string> MsanServiceInAllowedToBeMigratedDomainList
1541: {
1542: get
1543: {
1544: List<string> list;
1545:
1546: var migrationDomainList = Ia.Ftn.Cl.Model.Data.Service.MigrationDomainList;
1547: var migrationDomainStringList = migrationDomainList.ConvertAll<string>(delegate (int i) { return i.ToString(); });
1548:
1549: var msanServiceList = Ia.Ftn.Cl.Model.Data.Service2.MsanServiceList;
1550:
1551: list = (from l in msanServiceList
1552: where migrationDomainStringList.Any(u => l.StartsWith(u))
1553: select l).ToList();
1554:
1555: return list;
1556: }
1557: }
1558:
1559: ////////////////////////////////////////////////////////////////////////////
1560:
1561: /// <summary>
1562: ///
1563: /// </summary>
1564: public static Dictionary<string, string> ServiceToAccessIdDictionary
1565: {
1566: get
1567: {
1568: string key;
1569: Dictionary<string, string> serviceToAccessIdDictionary, serviceIdToAccessIdDictionary;
1570:
1571: serviceIdToAccessIdDictionary = ServiceIdToAccessIdDictionary;
1572:
1573: serviceToAccessIdDictionary = new Dictionary<string, string>(serviceIdToAccessIdDictionary.Count);
1574:
1575: foreach (KeyValuePair<string, string> kvp in serviceIdToAccessIdDictionary)
1576: {
1577: key = Ia.Ftn.Cl.Model.Business.Service.ServiceIdToService(kvp.Key);
1578:
1579: serviceToAccessIdDictionary[key] = kvp.Value;
1580: }
1581:
1582: return serviceToAccessIdDictionary;
1583: }
1584: }
1585:
1586: ////////////////////////////////////////////////////////////////////////////
1587:
1588: /// <summary>
1589: ///
1590: /// </summary>
1591: public static Dictionary<string, string> ServiceIdToAccessNameDictionary
1592: {
1593: get
1594: {
1595: Dictionary<string, string> dictionary, nullAccessDictionary;
1596:
1597: using (var db = new Ia.Ftn.Cl.Model.Db())
1598: {
1599: dictionary = (from s in db.Service2
1600: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Access != null
1601: select new { s.Id, s.Access }).ToDictionary(u => u.Id, u => u.Access.Name);
1602:
1603: nullAccessDictionary = (from s in db.Service2
1604: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Access == null
1605: select s.Id).ToDictionary(u => u, null);
1606: }
1607:
1608: return dictionary.Union(nullAccessDictionary).ToDictionary(u => u.Key, u => u.Value);
1609: }
1610: }
1611:
1612: ////////////////////////////////////////////////////////////////////////////
1613:
1614: /// <summary>
1615: ///
1616: /// </summary>
1617: public static Dictionary<string, int> AccessNameToSeviceCountDictionary()
1618: {
1619: string accessName;
1620: Dictionary<string, int> dictionary;
1621:
1622: using (var db = new Ia.Ftn.Cl.Model.Db())
1623: {
1624: var accessIdToAccessNameDictionary = Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.OntAccessIdToOntAccessNameDictionary;
1625:
1626: var serviceToAccessIdDictionary = (from s in db.Service2
1627: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Access != null
1628: select new { s.Service, AccessId = s.Access.Id }).ToDictionary(u => u.Service, u => u.AccessId);
1629:
1630: dictionary = new Dictionary<string, int>(serviceToAccessIdDictionary.Count);
1631:
1632: foreach (var accessName0 in accessIdToAccessNameDictionary.Values)
1633: {
1634: dictionary[accessName0] = 0;
1635: }
1636:
1637: foreach (KeyValuePair<string, string> kvp in serviceToAccessIdDictionary)
1638: {
1639: accessName = accessIdToAccessNameDictionary[kvp.Value];
1640:
1641: if (!string.IsNullOrEmpty(accessName))
1642: {
1643: if (dictionary.ContainsKey(accessName))
1644: {
1645: dictionary[accessName] = dictionary[accessName] + 1;
1646: }
1647: else dictionary[accessName] = 1;
1648: }
1649: }
1650: }
1651:
1652: return dictionary.ToDictionary(u => u.Key, u => u.Value);
1653: }
1654:
1655: ////////////////////////////////////////////////////////////////////////////
1656:
1657: /// <summary>
1658: ///
1659: /// </summary>
1660: public static Dictionary<string, List<string>> OntAccessIdToSeviceListDictionary()
1661: {
1662: string service, accessId;
1663: Dictionary<string, List<string>> dictionary;
1664:
1665: using (var db = new Ia.Ftn.Cl.Model.Db())
1666: {
1667: var ontAccessIdList = Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.OntAccessIdList;
1668:
1669: var serviceToAccessIdDictionary = (from s in db.Service2
1670: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService && s.Access != null
1671: select new { s.Service, AccessId = s.Access.Id }).ToDictionary(u => u.Service, u => u.AccessId);
1672:
1673: dictionary = new Dictionary<string, List<string>>(serviceToAccessIdDictionary.Count);
1674:
1675: foreach (var ontAccessId in ontAccessIdList) dictionary[ontAccessId] = new List<string>();
1676:
1677: foreach (var kvp in serviceToAccessIdDictionary)
1678: {
1679: service = kvp.Key;
1680: accessId = kvp.Value;
1681:
1682: dictionary[accessId].Add(service);
1683: }
1684: }
1685:
1686: return dictionary;
1687: }
1688:
1689: ////////////////////////////////////////////////////////////////////////////
1690:
1691: /// <summary>
1692: ///
1693: /// </summary>
1694: public static Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Ont> ServiceToNddOntDictionary
1695: {
1696: get
1697: {
1698: string key;
1699: Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Ont> dictionary;
1700:
1701: var serviceIdToAccessIdDictionary = Ia.Ftn.Cl.Model.Data.Service2.ServiceIdToAccessIdDictionary;
1702: var ontAccessIdToOntDictionary = Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.OntAccessIdToOntDictionary;
1703:
1704: dictionary = new Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Ont>(serviceIdToAccessIdDictionary.Count);
1705:
1706: foreach (KeyValuePair<string, string> kvp in serviceIdToAccessIdDictionary)
1707: {
1708: key = Ia.Ftn.Cl.Model.Business.Service.ServiceIdToService(kvp.Key);
1709:
1710: if (!string.IsNullOrEmpty(kvp.Value)) dictionary[key] = ontAccessIdToOntDictionary[kvp.Value];
1711: else dictionary[key] = null;
1712: }
1713:
1714: return dictionary;
1715: }
1716: }
1717:
1718: ////////////////////////////////////////////////////////////////////////////
1719:
1720: /// <summary>
1721: ///
1722: /// </summary>
1723: public static Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Ont> PstnServiceToNddOntDictionary
1724: {
1725: get
1726: {
1727: string key;
1728: Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Ont> dictionary;
1729:
1730: var pstnServiceIdToAccessIdDictionary = Ia.Ftn.Cl.Model.Data.Service2.PstnServiceIdToAccessIdDictionary;
1731: var ontAccessIdToOntDictionary = Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.OntAccessIdToOntDictionary;
1732:
1733: dictionary = new Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Ont>(pstnServiceIdToAccessIdDictionary.Count);
1734:
1735: foreach (KeyValuePair<string, string> kvp in pstnServiceIdToAccessIdDictionary)
1736: {
1737: key = Ia.Ftn.Cl.Model.Business.Service.ServiceIdToService(kvp.Key);
1738:
1739: if (!string.IsNullOrEmpty(kvp.Value)) dictionary[key] = ontAccessIdToOntDictionary[kvp.Value];
1740: //else dictionary[key] = null;
1741: }
1742:
1743: return dictionary;
1744: }
1745: }
1746:
1747: ////////////////////////////////////////////////////////////////////////////
1748:
1749: /// <summary>
1750: ///
1751: /// </summary>
1752: public static Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Vendor> MigratedServiceToNddOntRouterVendorDictionary
1753: {
1754: get
1755: {
1756: string key;
1757: Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Vendor> dictionary;
1758:
1759: var migratedServiceIdToAccessIdDictionary = Ia.Ftn.Cl.Model.Data.Service2.MigratedServiceIdToAccessIdDictionary;
1760: var ontAccessIdToOntDictionary = Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.OntAccessIdToOntDictionary;
1761:
1762: dictionary = new Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Vendor>(migratedServiceIdToAccessIdDictionary.Count);
1763:
1764: foreach (KeyValuePair<string, string> kvp in migratedServiceIdToAccessIdDictionary)
1765: {
1766: key = Ia.Ftn.Cl.Model.Business.Service.ServiceIdToService(kvp.Key);
1767:
1768: //if (!string.IsNullOrEmpty(kvp.Value)) dictionary[key] = ontAccessIdToOntDictionary[kvp.Value];
1769: //else dictionary[key] = null;
1770: }
1771:
1772: return dictionary;
1773: }
1774: }
1775:
1776: ////////////////////////////////////////////////////////////////////////////
1777:
1778: /// <summary>
1779: ///
1780: /// </summary>
1781: public static Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Site> ServiceToSiteDictionary
1782: {
1783: get
1784: {
1785: int fourLetterServiceDomain, fiveLetterServiceDomain;
1786: string service;
1787: Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Site> dictionary;
1788:
1789: var serviceIdList = Ia.Ftn.Cl.Model.Data.Service2.ServiceIdList;
1790: var routerDomainToSiteDictionary = Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.RouterDomainToSiteDictionary;
1791:
1792: dictionary = new Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Site>(serviceIdList.Count);
1793:
1794: foreach (string s in serviceIdList)
1795: {
1796: service = Ia.Ftn.Cl.Model.Business.Service.ServiceIdToService(s);
1797:
1798: if (service.Length >= 5)
1799: {
1800: fourLetterServiceDomain = int.Parse(service.Substring(0, 4));
1801: fiveLetterServiceDomain = int.Parse(service.Substring(0, 5));
1802:
1803: if (routerDomainToSiteDictionary.ContainsKey(fiveLetterServiceDomain)) dictionary[service] = routerDomainToSiteDictionary[fiveLetterServiceDomain];
1804: else if (routerDomainToSiteDictionary.ContainsKey(fourLetterServiceDomain)) dictionary[service] = routerDomainToSiteDictionary[fourLetterServiceDomain];
1805: //else throw new System.ArgumentOutOfRangeException("Service number " + service + " is out of range");
1806: }
1807: //else throw new System.ArgumentOutOfRangeException("Service number " + service + " is out of range");
1808: }
1809:
1810: return dictionary;
1811: }
1812: }
1813:
1814: ////////////////////////////////////////////////////////////////////////////
1815:
1816: /// <summary>
1817: ///
1818: /// </summary>
1819: public static Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Site> ImsServiceToSiteDictionary
1820: {
1821: get
1822: {
1823: int fourLetterServiceDomain, fiveLetterServiceDomain;
1824: string service;
1825: Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Site> dictionary;
1826:
1827: var serviceIdList = Ia.Ftn.Cl.Model.Data.Service2.ImsServiceIdList;
1828: var routerDomainToSiteDictionary = Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.RouterDomainToSiteDictionary;
1829:
1830: dictionary = new Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Site>(serviceIdList.Count);
1831:
1832: foreach (string s in serviceIdList)
1833: {
1834: service = Ia.Ftn.Cl.Model.Business.Service.ServiceIdToService(s);
1835:
1836: if (service.Length >= 5)
1837: {
1838: fourLetterServiceDomain = int.Parse(service.Substring(0, 4));
1839: fiveLetterServiceDomain = int.Parse(service.Substring(0, 5));
1840:
1841: if (routerDomainToSiteDictionary.ContainsKey(fiveLetterServiceDomain)) dictionary[service] = routerDomainToSiteDictionary[fiveLetterServiceDomain];
1842: else if (routerDomainToSiteDictionary.ContainsKey(fourLetterServiceDomain)) dictionary[service] = routerDomainToSiteDictionary[fourLetterServiceDomain];
1843: //else throw new System.ArgumentOutOfRangeException("Service number " + service + " is out of range");
1844: }
1845: //else throw new System.ArgumentOutOfRangeException("Service number " + service + " is out of range");
1846: }
1847:
1848: return dictionary;
1849: }
1850: }
1851:
1852: ////////////////////////////////////////////////////////////////////////////
1853:
1854: /// <summary>
1855: ///
1856: /// </summary>
1857: public static Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Site> MsanServiceToSiteDictionary
1858: {
1859: get
1860: {
1861: Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Site> dictionary;
1862:
1863: var imsServiceToSiteDictionary = Ia.Ftn.Cl.Model.Data.Service2.ImsServiceToSiteDictionary;
1864:
1865: var msanServiceList = Ia.Ftn.Cl.Model.Data.Service2.MsanServiceList;
1866:
1867: dictionary = new Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Site>(msanServiceList.Count);
1868:
1869: foreach (string service in msanServiceList)
1870: {
1871: if (imsServiceToSiteDictionary.ContainsKey(service)) // I had to add this because the systems sees 2489 numbers in MSAN
1872: {
1873: dictionary[service] = imsServiceToSiteDictionary[service];
1874: }
1875: }
1876:
1877: return dictionary;
1878: }
1879: }
1880:
1881: ////////////////////////////////////////////////////////////////////////////
1882:
1883: /// <summary>
1884: ///
1885: /// </summary>
1886: public static Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Site> MsanServiceToSiteInAllowedToBeMigratedDomainListDictionary
1887: {
1888: get
1889: {
1890: Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Site> dictionary;
1891:
1892: var msanServiceInAllowedToBeMigratedDomainList = Ia.Ftn.Cl.Model.Data.Service2.MsanServiceInAllowedToBeMigratedDomainList;
1893: var msanServiceToSiteDictionary = Ia.Ftn.Cl.Model.Data.Service2.MsanServiceToSiteDictionary;
1894:
1895: dictionary = new Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Site>(msanServiceInAllowedToBeMigratedDomainList.Count);
1896:
1897: foreach (string service in msanServiceInAllowedToBeMigratedDomainList)
1898: {
1899: if (msanServiceToSiteDictionary.ContainsKey(service)) // I had to add this because the systems sees 2489 numbers in MSAN
1900: {
1901: dictionary[service] = msanServiceToSiteDictionary[service];
1902: }
1903: }
1904:
1905: return dictionary;
1906: }
1907: }
1908:
1909: ////////////////////////////////////////////////////////////////////////////
1910:
1911: /// <summary>
1912: ///
1913: /// </summary>
1914: public static Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Site> PstnServiceToSiteDictionary
1915: {
1916: get
1917: {
1918: int fourLetterServiceDomain, fiveLetterServiceDomain;
1919: string service;
1920: Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Site> dictionary;
1921:
1922: var serviceIdList = Ia.Ftn.Cl.Model.Data.Service2.PstnServiceIdList;
1923: var routerDomainToSiteDictionary = Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.RouterDomainToSiteDictionary;
1924:
1925: dictionary = new Dictionary<string, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Site>(serviceIdList.Count);
1926:
1927: foreach (string s in serviceIdList)
1928: {
1929: service = Ia.Ftn.Cl.Model.Business.Service.ServiceIdToService(s);
1930:
1931: if (service.Length >= 5)
1932: {
1933: fourLetterServiceDomain = int.Parse(service.Substring(0, 4));
1934: fiveLetterServiceDomain = int.Parse(service.Substring(0, 5));
1935:
1936: if (routerDomainToSiteDictionary.ContainsKey(fiveLetterServiceDomain)) dictionary[service] = routerDomainToSiteDictionary[fiveLetterServiceDomain];
1937: else if (routerDomainToSiteDictionary.ContainsKey(fourLetterServiceDomain)) dictionary[service] = routerDomainToSiteDictionary[fourLetterServiceDomain];
1938: //else throw new System.ArgumentOutOfRangeException("Service number " + service + " is out of range");
1939: }
1940: //else throw new System.ArgumentOutOfRangeException("Service number " + service + " is out of range");
1941: }
1942:
1943: return dictionary;
1944: }
1945: }
1946:
1947: ////////////////////////////////////////////////////////////////////////////
1948:
1949: /// <summary>
1950: ///
1951: /// </summary>
1952: public static Dictionary<string, string> ServiceNotInServiceRequestServiceToSiteDictionary
1953: {
1954: get
1955: {
1956: string service, siteName;
1957: Dictionary<string, string> dictionary;
1958:
1959: var serviceToSiteNameDictionary = Ia.Ftn.Cl.Model.Data.Service2.ServiceToSiteDictionary;
1960: var serviceRequestServiceServiceToSiteNameDictionary = Ia.Ftn.Cl.Model.Data.ServiceRequestService.ServiceToSiteDictionary;
1961:
1962: dictionary = new Dictionary<string, string>();
1963:
1964: foreach (var kvp in serviceToSiteNameDictionary)
1965: {
1966: service = kvp.Key;
1967: siteName = kvp.Value.Name;
1968:
1969: if (!serviceRequestServiceServiceToSiteNameDictionary.ContainsKey(service)) dictionary.Add(service, siteName);
1970: }
1971:
1972: return dictionary;
1973: }
1974: }
1975:
1976: ////////////////////////////////////////////////////////////////////////////
1977:
1978: /// <summary>
1979: ///
1980: /// </summary>
1981: public static Dictionary<string, string> ServiceNotInProvisionedServiceRequestServiceToSiteDictionary
1982: {
1983: get
1984: {
1985: string service, siteName;
1986: Dictionary<string, string> dictionary;
1987:
1988: var serviceToSiteNameDictionary = Ia.Ftn.Cl.Model.Data.Service2.ServiceToSiteDictionary;
1989: var serviceRequestServiceProvisionedServiceToSiteNameDictionary = Ia.Ftn.Cl.Model.Data.ServiceRequestService.ProvisionedServiceToSiteDictionary;
1990:
1991: dictionary = new Dictionary<string, string>();
1992:
1993: foreach (var kvp in serviceToSiteNameDictionary)
1994: {
1995: service = kvp.Key;
1996: siteName = kvp.Value.Name;
1997:
1998: if (!serviceRequestServiceProvisionedServiceToSiteNameDictionary.ContainsKey(service)) dictionary.Add(service, siteName);
1999: }
2000:
2001: return dictionary;
2002: }
2003: }
2004:
2005: ////////////////////////////////////////////////////////////////////////////
2006:
2007: /// <summary>
2008: ///
2009: /// </summary>
2010: public static Dictionary<string, string> ImsServiceNotInProvisionedServiceRequestServiceToSiteDictionary
2011: {
2012: get
2013: {
2014: string service, siteName;
2015: Dictionary<string, string> dictionary;
2016:
2017: var serviceToSiteNameDictionary = Ia.Ftn.Cl.Model.Data.Service2.ImsServiceToSiteDictionary;
2018: var serviceRequestServiceProvisionedServiceToSiteNameDictionary = Ia.Ftn.Cl.Model.Data.ServiceRequestService.ProvisionedServiceToSiteDictionary;
2019:
2020: var doesNotExistInSrsList = Ia.Ftn.Cl.Model.Data.Service2.ServiceImsServicesThatDoNotExistInServiceRequestServicesList();
2021:
2022: dictionary = new Dictionary<string, string>();
2023:
2024: foreach (var kvp in serviceToSiteNameDictionary)
2025: {
2026: service = kvp.Key;
2027: siteName = kvp.Value.Name;
2028:
2029: if (!serviceRequestServiceProvisionedServiceToSiteNameDictionary.ContainsKey(service))
2030: {
2031: if (!doesNotExistInSrsList.Contains(service))
2032: {
2033: dictionary.Add(service, siteName);
2034: }
2035: }
2036: }
2037:
2038: return dictionary;
2039: }
2040: }
2041:
2042:
2043: ////////////////////////////////////////////////////////////////////////////
2044:
2045: /// <summary>
2046: ///
2047: /// </summary>
2048: public static List<string> ServiceImsServicesThatDoNotExistInServiceRequestServicesList()
2049: {
2050: List<string> list;
2051:
2052: using (var db = new Ia.Ftn.Cl.Model.Db())
2053: {
2054: /*
2055: select s.Service from Service2 s
2056: left outer join ServiceRequestServices srs on srs.Service = s.Service
2057: where s.ServiceType = 1 and srs.Id is null
2058: */
2059:
2060: list = (from s in db.Service2
2061: join srs in db.ServiceRequestServices on s.Service equals srs.Service into srs2
2062: from srs3 in srs2.DefaultIfEmpty()
2063: where srs3 == null && s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService
2064: select s.Service).ToList();
2065: }
2066:
2067: return list;
2068: }
2069:
2070: ////////////////////////////////////////////////////////////////////////////
2071:
2072: /// <summary>
2073: ///
2074: /// </summary>
2075: public static Dictionary<string, string> PstnServiceNotInProvisionedServiceRequestServiceToSiteDictionary
2076: {
2077: get
2078: {
2079: string service, siteName;
2080: Dictionary<string, string> dictionary;
2081:
2082: var serviceToSiteNameDictionary = Ia.Ftn.Cl.Model.Data.Service2.PstnServiceToSiteDictionary;
2083: var serviceRequestServiceProvisionedServiceToSiteNameDictionary = Ia.Ftn.Cl.Model.Data.ServiceRequestService.ProvisionedServiceToSiteDictionary;
2084:
2085: var doesNotExistInSrsList = Ia.Ftn.Cl.Model.Data.Service2.ServiceImsServicesThatDoNotExistInServiceRequestServicesList();
2086:
2087: dictionary = new Dictionary<string, string>();
2088:
2089: foreach (var kvp in serviceToSiteNameDictionary)
2090: {
2091: service = kvp.Key;
2092: siteName = kvp.Value.Name;
2093:
2094: if (!serviceRequestServiceProvisionedServiceToSiteNameDictionary.ContainsKey(service))
2095: {
2096: if (!doesNotExistInSrsList.Contains(service))
2097: {
2098: dictionary.Add(service, siteName);
2099: }
2100: }
2101: }
2102:
2103: return dictionary;
2104: }
2105: }
2106:
2107: ////////////////////////////////////////////////////////////////////////////
2108:
2109: /// <summary>
2110: ///
2111: /// </summary>
2112: public static Dictionary<string, int> PstnFiveDigitDomainToCountOfServicesDictionary()
2113: {
2114: var dictionary = new Dictionary<string, int>();
2115:
2116: using (var db = new Ia.Ftn.Cl.Model.Db())
2117: {
2118: /*
2119: select substring(s.Service,1,5), count(s.Service)
2120: from Service2 s
2121: where ServiceType = 2 -- PSTN
2122: group by substring(s.Service,1,5)
2123: */
2124:
2125: dictionary = (from s in db.Service2
2126: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.PstnService
2127: group s.Service.Substring(0, 5) by s.Service.Substring(0, 5) into g
2128: select new { PstnFiveDigitDomain = g.Key, ServiceCount = g.Count() }).AsNoTracking().ToDictionary(t => t.PstnFiveDigitDomain, t => t.ServiceCount);
2129: }
2130:
2131: return dictionary;
2132: }
2133:
2134: ////////////////////////////////////////////////////////////////////////////
2135:
2136: /// <summary>
2137: ///
2138: /// </summary>
2139: public static void UpdatePstnServiceAccess(string service, string newAccessId, string userId, out Ia.Cl.Models.Result result)
2140: {
2141: int serviceType;
2142: string service2Id;
2143: Ia.Ftn.Cl.Model.Service2 service2;
2144:
2145: result = new Ia.Cl.Models.Result();
2146:
2147: serviceType = Ia.Ftn.Cl.Model.Business.Service.ServiceType.PstnService; // PSTN
2148: service2Id = Ia.Ftn.Cl.Model.Business.Service2.ServiceId(service, serviceType);
2149:
2150: using (var db = new Ia.Ftn.Cl.Model.Db())
2151: {
2152: service2 = (from s in db.Service2 where s.Id == service2Id select s).SingleOrDefault();
2153:
2154: if (service2 != null)
2155: {
2156: if (!string.IsNullOrEmpty(newAccessId))
2157: {
2158: if (service2.Access == null || service2.Access != null && service2.Access.Id != newAccessId)
2159: {
2160: service2.Access = (from a in db.Accesses where a.Id == newAccessId select a).SingleOrDefault();
2161: service2.UserId = userId;
2162:
2163: db.Service2.Attach(service2);
2164: db.Entry(service2).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
2165:
2166: db.SaveChanges();
2167:
2168: result.AddSuccess("Service " + service + " was updated with access " + service2.Access.Name + " (تم تحديث ربط الجهاز بالرقم). ");
2169: }
2170: else
2171: {
2172: result.AddWarning("Service access value was not updated because submitted data is the same as current data and because access is not null (لم يتم تغيير الجهاز المربوط بالرقم لأن المعلومات المعطاة هي ذاتها لم تتغير ولأن الجهاز معرف). ");
2173: }
2174: }
2175: else //if(string.IsNullOrEmpty(updatedAccessId))
2176: {
2177: if (service2.Access != null)
2178: {
2179: service2.Access = (from a in db.Accesses where a.Id == string.Empty select a).SingleOrDefault();
2180: service2.Port = Ia.Ftn.Cl.Model.Business.Default.PortUndefinedOrInvalidOrUnknown;
2181: service2.UserId = userId;
2182:
2183: db.Service2.Attach(service2);
2184: db.Entry(service2).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
2185:
2186: db.SaveChanges();
2187:
2188: result.AddSuccess("Service " + service + " was updated with null access and " + Ia.Ftn.Cl.Model.Business.Default.PortUndefinedOrInvalidOrUnknown + " port (تم مسح ربط الجهاز بالرقم ومسح المنفذ). ");
2189: }
2190: else
2191: {
2192: result.AddWarning("Service access and port values were not reset because submitted data (access null and port " + Ia.Ftn.Cl.Model.Business.Default.PortUndefinedOrInvalidOrUnknown + ") is the same as current data (لم يتم تغيير الجهاز المربوط بالرقم أو المنفذ لأن المعلومات المعطاة هي ذاتها لم تتغير). ");
2193: }
2194: }
2195: }
2196: else
2197: {
2198: result.AddWarning("Service " + service + " does not exist (رقم الخدمة غير موجود). ");
2199: }
2200: }
2201: }
2202:
2203: ////////////////////////////////////////////////////////////////////////////
2204:
2205: /// <summary>
2206: ///
2207: /// </summary>
2208: public static void UpdateImsServiceAccessAndPort(string service, string accessId, int port, string userId, out Ia.Cl.Models.Result result)
2209: {
2210: int serviceType;
2211: string service2Id;
2212: Ia.Ftn.Cl.Model.Service2 service2;
2213:
2214: result = new Ia.Cl.Models.Result();
2215:
2216: serviceType = Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService;
2217: service2Id = Ia.Ftn.Cl.Model.Business.Service2.ServiceId(service, serviceType);
2218:
2219: using (var db = new Ia.Ftn.Cl.Model.Db())
2220: {
2221: service2 = (from s in db.Service2 where s.Id == service2Id select s).Include(s => s.Access).SingleOrDefault();
2222:
2223: if (service2 != null)
2224: {
2225: if (!string.IsNullOrEmpty(accessId))
2226: {
2227: if (service2.Access == null || service2.Access != null && (service2.Access.Id != accessId || service2.Port != port))
2228: {
2229: service2.Access = (from a in db.Accesses where a.Id == accessId select a).SingleOrDefault();
2230: service2.Port = port;
2231: service2.UserId = userId;
2232:
2233: db.Service2.Attach(service2);
2234: db.Entry(service2).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
2235:
2236: db.SaveChanges();
2237:
2238: result.AddSuccess("Service " + service + " was updated with access " + service2.Access.Name + " and port " + port);
2239: }
2240: else
2241: {
2242: result.AddWarning("Service access not updated");
2243: }
2244: }
2245: else
2246: {
2247: if (service2.Access != null)
2248: {
2249: service2.Access = (from a in db.Accesses where a.Id == string.Empty select a).SingleOrDefault();
2250: service2.Port = Ia.Ftn.Cl.Model.Business.Default.PortUndefinedOrInvalidOrUnknown;
2251: service2.UserId = userId;
2252:
2253: db.Service2.Attach(service2);
2254: db.Entry(service2).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
2255:
2256: db.SaveChanges();
2257:
2258: result.AddSuccess("Service " + service + " was updated with null access and " + Ia.Ftn.Cl.Model.Business.Default.PortUndefinedOrInvalidOrUnknown + " port.");
2259: }
2260: else
2261: {
2262: result.AddWarning("Service access not reset.");
2263: }
2264: }
2265: }
2266: else
2267: {
2268: result.AddWarning("Service " + service + " does not exist.");
2269: }
2270: }
2271: }
2272:
2273: ////////////////////////////////////////////////////////////////////////////
2274:
2275: /// <summary>
2276: ///
2277: /// </summary>
2278: public static void ProvisioningStateOfServicesWithinPstnSite(int siteId, out List<string> provisionedServiceList, out List<string> unprovisionedServiceList)
2279: {
2280: var site = (from s in Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.PstnList
2281: where s.Id == siteId
2282: select s).SingleOrDefault();
2283:
2284: if (site != null)
2285: {
2286: provisionedServiceList = new List<string>();
2287: unprovisionedServiceList = new List<string>();
2288:
2289: using (var db = new Ia.Ftn.Cl.Model.Db())
2290: {
2291: var provisionedService0List = (from s in db.Service2
2292: join srs in db.ServiceRequestServices on s.Service equals srs.Service
2293: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.PstnService && srs.Provisioned == true
2294: select s.Service).AsNoTracking().ToList();
2295:
2296: foreach (var s in provisionedService0List)
2297: {
2298: if (site.DomainList.Any(u => s.StartsWith(u.ToString()))) provisionedServiceList.Add(s);
2299: }
2300:
2301: var unprovisionedService0List = (from s in db.Service2
2302: join srs in db.ServiceRequestServices on s.Service equals srs.Service
2303: where s.ServiceType == Ia.Ftn.Cl.Model.Business.Service.ServiceType.PstnService && srs.Provisioned == false
2304: select s.Service).AsNoTracking().ToList();
2305:
2306: foreach (var s in unprovisionedService0List)
2307: {
2308: if (site.DomainList.Any(u => s.StartsWith(u.ToString()))) unprovisionedServiceList.Add(s);
2309: }
2310: }
2311: }
2312: else
2313: {
2314: provisionedServiceList = new List<string>();
2315: unprovisionedServiceList = new List<string>();
2316: }
2317: }
2318:
2319: ////////////////////////////////////////////////////////////////////////////
2320: ////////////////////////////////////////////////////////////////////////////
2321: }
2322:
2323: ////////////////////////////////////////////////////////////////////////////
2324: ////////////////////////////////////////////////////////////////////////////
2325: }
- Mouse (Ia.Cl.Model) : Windows mouse movements and properties control support class.
- Winapi (Ia.Cl.Model) : WINAPI click events support class.
- ApplicationOperator (Ia.Cl.Model) : ApplicationOperator
- Access (Ia.Ftn.Cl.Model.Business) : Access support class for Fixed Telecommunications Network (FTN) business model.
- Address (Ia.Ftn.Cl.Model.Business) : Address Framework class for Fixed Telecommunications Network (FTN) business model.
- Administration (Ia.Ftn.Cl.Model.Business) : Administration support class of Fixed Telecommunications Network (FTN) business model.
- Default (Ia.Ftn.Cl.Model.Business.Application) : Default Application network information support class for the Fixed Telecommunications Network business model
- Authority (Ia.Ftn.Cl.Model.Business) : Authority support class of Fixed Telecommunications Network (FTN) business model.
- Configuration (Ia.Ftn.Cl.Model.Business) : Configuration Framework class for Fixed Telecommunications Network (FTN) business model.
- Contact (Ia.Ftn.Cl.Model.Business) : Contact support class of Fixed Telecommunications Network (FTN) business model.
- Default (Ia.Ftn.Cl.Model.Business) : Default general support class of Fixed Telecommunications Network (FTN) business model.
- Axe (Ia.Ftn.Cl.Model.Business.Ericsson) : Ericsson AXE support class of Fixed Telecommunications Network (FTN) business model.
- Subscriber (Ia.Ftn.Cl.Model.Business.Ericsson) : AXE Subscriber support class for Fixed Telecommunications Network (FTN) business model.
- Heartbeat (Ia.Ftn.Cl.Model.Business) : Heartbeat information support class for the Fixed Telecommunications Network business model
- Asbr (Ia.Ftn.Cl.Model.Business.Huawei) : AGCF Users (ASBR) support class for Huawei's Fixed Telecommunications Network (FTN) business model.
- Board (Ia.Ftn.Cl.Model.Business.Huawei) : Huawei's Board support class of Fixed Telecommunications Network (FTN) business model.
- Default (Ia.Ftn.Cl.Model.Business.Huawei) : Defaul general support class for Huawei's Fixed Telecommunications Network (FTN) business model.
- Dev (Ia.Ftn.Cl.Model.Business.Huawei) : Huawei's Dev support class of Fixed Telecommunications Network (FTN) business model.
- Ems (Ia.Ftn.Cl.Model.Business.Huawei) : Element Management System (EMS) support class for Huawei's Fixed Telecommunications Network (FTN) business model.
- Ims (Ia.Ftn.Cl.Model.Business.Huawei) : Fixed Telecommunications Network's Operations Support System Management Intranet (FTN OSS) support class for Huawei's Fixed Telecommunications Network (FTN) business model
- Mgw (Ia.Ftn.Cl.Model.Business.Huawei) : Media Gateway (MGW) support class for Huawei's Fixed Telecommunications Network (FTN) business model.
- Nce (Ia.Ftn.Cl.Model.Business.Huawei) : Fixed Telecommunications Network's Operations Support System Management Intranet (FTN OSS) support class for Huawei's Fixed Telecommunications Network (FTN) business model
- OntSipInfo (Ia.Ftn.Cl.Model.Business.Huawei) : Huawei's EMS ONT SIP Info support class of Fixed Telecommunications Network (FTN) business model.
- Ont (Ia.Ftn.Cl.Model.Business.Huawei) : Huawei's Ont support class of Fixed Telecommunications Network (FTN) business model.
- Onu (Ia.Ngn.Cl.Model.Business.Huawei) : Huawei's ONU support class of Next Generation Network'a (NGN's) business model.
- Owsbr (Ia.Ftn.Cl.Model.Business.Huawei) : Huawei's OwSbr Entity Framework class for Fixed Telecommunications Network (FTN) business model.
- Port (Ia.Ftn.Cl.Model.Business.Huawei) : Huawei's Port support class of Fixed Telecommunications Network (FTN) business model.
- Sbr (Ia.Ftn.Cl.Model.Business.Huawei) : Huawei's Sbr Entity Framework class for Fixed Telecommunications Network (FTN) business model.
- Seruattr (Ia.Ftn.Cl.Model.Business.Huawei) : SERUATTR Signaling Service Processing System (SPS) support class for Huawei's Fixed Telecommunications Network (FTN) business model.
- SoftX (Ia.Ftn.Cl.Model.Business.Huawei) : U2020 Northbound Interface IP (SoftX) support class for Huawei's Fixed Telecommunications Network (FTN) business model.
- Sps (Ia.Ftn.Cl.Model.Business.Huawei) : Signaling Service Processing System (SPS) support class for Huawei's Fixed Telecommunications Network (FTN) business model.
- Vag (Ia.Ftn.Cl.Model.Business.Huawei) : Huawei's EMS VAG Entity Framework class for Fixed Telecommunications Network (FTN) business model.
- VoipPstnUser (Ia.Ftn.Cl.Model.Business.Huawei) : Huawei's EMS VOIP PSTN User support class of Fixed Telecommunications Network (FTN) business model.
- Ims (Ia.Ftn.Cl.Model.Business) : Fixed Telecommunications Network's Operations Support System Management Intranet (FTN OSS) support class for Fixed Telecommunications Network (FTN) business model
- Ip (Ia.Ftn.Cl.Model.Business) : IP support class of Fixed Telecommunications Network (FTN) business model.
- Mail (Ia.Ftn.Cl.Model.Business) : Mail process support class of Fixed Telecommunications Network (FTN) business model.
- Default (Ia.Ftn.Cl.Model.Business.Maintenance) : Default maintenance network information support class for the Fixed Telecommunications Network business model
- Find (Ia.Ftn.Cl.Model.Business.Maintenance) : Find subscriber and network information support class for the Fixed Telecommunications Network business model
- Script (Ia.Ftn.Cl.Model.Business.Maintenance) : Script support class for Fixed Telecommunications Network (FTN) class library model.
- Task (Ia.Ftn.Cl.Model.Business.Maintenance) : Execute backend task support class for the Fixed Telecommunications Network business model
- DatabaseInformation (Ia.Ftn.Mdaa.Cl.Model.Business) : DatabaseInformation support class for Ministry Database Analysis Application business model.
- Default (Ia.Ftn.Cl.Model.Business.Mdaa) : Default mdaa network information support class for the Fixed Telecommunications Network business model
- MinistryDatabase (Ia.Ftn.Cl.Model.Business.Mdaa) : MinistryDatabase support class for Fixed Telecommunications Network (FTN) business model.
- TableInformation (Ia.Ftn.Mdaa.Cl.Model.Business) : TableInformation support class for Ministry Database Analysis Application business model.
- Migration (Ia.Ftn.Cl.Model.Business) : Migration support class of Fixed Telecommunications Network (FTN) business model.
- Msmq (Ia.Ftn.Cl.Model.Business) : MSMQ support class for Fixed Telecommunications Network (FTN) business model.
- NetworkDesignDocument (Ia.Ftn.Cl.Model.Business) : Network Design Document support class for Fixed Telecommunications Network (FTN) business model.
- AgcfEndpoint (Ia.Ftn.Cl.Model.Business.Nokia) : AGCF Endpoint support class for Nokia's Fixed Telecommunications Network (FTN) business model.
- AgcfGatewayRecord (Ia.Ftn.Cl.Model.Business.Nokia) : AGCF Gateway Records support class for Nokia's Fixed Telecommunications Network (FTN) business model.
- AgcfGatewayTable (Ia.Ftn.Cl.Model.Business.Nokia) : AGCF Gateway Table support class for Nokia's Fixed Telecommunications Network (FTN) business model.
- AmsTransaction (Ia.Ftn.Cl.Model.Nokia.Business) : Nokia AmsTransaction Entity Framework class for Fixed Telecommunications Network (FTN) business model.
- Ams (Ia.Ftn.Cl.Model.Business.Nokia) : Access Management System (AMS) support class for Nokia's Fixed Telecommunications Network (FTN) business model.
- Ims (Ia.Ftn.Cl.Model.Business.Nokia) : Fixed Telecommunications Network's Operations Support System Management Intranet (FTN OSS) support class for Nokia's Fixed Telecommunications Network (FTN) business model.
- OntOntPots (Ia.Ftn.Cl.Model.Business.Nokia) : ONT-ONTPOTS support class of Fixed Telecommunications Network (FTN) Nokia business model.
- OntServiceHsi (Ia.Ngn.Cl.Model.Business.Nokia) : ONT-SERVICEHSI support class of Next Generation Network'a (NGN's) Nokia business model.
- OntServiceVoip (Ia.Ftn.Cl.Model.Business.Nokia) : ONT-SERVICEVOIP support class of Fixed Telecommunications Network (FTN) Nokia business model.
- Ont (Ia.Ftn.Cl.Model.Business.Nokia) : ONT support class of Fixed Telecommunications Network (FTN) Nokia business model.
- Sdc (Ia.Ftn.Cl.Model.Business.Nokia) : Fixed Telecommunications Network's Operations Support System Management Intranet (FTN OSS) support class for Nokia's Fixed Telecommunications Network (FTN) business model.
- SubParty (Ia.Ftn.Cl.Model.Business.Nokia) : SubParty support class for Nokia's Fixed Telecommunications Network (FTN) business model.
- Subscriber (Ia.Ftn.Cl.Model.Business.Nokia) : Subscriber support class for Nokia's Fixed Telecommunications Network (FTN) business model.
- Procedure (Ia.Ftn.Cl.Model.Business) : Provision support class of Fixed Telecommunications Network (FTN) business model.
- Provision (Ia.Ftn.Cl.Model.Business) : Provision support class of Fixed Telecommunications Network (FTN) business model.
- Report (Ia.Ftn.Cl.Model.Business) : Report support class of Fixed Telecommunications Network (FTN) business model.
- Secretary (Ia.Ftn.Cl.Model.Business) : Secretary support class of Fixed Telecommunications Network (FTN) business model.
- ServiceAddress (Ia.Ftn.Cl.Model.Business) : ServiceAddress Framework class for Fixed Telecommunications Network (FTN) business model.
- ServiceRequestAdministrativeIssue (Ia.Ftn.Cl.Model.Business) : Service Request Administrative Issue support class of Fixed Telecommunications Network (FTN) business model.
- ServiceRequestHistory (Ia.Ftn.Cl.Model.Business) : Service Request History support class of Fixed Telecommunications Network (FTN) business model.
- ServiceRequestHsi (Ia.Ngn.Cl.Model.Business) : Service Request Hsi support class of Next Generation Network'a (NGN's) business model.
- ServiceRequestOntDetail (Ia.Ftn.Cl.Model.Business) : Service Request Ont Detail support class of Fixed Telecommunications Network (FTN) business model.
- ServiceRequestOnt (Ia.Ftn.Cl.Model.Business) : Service Request Ont support class of Fixed Telecommunications Network (FTN) business model.
- ServiceRequestService (Ia.Ftn.Cl.Model.Business) : Service Request Service support class of Fixed Telecommunications Network (FTN) business model.
- ServiceRequestStatisticalVariable (Ia.Ftn.Cl.Model.Business) : ServiceRequestStatisticalVariable support class of Fixed Telecommunications Network (FTN) business model.
- ServiceRequestType (Ia.Ftn.Cl.Model.Business) : Service Request Type support class of Fixed Telecommunications Network (FTN) business model.
- ServiceRequest (Ia.Ftn.Cl.Model.Business) : Service Request support class of Fixed Telecommunications Network (FTN) business model.
- ServiceSerialRequestService (Ia.Ftn.Cl.Model.Business) : Service Serial Request Service support class of Fixed Telecommunications Network (FTN) business model.
- ServiceServiceRequestOnt (Ia.Ftn.Cl.Model.Business) : ServiceServiceRequestOnt support class for Fixed Telecommunications Network (FTN) business model.
- Service (Ia.Ftn.Cl.Model.Business) : Service support class of Fixed Telecommunications Network (FTN) business model.
- Service2 (Ia.Ftn.Cl.Model.Business) : Service Entity Framework class for Fixed Telecommunications Network (FTN) business model.
- Ewsd (Ia.Ftn.Cl.Model.Business.Siemens) : Nokia's Siemens EWSD support class of Fixed Telecommunications Network (FTN) business model.
- Subscriber (Ia.Ftn.Cl.Model.Business.Siemens) : EWSD Subscriber support class for Fixed Telecommunications Network (FTN) business model.
- Transction (Ia.Ftn.Cl.Model.Business) : Transction support class of Fixed Telecommunications Network (FTN) business model.
- Axe (Ia.Ftn.Cl.Model.Client.Ericsson) : Ericsson's AXE support class for Ericsson's PSTN Exchange Migration to Fixed Telecommunications Network (FTN) client model.
- Ems (Ia.Ftn.Cl.Model.Client.Huawei) : Fixed Telecommunications Network's Operations Support System Management Intranet (FTN OSS) client support class for Huawei's Fixed Telecommunications Network (FTN) EMS client model.
- Ims (Ia.Ftn.Cl.Model.Client.Huawei) : Fixed Telecommunications Network's Operations Support System Management Intranet (FTN OSS) client support class for Huawei's Fixed Telecommunications Network (FTN) client model.
- SoftX (Ia.Ftn.Cl.Model.Client.Huawei) : U2020 Northbound Interface IP (SoftX) support class for Huawei's Fixed Telecommunications Network (FTN) client model.
- Sps (Ia.Ftn.Cl.Model.Client.Huawei) : Signaling Service Processing System (SPS) support class for Huawei's Fixed Telecommunications Network (FTN) SPS client model.
- Ams (Ia.Ftn.Cl.Model.Client.Nokia) : Fixed Telecommunications Network's Operations Support System Management Intranet (FTN OSS) client support class for Nokia's Fixed Telecommunications Network (FTN) AMS client model.
- Ims (Ia.Ftn.Cl.Model.Client.Nokia) : Fixed Telecommunications Network's Operations Support System Management Intranet (FTN OSS) client support class for Nokia's Fixed Telecommunications Network (FTN) client model.
- Sdc (Ia.Ftn.Cl.Model.Client.Nokia) : Fixed Telecommunications Network's Operations Support System Management Intranet (FTN OSS) client support class for Nokia's Fixed Telecommunications Network (FTN) client model.
- Access (Ia.Ftn.Cl.Model.Data) : Access support class for Fixed Telecommunications Network (FTN) data model.
- Administration (Ia.Ftn.Cl.Model.Data) : Administration support class for Fixed Telecommunications Network (FTN) data model.
- Contact (Ia.Ftn.Cl.Model.Data) : Contact Entity Framework class for Fixed Telecommunications Network (FTN) data model.
- Default (Ia.Ftn.Cl.Model.Data) : Default support class for Fixed Telecommunications Network (FTN) data model.
- Axe (Ia.Ftn.Cl.Model.Data.Ericsson) : Ericsson AXE support class of Fixed Telecommunications Network (FTN) data model.
- Subscriber (Ia.Ftn.Cl.Model.Data.Ericsson) : AXE Subscriber support class for Fixed Telecommunications Network (FTN) data model.
- Event (Ia.Ftn.Cl.Model.Data) : Nokia AMS Event support class for Fixed Telecommunications Network (FTN) data model.
- Guide (Ia.Ftn.Cl.Model.Data) : Guide support class for Fixed Telecommunications Network (FTN) data model.
- Help (Ia.Ftn.Cl.Model.Data) : Help class for Fixed Telecommunications Network (FTN) data model.
- Asbr (Ia.Ftn.Cl.Model.Data.Huawei) : AGCF Users (ASBR) support class for Huawei's Fixed Telecommunications Network (FTN) data model.
- Board (Ia.Ftn.Cl.Model.Data.Huawei) : Huawei's Board support class of Fixed Telecommunications Network (FTN) data model.
- Default (Ia.Ftn.Cl.Model.Data.Huawei) : Defaul general support class for Huawei's Fixed Telecommunications Network (FTN) data model.
- Dev (Ia.Ftn.Cl.Model.Data.Huawei) : Huawei's Dev support class of Fixed Telecommunications Network (FTN) data model.
- Ems (Ia.Ftn.Cl.Model.Data.Huawei) : Access Management System (AMS) support class for Huawei's Fixed Telecommunications Network (FTN) data model.
- Ims (Ia.Ftn.Cl.Model.Data.Huawei) : Fixed Telecommunications Network's Operations Support System Management Intranet (FTN OSS) support class for Huawei's Fixed Telecommunications Network (FTN) data model
- Mgw (Ia.Ftn.Cl.Model.Data.Huawei) : Media Gateway (MGW) support class for Huawei's Fixed Telecommunications Network (FTN) data model.
- OntSipInfo (Ia.Ftn.Cl.Model.Data.Huawei) : Huawei's EMS ONT SIP INFO support class of Fixed Telecommunications Network (FTN) data model.
- Ont (Ia.Ftn.Cl.Model.Data.Huawei) : Huawei's Ont support class of Fixed Telecommunications Network (FTN) data model.
- Onu (Ia.Ngn.Cl.Model.Data.Huawei) : Huawei ONU support class for Next Generation Network (NGN) data model.
- Owsbr (Ia.Ftn.Cl.Model.Data.Huawei) : Huawei's Owsbr Entity Framework class for Fixed Telecommunications Network (FTN) data model.
- Port (Ia.Ftn.Cl.Model.Data.Huawei) : Huawei's Port support class of Fixed Telecommunications Network (FTN) data model.
- Sbr (Ia.Ftn.Cl.Model.Data.Huawei) : Huawei's Sbr Entity Framework class for Fixed Telecommunications Network (FTN) data model.
- Seruattr (Ia.Ftn.Cl.Model.Data.Huawei) : SERUATTR Signaling Service Processing System (SPS) support class for Huawei's Fixed Telecommunications Network (FTN) data model.
- SoftX (Ia.Ftn.Cl.Model.Data.Huawei) : U2020 Northbound Interface IP (SoftX) support class for Huawei's Fixed Telecommunications Network (FTN) data model.
- Sps (Ia.Ftn.Cl.Model.Data.Huawei) : Signaling Service Processing System (SPS) support class for Huawei's Fixed Telecommunications Network (FTN) data model.
- Vag (Ia.Ftn.Cl.Model.Data.Huawei) : Huawei's EMS VAG Entity Framework class for Fixed Telecommunications Network (FTN) data model.
- VoipPstnUser (Ia.Ftn.Cl.Model.Data.Huawei) : Huawei's EMS VOIP PSTN User support class of Fixed Telecommunications Network (FTN) data model.
- Ims (Ia.Ftn.Cl.Model.Data) : Fixed Telecommunications Network's Operations Support System Management Intranet (FTN OSS) support class for Fixed Telecommunications Network (FTN) data model
- Mail (Ia.Ftn.Cl.Model.Data) : Mail class for Fixed Telecommunications Network (FTN) data model.
- Cache (Ia.Ngn.Cl.Model.Data.Maintenance) : Cache support class for the Next Generation Network data model
- Find (Ia.Ftn.Cl.Model.Data.Maintenance) : Find subscriber and network information support class for the Fixed Telecommunications Network data model
- MinistryDatabase (Ia.Ftn.Cl.Model.Data) : MinistryDatabase support class for Fixed Telecommunications Network (FTN) data model.
- Migration (Ia.Ftn.Cl.Model.Data) : Migration support class of Fixed Telecommunications Network (FTN) data model.
- Miscellaneous (Ia.Ftn.Cl.Model.Data) : Miscellaneous Entity Framework class for Fixed Telecommunications Network (FTN) data model.
- Msmq (Ia.Ftn.Cl.Model.Data) : MSMQ support class for Fixed Telecommunications Network (FTN) data model.
- NetworkDesignDocument (Ia.Ftn.Cl.Model.Data) : Network Design Document support class for Fixed Telecommunications Network (FTN) data model.
- AgcfEndpoint (Ia.Ftn.Cl.Model.Data.Nokia) : AGCF Endpoint support class for Nokia data model.
- AgcfGatewayRecord (Ia.Ftn.Cl.Model.Data.Nokia) : AGCF Gateway Records support class for Nokia data model.
- AmsTransaction (Ia.Ftn.Cl.Model.Data.Nokia) : Nokia AmsTransaction Entity Framework class for Fixed Telecommunications Network (FTN) data model.
- Ams (Ia.Ftn.Cl.Model.Data.Nokia) : Access Management System (AMS) support class for Nokia data model.
- Default (Ia.Ftn.Cl.Model.Data.Nokia) : Defaul general support class for Nokia's Fixed Telecommunications Network (FTN) data model.
- Ims (Ia.Ftn.Cl.Model.Data.Nokia) : Fixed Telecommunications Network's Operations Support System Management Intranet (FTN OSS) support class for Nokia's Fixed Telecommunications Network (FTN) data model.
- OntOntPots (Ia.Ftn.Cl.Model.Data.Nokia) : ONT-ONTPOTS support class for Fixed Telecommunications Network (FTN) Nokia data model.
- OntServiceHsi (Ia.Ngn.Cl.Model.Data.Nokia) : ONT-SERVICEHSI support class for Next Generation Network (NGN) Nokia data model.
- OntServiceVoip (Ia.Ftn.Cl.Model.Data.Nokia) : ONT-SERVICEVOIP support class for Fixed Telecommunications Network (FTN) Nokia data model.
- Ont (Ia.Ftn.Cl.Model.Data.Nokia) : ONT support class for Fixed Telecommunications Network (FTN) Nokia data model.
- Sdc (Ia.Ftn.Cl.Model.Data.Nokia) : Fixed Telecommunications Network's Operations Support System Management Intranet (FTN OSS) support class for Nokia's Fixed Telecommunications Network (FTN) data model.
- SubParty (Ia.Ftn.Cl.Model.Data.Nokia) : SubParty support class for Nokia's Fixed Telecommunications Network (FTN) data model.
- Subscriber (Ia.Ftn.Cl.Model.Data.Nokia) : Subscriber Entity Framework class for Fixed Telecommunications Network (FTN) data model.
- Pots (Ia.Ftn.Cl.Model.Data) : POTS legacy support class for Fixed Telecommunications Network (FTN) data model.
- Provision (Ia.Ftn.Cl.Model.Data) : Provision support class for Fixed Telecommunications Network (FTN) data model.
- ReportHistory (Ia.Ftn.Cl.Model.Data) : Report History support class for Fixed Telecommunications Network (FTN) data model.
- Report (Ia.Ftn.Cl.Model.Data) : Report support class for Fixed Telecommunications Network (FTN) data model.
- Secretary (Ia.Ftn.Cl.Model.Data) : Secretary support class of Fixed Telecommunications Network (FTN) data model.
- ServiceExemption (Ia.Ftn.Cl.Model.Data) : ServiceExemption Framework class for Fixed Telecommunications Network (FTN) data model.
- ServiceInitialState (Ia.Ngn.Cl.Model.Data) : Service Initial State Framework class for Next Generation Network (NGN) data model.
- ServiceRequestAdministrativeIssue (Ia.Ftn.Cl.Model.Data) : Service Request Administrative Issue support class for Fixed Telecommunications Network (FTN) data model.
- ServiceRequestHistory (Ia.Ftn.Cl.Model.Data) : Service Request History support class for Fixed Telecommunications Network (FTN) data model.
- ServiceRequestHsi (Ia.Ngn.Cl.Model.Data) : Service Request Hsi support class for Next Generation Network (NGN) data model.
- ServiceRequestOntDetail (Ia.Ftn.Cl.Model.Data) : Service Request Ont Detail support class for Fixed Telecommunications Network (FTN) data model.
- ServiceRequestOnt (Ia.Ftn.Cl.Model.Data) : Service Request Ont support class for Fixed Telecommunications Network (FTN) data model.
- ServiceRequestService (Ia.Ftn.Cl.Model.Data) : Service Request Service support class for Fixed Telecommunications Network (FTN) data model.
- ServiceRequestType (Ia.Ftn.Cl.Model.Data) : Service Request Type support class for Fixed Telecommunications Network (FTN) data model.
- ServiceRequest (Ia.Ftn.Cl.Model.Data) : Service Request support class for Fixed Telecommunications Network (FTN) data model.
- Service (Ia.Ftn.Cl.Model.Data) : Service support class for Fixed Telecommunications Network (FTN) data model.
- Service2 (Ia.Ftn.Cl.Model.Data) : Service support class for Fixed Telecommunications Network (FTN) data model.
- Ewsd (Ia.Ftn.Cl.Model.Data.Siemens) : Nokia's Siemens EWSD support class of Fixed Telecommunications Network (FTN) data model.
- Subscriber (Ia.Ftn.Cl.Model.Data.Siemens) : EWSD Subscriber support class for Fixed Telecommunications Network (FTN) data model.
- Staff (Ia.Ftn.Cl.Model.Data) : Staff support class for Fixed Telecommunications Network (FTN) data model.
- Transaction (Ia.Ftn.Cl.Model.Data) : Transaction support class for Fixed Telecommunications Network (FTN) data model.
- Access (Ia.Ftn.Cl.Model) : Access Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- Contact (Ia.Ftn.Cl.Model) : Contact Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- AxeSubscriber (Ia.Ftn.Cl.Model.Ericsson) : AXE Subscriber Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- Event (Ia.Ftn.Cl.Model) : Event Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- Asbr (Ia.Ftn.Cl.Model.Huawei) : Huawei's AGCF Users (ASBR) Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- EmsBoard (Ia.Ftn.Cl.Model.Huawei) : Huawei's EMS Board Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- EmsDev (Ia.Ftn.Cl.Model.Huawei) : Huawei's EMS Dev Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- Mgw (Ia.Ftn.Cl.Model.Huawei) : Huawei's Media Gateway (MGW) Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- Msan (Ia.Ngn.Cl.Model.Huawei) : Huawei's Msan Entity Framework class for Next Generation Network (NGN) entity model.
- EmsOntSipInfo (Ia.Ftn.Cl.Model.Huawei) : Huawei's EMS ONT SIP INFO Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- EmsOnt (Ia.Ftn.Cl.Model.Huawei) : Huawei's EMS Ont Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- Onu (Ia.Ngn.Cl.Model.Huawei) : Huawei's ONU Entity Framework class for Next Generation Network (NGN) entity model.
- Owsbr (Ia.Ftn.Cl.Model.Huawei) : Huawei's Owsbr Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- EmsPort (Ia.Ftn.Cl.Model.Huawei) : Huawei's EMS Port Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- Sbr (Ia.Ftn.Cl.Model.Huawei) : Huawei's Sbr Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- Seruattr (Ia.Ftn.Cl.Model.Huawei) : SERUATTR Signaling Service Processing System (SPS) support class for Huawei's Fixed Telecommunications Network (FTN) entity model.
- EmsVag (Ia.Ftn.Cl.Model.Huawei) : Huawei's EMS VAG Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- EmsVoipPstnUser (Ia.Ftn.Cl.Model.Huawei) : Huawei's EMS VOIP PSTN User Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- Inventory (Ia.Ftn.Cl.Model) : Inventory Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- LogicalCircuit (Ia.Ngn.Cl.Model) : Logical-Circuit Entity Framework class for Next Generation Network (NGN) entity model.
- Miscellaneous (Ia.Ftn.Cl.Model) : Miscellaneous Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- NddPon (Ia.Ngn.Cl.Model.NetworkDesignDocument) : Network Design Document support class for Next Generation Network (NGN) entity model.
- AgcfEndpoint (Ia.Ftn.Cl.Model.Nokia) : AGCF Endpoint Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- AgcfGatewayRecord (Ia.Ftn.Cl.Model.Nokia) : AGCF Gateway Record Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- AlInitialInstallation (Ia.Ngn.Cl.Model.AlcatelLucent) : Alcatel-Lucent Initial Installation Entity Framework class for Next Generation Network (NGN) entity model.
- AmsTransaction (Ia.Ftn.Cl.Model.Nokia) : Nokia AmsTransaction Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- SubParty (Ia.Ftn.Cl.Model.Nokia) : SubParty Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- Subscriber (Ia.Ftn.Cl.Model.Nokia) : Subscriber Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- OntOntPots (Ia.Ftn.Cl.Model) : ONT-ONTPOTS Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- OntServiceHsi (Ia.Ngn.Cl.Model) : ONT-SERVICEHSI Entity Framework class for Next Generation Network (NGN) entity model.
- OntServiceVoip (Ia.Ftn.Cl.Model) : ONT-SERVICEVOIP Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- Ont (Ia.Ftn.Cl.Model) : ONT Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- ReportHistory (Ia.Ftn.Cl.Model) : Report History Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- Report (Ia.Ftn.Cl.Model) : Report Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- ServiceExemption (Ia.Ftn.Cl.Model) : ServiceExemption Framework class for Fixed Telecommunications Network (FTN) entity model.
- ServiceInitialState (Ia.Ngn.Cl.Model) : Service Initial State Entity Framework class for Next Generation Network (NGN) entity model.
- ServiceRequestAdministrativeIssue (Ia.Ftn.Cl.Model) : Service Request Administrative Issue Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- ServiceRequestHistory (Ia.Ftn.Cl.Model) : Service Request History Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- ServiceRequestHsi (Ia.Ngn.Cl.Model) : Service Request Hsi Entity Framework class for Next Generation Network (NGN) entity model.
- ServiceRequestOntDetail (Ia.Ftn.Cl.Model) : Service Request Ont Detail Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- ServiceRequestOnt (Ia.Ftn.Cl.Model) : Service Request Ont Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- ServiceRequestService (Ia.Ftn.Cl.Model) : Service Request Service Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- ServiceRequestType (Ia.Ftn.Cl.Model) : Service Request Type Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- ServiceRequest (Ia.Ftn.Cl.Model) : Service Request Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- Service2 (Ia.Ftn.Cl.Model) : Service Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- EwsdSubscriber (Ia.Ftn.Cl.Model.Siemens) : EWSD Subscriber Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- Staff (Ia.Ftn.Cl.Model) : Staff Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- Transaction (Ia.Ftn.Cl.Model) : Transaction Entity Framework class for Fixed Telecommunications Network (FTN) entity model.
- Chat (Ia.Ftn.Cl.Model.Telegram) : Telegram Chat/Group/User support class of Fixed Telecommunications Network (FTN) business and data model.
- Access (Ia.Ftn.Cl.Model.Ui) : Access support class for Fixed Telecommunications Network (FTN) ui model.
- Default (Ia.Ftn.Cl.Model.Ui.Administration) : Administration support class for Fixed Telecommunications Network (FTN) ui model.
- Framework (Ia.Ftn.Cl.Model.Ui.Administration) : Network Design Document support class for Fixed Telecommunications Network (FTN) UI model.
- Default (Ia.Ftn.Cl.Model.Ui) : Default support class for Fixed Telecommunications Network (FTN) ui model.
- Subscriber (Ia.Ftn.Cl.Model.Ui.Ericsson) : AXE Subscriber Entity Framework class for Fixed Telecommunications Network (FTN) UI model.
- EmsOnt (Ia.Ftn.Cl.Model.Ui.Huawei) : Huawei's EMS Ont Entity Framework class for Fixed Telecommunications Network (FTN) UI model.
- Sbr (Ia.Ftn.Cl.Model.Ui.Huawei) : Huawei's Sbr Entity Framework class for Fixed Telecommunications Network (FTN) UI model.
- InventoryForDataGridView (Ia.Ftn.Cl.Model.Ui) : Inventory For DataGridView support class for Fixed Telecommunications Network (FTN) ui model.
- Mail (Ia.Ftn.Cl.Model.Ui) : Mail process support class of Fixed Telecommunications Network (FTN) UI model.
- AccessFamilyTypeAreaBlock (Ia.Ftn.Cl.Model.Ui.Maintenance) : Maintenance support class for Fixed Telecommunications Network (FTN) ui model.
- Find (Ia.Ftn.Cl.Model.Ui.Maintenance) : Find subscriber and network information support class for the Fixed Telecommunications Network ui model
- Ams (Ia.Ftn.Cl.Model.Ui.Maintenance.Transaction) : Ams support class for Fixed Telecommunications Network (FTN) ui model.
- Default (Ia.Ftn.Cl.Model.Ui.Maintenance.Report) : Maintenance Report data support class for the Fixed Telecommunications Network ui model
- NetworkDesignDocument (Ia.Ftn.Cl.Model.Ui) : Network Design Document support class for Fixed Telecommunications Network (FTN) UI model.
- AgcfEndpoint (Ia.Ftn.Cl.Model.Ui.Nokia) : AGCF Endpoint Entity Framework class for Fixed Telecommunications Network (FTN) ui model.
- AgcfGatewayRecord (Ia.Ftn.Cl.Model.Ui.Nokia) : AGCF Gateway Record Entity Framework class for Fixed Telecommunications Network (FTN) UI model.
- SubParty (Ia.Ftn.Cl.Model.Ui.Nokia) : SubParty Entity Framework class for Fixed Telecommunications Network (FTN) ui model.
- Subscriber (Ia.Ftn.Cl.Model.Ui.Nokia) : Subscriber Entity Framework class for Fixed Telecommunications Network (FTN) ui model.
- Performance (Ia.Ftn.Cl.Model.Ui) : Performance support class for Fixed Telecommunications Network (FTN) ui model.
- Access (Ia.Ftn.Cl.Model.Ui.Provision) : Access support class for Fixed Telecommunications Network (FTN) ui model.
- ReportAccessServiceRequest (Ia.Ftn.Cl.Model.Ui) : Report Access Service Request support class for Fixed Telecommunications Network (FTN) ui model.
- Report (Ia.Ftn.Cl.Model.Ui) : Report support class for Fixed Telecommunications Network (FTN) ui model.
- ServiceAccessFlatTermId (Ia.Ftn.Cl.Model.Ui) : ServiceAccessFlatTermId support class for Fixed Telecommunications Network (FTN) ui model.
- ServiceCustomerAddressAccessStatisticalAccessName (Ia.Ftn.Cl.Model.Ui) : ServiceRequest ServiceRequestService Access Statistic support class for Fixed Telecommunications Network (FTN) ui model.
- ServiceRequestAdministrativeIssue (Ia.Ftn.Cl.Model.Ui) : Service Request Administrative Issue Entity Framework class for Fixed Telecommunications Network (FTN) UI model.
- ServiceRequestService (Ia.Ftn.Cl.Model.Ui) : Service Request Service Entity Framework class for Fixed Telecommunications Network (FTN) UI model.
- Service2 (Ia.Ftn.Cl.Model.Ui) : Service class for Fixed Telecommunications Network (FTN) UI model.
- Subscriber (Ia.Ftn.Cl.Model.Ui.Siemens) : EWSD Subscriber Entity Framework class for Fixed Telecommunications Network (FTN) UI model.
- Text (Ia.Ftn.Cl.Model.Ui) : Text support class for Fixed Telecommunications Network (FTN) ui model.
- Administration (Ia.Ftn.Wa.Model.Business) : Administration support class for Fixed Telecommunications Network (FTN) web application (Intranet) model.
- Contact (Ia.Ftn.Wa.Model.Business) : Contact support class for Fixed Telecommunications Network (FTN) web application (Intranet) model.
- Default (Ia.Ftn.Wa.Model.Business) : Administration support class for Fixed Telecommunications Network (FTN) web application (Intranet) model.
- Script (Ia.Ftn.Wa.Model.Business.Maintenance) : Script support class for Fixed Telecommunications Network (FTN) web application (Intranet) model.
- AccessController (Ia.Ngn.Ofn.Wa.Api.Model.Controller) : Access API Controller class of Optical Fiber Network (OFN) model.
- EncryptionController (Ia.Ngn.Ofn.Wa.Api.Controller.Cryptography) : Cryptography, Encryption Controller
- Default2Controller (Ia.Ftn.Wa.Api.Model.Controller) : Default API Controller class of Optical Fiber Network (OFN) model.
- MaintenanceController (Ia.Ngn.Ofn.Wa.Api.Model.Controller) : Maintenance API Controller class of Optical Fiber Network (OFN) model.
- ServiceRequestAdministrativeIssueController (Ia.Ngn.Ofn.Wa.Api.Model.Controller) : Service Request Administrative Issue API Controller class of Optical Fiber Network (OFN) model.
- ServiceRequestTypeController (Ia.Ngn.Ofn.Wa.Api.Model.Controller) : Service Request Type API Controller class of Optical Fiber Network (OFN) model.
- ServiceRequestController (Ia.Ngn.Ofn.Wa.Api.Model.Controller) : Service Request API Controller class of Optical Fiber Network (OFN) model.
- ServiceController (Ia.Ngn.Ofn.Wa.Api.Model.Controller) : Service API Controller class of Optical Fiber Network (OFN) model.
- Administration (Ia.Ftn.Wa.Model.Data) : Administration support class for Fixed Telecommunications Network (FTN) web application (Intranet) model.
- Script (Ia.Ftn.Wa.Model.Data) : Script support class for Fixed Telecommunications Network (FTN) web application (Intranet) model.
- Default (Ia.Ftn.Wa.Model.Ui) : Default support class for Fixed Telecommunications Network (FTN) web application (Intranet) model.
- Mouse (Ia.Cl.Model) : Windows mouse movements and properties control support class.
- Winapi (Ia.Cl.Model) : WINAPI click events support class.
- Agent (Ia.Cl.Model) : Agent model
- ApplicationConfiguration (Ia.Cl.Model) : Webhook API Controller class.
- Authentication (Ia.Cl.Model) : Manage and verify user logging and passwords. The administrator will define the user's password and logging website. The service will issue a true of false according to authentication.
- Storage (Ia.Cl.Models.Azure) : Azure Cloud related support functions.
- Default (Ia.Cl.Models.Business.Nfc) : Default NFC Near-Field Communication (NFC) Support Business functions
- Inventory (Ia.Cl.Models.Business.Nfc) : Inventory NFC Near-Field Communication (NFC) Support Business functions
- Tag (Ia.Cl.Models.Business.Nfc) : TAG NFC Near-Field Communication (NFC) Support Business functions
- Country (Ia.Cl.Model) : Country geographic coordinates and standard UN naming conventions.
- Germany (Ia.Cl.Model) : German cities and states.
- Kuwait (Ia.Cl.Model) : Kuwait provinces, cities, and areas.
- SaudiArabia (Ia.Cl.Model) : Saudi Arabia provinces, cities, and areas.
- Encryption (Ia.Cl.Models.Cryptography) : Symmetric Key Algorithm (Rijndael/AES) to encrypt and decrypt data.
- Default (Ia.Cl.Models.Data) : Support class for data model
- Default (Ia.Cl.Models.Data.Nfc) : Default NFC Near-Field Communication (NFC) Support Data functions
- Inventory (Ia.Cl.Models.Data.Nfc) : Inventory NFC Near-Field Communication (NFC) Support Data functions
- Project (Ia.Cl.Models.Nfc.Data) : Project Support class for NFC data model
- Tag (Ia.Cl.Models.Data.Nfc) : TAG NFC Near-Field Communication (NFC) Support Data functions
- Default (Ia.Cl.Models.Db) : Database support class.
- Msmq (Ia.Cl.Models.Db) : MSMQ Database support class. This handles storing and retrieving MSMQ storage.
- MySql (Ia.Model.Db) : MySQL supporting class.
- Object (Ia.Cl.Models.Db) : Object entity class
- Odbc (Ia.Cl.Models.Db) : ODBC support class.
- OleDb (Ia.Cl.Models.Db) : OLEDB support class
- Oracle (Ia.Cl.Models.Db) : Oracle support class.
- Sqlite (Ia.Cl.Models.Db) : SQLite support class.
- SqlServer (Ia.Cl.Models.Db) : SQL Server support class.
- SqlServerCe (Ia.Cs.Db) : SQL Server CE support class.
- Temp (Ia.Cl.Models.Db) : Temporary Storage support class.
- Text (Ia.Cl.Models.Db) : Text Database support class. This handles storing and retrieving text storage.
- Xml (Ia.Cl.Models.Db) : XML Database support class. This handles storing and retrieving XDocument storage.
- Default (Ia.Cl.Model) : General use static class of common functions used by most applications.
- Gv (Ia.Model.Design) : ASP.NET design related support class.
- Enumeration () : Enumeration class. Extends enumeration to class like behaviour.
- Extention () : Extention methods for different class objects.
- File (Ia.Cl.Model) : File manipulation related support class.
- Ftp (Ia.Cl.Model) : A wrapper class for .NET 2.0 FTP
- Location (Ia.Cl.Models.Geography) : Geographic location related function, location, coordinates (latitude, longitude), bearing, degree and radian conversions, CMap value for resolution, and country geographic info-IP from MaxMind.
- GeoIp (Ia.Cl.Model) : GeoIp class of Internet Application project model.
- Gmail (Ia.Cl.Model) : Gmail API support class
- StaticMap (Ia.Cl.Models.Google) : Google support class.
- Drive (Ia.Cl.Models.Google) : Google Drive Directory and File support class.
- Heartbeat (Ia.Cl.Model) : Heartbeat class.
- Hijri (Ia.Cl.Model) : Hijri date handler class.
- HtmlHelper (Ia.Cl.Model) : HtmlHelper for ASP.Net Core.
- Html (Ia.Cl.Model) : Handle HTML encoding, decoding functions.
- Http (Ia.Cl.Model) : Contains functions that relate to posting and receiving data from remote Internet/Intranet pages
- Identity (Ia.Cl.Model) : ASP.NET Identity support class.
- Image (Ia.Cl.Model) : Image processing support class.
- Imap (Ia.Cl.Model) : IMAP support class.
- Language (Ia.Cl.Model) : Language related support class including langauge list and codes.
- Individual (Ia.Cl.Models.Life) : Individual object.
- Main (Ia.Cl.Models.Life) : General base class for life entities. Make it link through delegates to create and update database objects.
- Log (Ia.Cl.Model) : Log file support class.
- Mouse (Ia.Cl.Model) : Windows mouse movements and properties control support class.
- Msmq (Ia.Cl.Model) : MSMQ (Microsoft Message Queuing) Support class.
- Newspaper (Ia.Cl.Model) : Newspaper and publication display format support class.
- Inventory (Ia.Cl.Models.Nfc) : Inventory NFC Near-Field Communication (NFC) Support Entity functions
- Tag (Ia.Cl.Models.Nfc) : TAG NFC Near-Field Communication (NFC) Support Entity functions
- Ocr (Ia.Cl.Model) : Handles OCR operations.
- Packet (Ia.Cl.Model) : Packet model
- PrayerTime (Ia.Cl.Model) : Prayer times support class.
- Punycode (Ia.Cl.Model) : Punycode support class.
- QrCode (Ia.Cl.Model) : QR Code support class.
- Result (Ia.Cl.Model) : Result support class.
- Seo (Ia.Cl.Model) : Search Engine Optimization (SEO) support class.
- DynamicSiteMapProvider () : Sitemap support class.
- Sms (Ia.Cl.Model) : SMS API service support class. Handles sending and recieving SMS messages through the ClickATell.com SMS API Service gateway. Requires subscription.
- Smtp (Ia.Cl.Model) : SMTP send mail server suppot class.
- Socket (Ia.Cl.Model) : Search Engine Optimization (SEO) support class.
- Sound (Ia.Cl.Model) : Sound support class.
- Stopwatch (Ia.Cl.Model) : Stopwatch model
- TagHelper (Ia.Cl.Models.T) : TagHelper for ASP.Net Core.
- Telnet (Ia.Cl.Model) : Telnet communication support class.
- Trace (Ia.Cl.Model) : Trace function to try to identifiy a user using IP addresses, cookies, and session states.
- Default (Ia.Cl.Models.Ui) : Default support UI class
- Upload (Ia.Cl.Model) : Handle file uploading functions.
- Utf8 (Ia.Cl.Model) : Handle UTF8 issues.
- Weather (Ia.Cl.Model) : Weather class
- Winapi (Ia.Cl.Model) : WINAPI click events support class.
- Word (Ia.Cl.Model) : Word object.
- Twitter (Ia.Cl.Model) : Twitter API support class.
- Xml (Ia.Cl.Model) : XML support class.
- Zip (Ia.Cl.Model) : Zip
- Business (Ia.Islamic.Koran.Belief.Model) : Koran Reference Network support functions: Business model
- Default (Ia.Islamic.Cl.Model.Business) : Koran Reference Network Class Library support functions: Business model
- PrayerTime (Ia.Islamic.Koran.Cl.Model.Business) : Prayer Time Business class of Islamic Koran Reference Network project model.
- Word (Ia.Islamic.Cl.Model.Business) : Koran Reference Network Class Library support functions: business model
- DefaultController (Ia.Ngn.Cl.Model.Api.Controller) : Service Suspension API Controller class of Next Generation Network'a (NGN's) model.
- KoranController (Ia.Islamic.Koran.Cl.Model.Api.Controller) : Koran API Controller class of Islamic Koran Reference Network project model.
- PrayerTimeController (Ia.Islamic.Koran.Cl.Model.Api.Controller) : Prayer Time API Controller class of Islamic Koran Reference Network project model.
- Chapter (Ia.Islamic.Cl.Model.Data) : Koran Reference Network Class Library support functions: data model
- Default (Ia.Islamic.Cl.Model.Data) : Koran Reference Network Class Library support functions: Data model
- Koran (Ia.Islamic.Cl.Model.Data) : Koran Reference Network Class Library support functions: data model
- VerseTopic (Ia.Islamic.Cl.Model.Data) : Koran Reference Network Class Library support functions: data model
- Verse (Ia.Islamic.Cl.Model.Data) : Koran Reference Network Class Library support functions: data model
- Koran (Ia.Islamic.Cl.Model.Context) : Koran Reference Network Data Context
- Ef (Ia.Cl.Model) : Entity Framework support function
- Chapter (Ia.Islamic.Cl.Model) : Chapter Koran Reference Network Class Library support functions: Entity model
- Koran (Ia.Islamic.Cl.Model) : Koran Koran Reference Network Class Library support functions: Entity model
- VerseTopic (Ia.Islamic.Cl.Model) : VerseTopic Koran Reference Network Class Library support functions: Entity model
- Verse (Ia.Islamic.Cl.Model) : Verse Koran Reference Network Class Library support functions: Entity model
- WordVerse (Ia.Islamic.Cl.Model) : WordVerse Koran Reference Network Class Library support functions: Entity model
- Word (Ia.Islamic.Cl.Model) : Word Koran Reference Network Class Library support functions: Entity model
- Translation (Ia.Islamic.Cl.Model) : Koran Reference Network Class Library support functions: Data model
- VerseTopicUi (Ia.Islamic.Cl.Model.Ui) : Koran Reference Network Class Library support functions: UI model
- Default (Ia.Islamic.Koran.Wa.Model.Ui) : Koran Reference Network Class Library support functions: UI model
- Default (Ia.Islamic.Koran.Wfa.Model.Business) : Koran Reference Network Windows Form support functions: Business model
- Preparation (Ia.Islamic.Koran.Wfa.Model.Business) : Koran Reference Network Windows Form support functions: Business model
- Default (Ia.Islamic.Koran.Wfa.Model.Data) : Koran Reference Network Windows Form support functions: Data model
- Kanji (Ia.Learning.Cl.Model.Business) : Kanji business support class
- Kanji (Ia.Learning.Cl.Model.Data) : Kanji support class
- Default (Ia.Learning.Cl.Model) : Default data support functions
- MoeBook (Ia.Learning.Cl.Model) : Ministry of Education Books support class for Learning data model.
- Business (Ia.Learning.Kafiya.Model) : Default business support class.
- Data (Ia.Learning.Kafiya.Model) : Default data support class.
- Default (Ia.Learning.Kanji.Model.Business) : Default business support class.
- Default (Ia.Learning.Kanji.Model.Ui) : Default UI support class.
- Newspaper (Ia.Cl.Model) : Newspaper and publication display format support class.
- Default (Ia.Statistics.Cl.Model.Boutiqaat) : Structure of the boutiqaat.com website.
- Default (Ia.Statistics.Cl.Model.Dabdoob) : Structure of the dabdoob.com website.
- Default (Ia.Statistics.Cl.Model.EnglishBookshop) : Structure of the theenglishbookshop.com website.
- Default (Ia.Statistics.Cl.Model.FantasyWorldToys) : Structure of the fantasyworldtoys.com website.
- Default (Ia.Statistics.Cl.Model.HsBookstore) : Structure of the hsbookstore.com website.
- Default (Ia.Statistics.Cl.Model.LuluHypermarket) : Structure of the lulutypermarket.com website.
- Default (Ia.Statistics.Cl.Model.Natureland) : Structure of the natureland.net website.
- Site (Ia.Statistics.Cl.Model) : Site support class for Optical Fiber Network (OFN) data model.
- Default (Ia.Statistics.Cl.Model.SultanCenter) : Structure of the sultan-center.com website.
- Default (Ia.Statistics.Cl.Model.Taw9eel) : Structure of the taw9eel.com website.
- Default (Ia.TentPlay.Cl.Model.Business) : Support class for TentPlay business model
- Default (Ia.TentPlay.Cl.Model.Business.Trek) : Support class for TentPlay Trek business model
- FeatureClassDistanceToCapital (Ia.TentPlay.Cl.Model.Business.Trek) : FeatureClassDistanceToCapital Support class for TentPlay business model
- FeatureClass (Ia.TentPlay.Cl.Model.Business.Trek) : FeatureClass Support class for TentPlay Trek business model
- FeatureDesignation (Ia.TentPlay.Cl.Model.Business.Trek) : FeatureClass Support class for TentPlay Trek business model
- FeatureName (Ia.TentPlay.Cl.Model.Business.Trek) : Support class for TentPlay Trek business model
- Feature (Ia.TentPlay.Cl.Model.Business.Trek) : Feature class for TentPlay Trek business model
- CompanyInformation (Ia.TentPlay.Cl.Model.Data) : CompanyInformation Support class for TentPlay data model
- Default (Ia.TentPlay.Cl.Model.Data) : Support class for TentPlay data model
- ApplicationInformation (Ia.TentPlay.Cl.Model.Data.Trek) : ApplicationInformation Support class for TentPlay Trek data model
- Default (Ia.TentPlay.Cl.Model.Data.Trek) : Default class for TentPlay Trek data model
- FeatureClass (Ia.TentPlay.Cl.Model.Data.Trek) : FeatureClass Support class for TentPlay Trek business model
- FeatureDesignation (Ia.TentPlay.Cl.Model.Data.Trek) : FeatureDesignation Support class for TentPlay Trek data model
- Feature (Ia.TentPlay.Cl.Model.Data.Trek) : Feature Support class for TentPlay entity data
- NgaCountryWaypoint (Ia.TentPlay.Waypoint.Cl.Model.Data) : NgaCountryWaypoint Support class for TentPlay Waypoint entity data
- Score (Ia.TentPlay.Cl.Model.Memorise) : Score entity functions
- FeatureDesignation (Ia.TentPlay.Cl.Model.Trek) : FeatureDesignation Support class for TentPlay Trek entity model
- Feature (Ia.TentPlay.Cl.Model.Trek) : Feature Support class for TentPlay entity model
- ApplicationInformation (Ia.TentPlay.Cl.Model.Memorise) : ApplicationInformation Support class for TentPlay Memorise model
- Default (Ia.TentPlay.Cl.Model.Memorise) : Default class for TentPlay Memorise data model
- German (Ia.TentPlay.Cl.Model.Memorise) : German class
- Kana (Ia.TentPlay.Cl.Model.Memorise) : Kana class
- Kanji (Ia.TentPlay.Cl.Model.Memorise) : Kanji class
- Math (Ia.TentPlay.Cl.Model.Memorise) : Math Class
- MorseCode (Ia.TentPlay.Cl.Model.Memorise) : Morse code class
- PhoneticAlphabet (Ia.TentPlay.Cl.Model.Memorise) : Phonetic Alphabet
- Russian (Ia.TentPlay.Cl.Model.Memorise) : Russian class
- Test (Ia.TentPlay.Cl.Model.Memorise) : Test Class
- Default (Ia.TentPlay.Cl.Model.Ui.Trek) : Default class for TentPlay Trek UI model