Public general use code classes and xml files that we've compiled and used over the years:
Huawei's EMS VOIP PSTN User support class of Fixed Telecommunications Network (FTN) data model.
1: using Microsoft.EntityFrameworkCore;
2: using System;
3: using System.Collections.Generic;
4: using System.Data;
5: using System.Linq;
6: using System.Text;
7:
8: namespace Ia.Ftn.Cl.Model.Data.Huawei
9: {
10: ////////////////////////////////////////////////////////////////////////////
11:
12: /// <summary publish="true">
13: /// Huawei's EMS VOIP PSTN User support class of Fixed Telecommunications Network (FTN) data model.
14: /// </summary>
15: ///
16: /// <remarks>
17: /// Copyright © 2017-2022 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
18: ///
19: /// This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
20: /// the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
21: ///
22: /// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
23: /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
24: ///
25: /// You should have received a copy of the GNU General Public License along with this library. If not, see http://www.gnu.org/licenses.
26: ///
27: /// Copyright notice: This notice may not be removed or altered from any source distribution.
28: /// </remarks>
29: public class VoipPstnUser
30: {
31: /// <summary/>
32: public VoipPstnUser() { }
33:
34: ////////////////////////////////////////////////////////////////////////////
35:
36: /// <summary>
37: ///
38: /// </summary>
39: public static bool Update(Ia.Ftn.Cl.Model.Business.Huawei.Ems.Response response, out Ia.Cl.Models.Result result)
40: {
41: bool isUpdated;
42: int did, queryFn, querySn, queryPn, readItemCount, existingItemCount, insertedItemCount, updatedItemCount, deletedItemCount, fn, sn, pn;
43: string id, queryCommand, queryDev, dn, nddOntIdOrMsanDevId;
44: DataColumnCollection columns;
45: DataRow columnDataRow;
46: Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Ont nddOnt;
47: Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser voipPstnUser, newVoipPstnUser;
48: Ia.Ftn.Cl.Model.Huawei.EmsOnt emsOnt;
49: Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type emsDevType;
50: List<string> itemIdList;
51: List<Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser> voipPstnUserList;
52:
53: isUpdated = false;
54: readItemCount = existingItemCount = insertedItemCount = updatedItemCount = deletedItemCount = 0;
55:
56: result = new Ia.Cl.Models.Result(); // remove initially then add to test all return paths
57:
58: queryCommand = response.CommandFromCorrelationTagDictionaryByCtag;
59:
60: //queryCommand = "LST-VOIPPSTNUSER::DEV=ARD_MSAN_Cabinet 1_Frame 0,FN=0,SN=2,PN=0:{ctag}::;";
61: //queryCommand = "LST-VOIPPSTNUSER::DEV=SAB_MSAN_Cabinet 4_Frame 0,FN=0,SN=3,PN=58:{ctag}::;";
62:
63: // LST-VOIPPSTNUSER::DEV=MDU-JBA-943-002,FN=0,SN=3,PN=10:{ctag}::;
64: // LST-VOIPPSTNUSER::DEV=ARD_MSAN_Cabinet 1_Frame 0,FN=0,SN=2,PN=0:{ctag}::;
65: queryDev = Ia.Cl.Models.Default.Match(queryCommand, @"DEV=(.+?),");
66: queryFn = int.Parse(Ia.Cl.Models.Default.Match(queryCommand, @"FN=(\d+)"));
67: querySn = int.Parse(Ia.Cl.Models.Default.Match(queryCommand, @"SN=(\d+)"));
68: queryPn = int.Parse(Ia.Cl.Models.Default.Match(queryCommand, @"PN=(\d+)"));
69:
70: using (var db = new Ia.Ftn.Cl.Model.Db())
71: {
72: if (response.CompletionCode == "COMPLD")
73: {
74: emsDevType = Ia.Ftn.Cl.Model.Data.Huawei.Dev.ReadTypeByDev(queryDev);
75:
76: if (emsDevType == Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type.Mdu || emsDevType == Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type.Msan)
77: {
78: if (emsDevType == Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type.Mdu)
79: {
80: nddOnt = Ia.Ftn.Cl.Model.Business.Default.NddOntFromHuaweiEmsAccessNameFormat(queryDev);
81:
82: if (nddOnt != null)
83: {
84: emsOnt = (from eo in db.EmsOnts where eo.Id == nddOnt.Id select eo).SingleOrDefault();
85:
86: if (emsOnt != null)
87: {
88: // this should always give a single value or none
89: voipPstnUserList = (from evpu in db.EmsVoipPstnUsers
90: where evpu.EmsOnt != null && evpu.EmsOnt.Id == emsOnt.Id && evpu.SN == querySn && evpu.PN == queryPn
91: select evpu).ToList();
92:
93: nddOntIdOrMsanDevId = nddOnt.Id;
94: }
95: else
96: {
97: voipPstnUserList = null;
98: nddOntIdOrMsanDevId = string.Empty;
99:
100: result.AddWarning("EmsOnt is null for ont.Access.Name: " + nddOnt.Access.Name);
101: }
102: }
103: else
104: {
105: voipPstnUserList = null;
106: nddOntIdOrMsanDevId = string.Empty;
107: }
108: }
109: else //if (emsDevType == Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type.Msan)
110: {
111: var msanDev = (from m in Ia.Ftn.Cl.Model.Data.Huawei.Default.MsanDevList
112: where m.Dev == queryDev
113: select m).SingleOrDefault();
114:
115: nddOntIdOrMsanDevId = (msanDev != null) ? msanDev.Id : string.Empty;
116:
117: voipPstnUserList = (from evpu in db.EmsVoipPstnUsers
118: where evpu.EmsOnt == null && evpu.Id.StartsWith(nddOntIdOrMsanDevId) && evpu.SN == querySn && evpu.PN == queryPn
119: select evpu).ToList();
120: }
121:
122: if (voipPstnUserList != null)
123: {
124: existingItemCount = voipPstnUserList.Count;
125:
126: if (response.QueryDataTable != null)
127: {
128: if (response.QueryDataTable.Rows.Count >= 1)
129: {
130: itemIdList = new List<string>(response.QueryDataTable.Rows.Count + 1);
131:
132: columns = response.QueryDataTable.Columns;
133: readItemCount = response.QueryDataTable.Rows.Count;
134:
135: columnDataRow = response.QueryDataTable.Rows[0];
136:
137: foreach (DataRow dataRow in response.QueryDataTable.Rows)
138: {
139: did = int.Parse(dataRow[columns.IndexOf("DID")].ToString());
140: fn = int.Parse(dataRow[columns.IndexOf("FN")].ToString());
141: sn = int.Parse(dataRow[columns.IndexOf("SN")].ToString());
142: pn = int.Parse(dataRow[columns.IndexOf("PN")].ToString());
143:
144: dn = columns.Contains("DN") ? dataRow[columns.IndexOf("DN")].ToString() : string.Empty;
145:
146: if (dn != "--") // "--" means empty
147: {
148: if (pn == queryPn && sn == querySn)
149: {
150: // I'll check that the records are for a real 11 digit number, otherwise we will not send it to the database
151: // for MDUs numbers will look like 96524805054
152: // for MSAN numbers will look like +96524805054
153: //if (
154: // Ia.Ftn.Cl.Model.Business.NumberFormatConverter.IsMatchToServiceWithCountryCode(dn) && emsDevType == Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type.Mdu
155: // ||
156: // Ia.Ftn.Cl.Model.Business.NumberFormatConverter.IsMatchToImpuAid(dn) && emsDevType == Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type.Msan
157: // )
158: //{
159: id = Ia.Ftn.Cl.Model.Business.Huawei.VoipPstnUser.VoipPstnUserId(nddOntIdOrMsanDevId, sn, pn);
160:
161: voipPstnUser = (from eo in voipPstnUserList where eo.Id == id select eo).SingleOrDefault();
162:
163: newVoipPstnUser = new Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser()
164: {
165: Id = id,
166: DID = did,
167: FN = fn,
168: SN = sn,
169: PN = pn,
170: DN = dn.ToString(),
171: MGID = columns.Contains("MGID") ? int.Parse(dataRow[columns.IndexOf("MGID")].ToString()) : 0,
172: MGNAME = columns.Contains("MGNAME") ? dataRow[columns.IndexOf("MGNAME")].ToString() : string.Empty,
173: TID = columns.Contains("TID") ? Ia.Ftn.Cl.Model.Business.Huawei.VoipPstnUser.SpecialIntegerParameterHandling("TID", dataRow[columns.IndexOf("TID")].ToString()) : 0,
174: LayeredConf = columns.Contains("LayeredConf") ? dataRow[columns.IndexOf("LayeredConf")].ToString() : string.Empty,
175: HighLevelWidth = columns.Contains("HighLevelWidth") ? int.Parse(dataRow[columns.IndexOf("HighLevelWidth")].ToString()) : 0,
176: LowerLevelWidth = columns.Contains("LowerLevelWidth") ? int.Parse(dataRow[columns.IndexOf("LowerLevelWidth")].ToString()) : 0,
177: Voltage = columns.Contains("Voltage") ? dataRow[columns.IndexOf("Voltage")].ToString() : string.Empty,
178: KCType = columns.Contains("KCType") ? dataRow[columns.IndexOf("KCType")].ToString() : string.Empty,
179: VoiceGain = columns.Contains("VoiceGain") ? dataRow[columns.IndexOf("VoiceGain")].ToString() : string.Empty,
180: LimitPulseDial = columns.Contains("LimitPulseDial") ? dataRow[columns.IndexOf("LimitPulseDial")].ToString() : string.Empty,
181: RevPolarity = columns.Contains("RevPolarity") ? dataRow[columns.IndexOf("RevPolarity")].ToString() : string.Empty,
182: RevPoleLevel = columns.Contains("RevPoleLevel") ? int.Parse(dataRow[columns.IndexOf("RevPoleLevel")].ToString()) : 0,
183: RevPolePulse = columns.Contains("RevPolePulse") ? dataRow[columns.IndexOf("RevPolePulse")].ToString() : string.Empty,
184: PSTAT = columns.Contains("PSTAT") ? dataRow[columns.IndexOf("PSTAT")].ToString() : string.Empty,
185: ConfigStatus = columns.Contains("ConfigStatus") ? dataRow[columns.IndexOf("ConfigStatus")].ToString() : string.Empty,
186: ServiceStatus = columns.Contains("ServiceStatus") ? dataRow[columns.IndexOf("ServiceStatus")].ToString() : string.Empty,
187: ServiceType = columns.Contains("ServiceType") ? dataRow[columns.IndexOf("ServiceType")].ToString() : string.Empty,
188: ALIAS = columns.Contains("ALIAS") ? dataRow[columns.IndexOf("ALIAS")].ToString() : string.Empty,
189: UserType = columns.Contains("UserType") ? dataRow[columns.IndexOf("UserType")].ToString() : string.Empty,
190: Impedance = columns.Contains("Impedance") ? dataRow[columns.IndexOf("Impedance")].ToString() : string.Empty,
191: Current = columns.Contains("Current") ? dataRow[columns.IndexOf("Current")].ToString() : string.Empty,
192: DCTime = columns.Contains("DCTime") ? int.Parse(dataRow[columns.IndexOf("DCTime")].ToString()) : 0,
193: PITime = columns.Contains("PITime") ? Ia.Ftn.Cl.Model.Business.Huawei.VoipPstnUser.SpecialIntegerParameterHandling("PITime", dataRow[columns.IndexOf("PITime")].ToString()) : 0,
194: FSKDelayInterval = columns.Contains("FSKDelayInterval") ? int.Parse(dataRow[columns.IndexOf("FSKDelayInterval")].ToString()) : 0,
195: ActualVoiceGain = columns.Contains("ActualVoiceGain") ? dataRow[columns.IndexOf("ActualVoiceGain")].ToString() : string.Empty,
196: CidTransWhen = columns.Contains("CidTransWhen") ? dataRow[columns.IndexOf("CidTransWhen")].ToString() : string.Empty,
197: CidFormat = columns.Contains("CidFormat") ? dataRow[columns.IndexOf("CidFormat")].ToString() : string.Empty,
198: OverloadPRI = columns.Contains("OverloadPRI") ? dataRow[columns.IndexOf("OverloadPRI")].ToString() : string.Empty,
199: ImpedanceProfile = columns.Contains("ImpedanceProfile") ? dataRow[columns.IndexOf("ImpedanceProfile")].ToString() : string.Empty,
200: SendVoiceGain = columns.Contains("SendVoiceGain") ? dataRow[columns.IndexOf("SendVoiceGain")].ToString() : string.Empty,
201: RecvVoiceGain = columns.Contains("RecvVoiceGain") ? dataRow[columns.IndexOf("RecvVoiceGain")].ToString() : string.Empty,
202: RevPolarityMode = columns.Contains("RevPolarityMode") ? dataRow[columns.IndexOf("RevPolarityMode")].ToString() : string.Empty,
203: PortRunState = columns.Contains("PortRunState") ? dataRow[columns.IndexOf("PortRunState")].ToString() : string.Empty,
204: PortTestState = columns.Contains("PortTestState") ? dataRow[columns.IndexOf("PortTestState")].ToString() : string.Empty,
205: PortLineState = columns.Contains("PortLineState") ? dataRow[columns.IndexOf("PortLineState")].ToString() : string.Empty,
206: PortLoopState = columns.Contains("PortLoopState") ? dataRow[columns.IndexOf("PortLoopState")].ToString() : string.Empty,
207: ServiceRunState = columns.Contains("ServiceRunState") ? dataRow[columns.IndexOf("ServiceRunState")].ToString() : string.Empty,
208: ServiceAdminState = columns.Contains("ServiceAdminState") ? dataRow[columns.IndexOf("ServiceAdminState")].ToString() : string.Empty,
209: ActualSendVoiceGain = columns.Contains("ActualSendVoiceGain") ? dataRow[columns.IndexOf("ActualSendVoiceGain")].ToString() : string.Empty,
210: ActualRecvVo = columns.Contains("ActualRecvVo") ? dataRow[columns.IndexOf("ActualRecvVo")].ToString() : string.Empty,
211: AGCEnable = columns.Contains("AGCEnable") ? dataRow[columns.IndexOf("AGCEnable")].ToString() : string.Empty,
212: AGCEnableLevel = columns.Contains("AGCEnableLevel") ? int.Parse(dataRow[columns.IndexOf("AGCEnableLevel")].ToString()) : 0,
213: SNSEnable = columns.Contains("SNSEnable") ? dataRow[columns.IndexOf("SNSEnable")].ToString() : string.Empty,
214: SNSEnableLevel = columns.Contains("SNSEnableLevel") ? int.Parse(dataRow[columns.IndexOf("SNSEnableLevel")].ToString()) : 0,
215: NlpMode = columns.Contains("NlpMode") ? dataRow[columns.IndexOf("NlpMode")].ToString() : string.Empty,
216: LineLockEnable = columns.Contains("LineLockEnable") ? dataRow[columns.IndexOf("LineLockEnable")].ToString() : string.Empty,
217: DspInputGain = columns.Contains("DspInputGain") ? dataRow[columns.IndexOf("DspInputGain")].ToString() : string.Empty,
218: DspOutputGain = columns.Contains("DspOutputGain") ? dataRow[columns.IndexOf("DspOutputGain")].ToString() : string.Empty,
219: ClipReversePole = columns.Contains("ClipReversePole") ? dataRow[columns.IndexOf("ClipReversePole")].ToString() : string.Empty,
220: DEFAULTCLI = columns.Contains("DEFAULTCLI") ? dataRow[columns.IndexOf("DEFAULTCLI")].ToString() : string.Empty,
221: USERGROUPID = columns.Contains("USERGROUPID") ? int.Parse(dataRow[columns.IndexOf("USERGROUPID")].ToString()) : 0,
222: ADJUSTFACTOR = columns.Contains("ADJUSTFACTOR") ? int.Parse(dataRow[columns.IndexOf("ADJUSTFACTOR")].ToString()) : 0,
223: DSPPROFILE = columns.Contains("DSPPROFILE") ? dataRow[columns.IndexOf("DSPPROFILE")].ToString() : string.Empty,
224:
225: EmsOnt = (emsDevType == Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type.Mdu) ? (from eo in db.EmsOnts where eo.Id == nddOntIdOrMsanDevId select eo).SingleOrDefault() : null
226: };
227:
228: if (voipPstnUser == null)
229: {
230: newVoipPstnUser.Created = newVoipPstnUser.Updated = DateTime.UtcNow.AddHours(3);
231:
232: db.EmsVoipPstnUsers.Add(newVoipPstnUser);
233:
234: insertedItemCount++;
235: }
236: else // update
237: {
238: // below: copy values from newVoipPstnUser to voipPstnUser
239:
240: if (voipPstnUser.Update(newVoipPstnUser))
241: {
242: db.EmsVoipPstnUsers.Attach(voipPstnUser);
243: db.Entry(voipPstnUser).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
244:
245: updatedItemCount++;
246: }
247: }
248:
249: itemIdList.Add(id); // keep at the end
250: //}
251: //else
252: //{
253: // result.AddError("dn:" + dn + ", emsDevType:" + emsDevType.ToString() + ". dn and emsDevtype values are inconsistent.");
254: //}
255: }
256: else
257: {
258: result.AddError("LST-VOIPPSTNUSER (" + response.Ctag + "): pn != queryPn and/or sn != querySn.");
259: }
260: }
261: else
262: {
263: result.AddWarning("LST-VOIPPSTNUSER (" + response.Ctag + "): dn is -- empty.");
264: }
265: }
266:
267: // below: this function will remove values that were not present in the reading
268: if (voipPstnUserList.Count > 0)
269: {
270: foreach (Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser v in voipPstnUserList)
271: {
272: if (!itemIdList.Contains(v.Id))
273: {
274: voipPstnUser = (from evpu in db.EmsVoipPstnUsers
275: where /*evpu.EmsOnt != null &&*/ evpu.Id == v.Id
276: select evpu).SingleOrDefault();
277:
278: db.EmsVoipPstnUsers.Remove(voipPstnUser);
279:
280: deletedItemCount++;
281: }
282: }
283: }
284: }
285: else //if (response.QueryDataTable.Rows.Count == 0)
286: {
287: if (voipPstnUserList.Count > 0)
288: {
289: foreach (Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser v in voipPstnUserList)
290: {
291: voipPstnUser = (from evpu in db.EmsVoipPstnUsers
292: where /*evpu.EmsOnt != null &&*/ evpu.Id == v.Id
293: select evpu).SingleOrDefault();
294:
295: db.EmsVoipPstnUsers.Remove(voipPstnUser);
296:
297: deletedItemCount++;
298: }
299: }
300: }
301:
302: db.SaveChanges();
303:
304: if (insertedItemCount != 0 || updatedItemCount != 0 || deletedItemCount != 0) isUpdated = true;
305: else isUpdated = false;
306:
307: result.AddSuccess("LST-VOIPPSTNUSER (" + response.Ctag + "): (" + readItemCount + "/" + existingItemCount + "/" + insertedItemCount + "," + updatedItemCount + "," + deletedItemCount + ")");
308: }
309: else
310: {
311: result.AddWarning("LST-VOIPPSTNUSER (" + response.Ctag + "): (" + response.CompletionCode + ", " + response.ResultCode.ToString() + ")");
312: }
313: }
314: else
315: {
316: result.AddError("LST-VOIPPSTNUSER (" + response.Ctag + "): voipPstnUserList is null.");
317: }
318: }
319: else
320: {
321: result.AddError("LST-VOIPPSTNUSER (" + response.Ctag + "): for DEV: " + queryDev + " emsDevType is neither MDU nor MSAN.");
322: }
323: }
324: else
325: {
326: result.AddError("LST-VOIPPSTNUSER (" + response.Ctag + "): (" + response.CompletionCode + ", " + response.ResultCode.ToString() + ")");
327: }
328: }
329:
330: return isUpdated;
331: }
332:
333: ////////////////////////////////////////////////////////////////////////////
334:
335: /// <summary>
336: ///
337: /// </summary>
338: public static bool UpdateByDn(Ia.Ftn.Cl.Model.Business.Huawei.Ems.Response response, out string updatedService, out Ia.Cl.Models.Result result)
339: {
340: bool isUpdated;
341: int did, readItemCount, existingItemCount, insertedItemCount, updatedItemCount, deletedItemCount, fn, sn, pn;
342: string id, queryCommand, queryDn, dn, dev, nddOntIdOrMsanDevId;
343: DataColumnCollection columns;
344: DataRow columnDataRow;
345: Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Ont nddOnt;
346: Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser voipPstnUser, newVoipPstnUser;
347: Ia.Ftn.Cl.Model.Huawei.EmsOnt emsOnt;
348: Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type emsDevType;
349: List<string> itemIdList;
350: List<Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser> voipPstnUserList;
351:
352: isUpdated = false;
353: updatedService = string.Empty;
354: readItemCount = existingItemCount = insertedItemCount = updatedItemCount = deletedItemCount = 0;
355:
356: result = new Ia.Cl.Models.Result(); // remove initially then add to test all return paths
357:
358: using (var db = new Ia.Ftn.Cl.Model.Db())
359: {
360: if (response.CompletionCode == "COMPLD")
361: {
362: //if (response.ResultCode == Ia.Ftn.Cl.Model.Client.Huawei.Ems.ResultCode.NoMatchingPortPleaseCheckTheDataSetting)
363: //{
364: // result.AddWarning("LST-VOIPPSTNUSER: (" + response.CompletionCode + ", " + response.ResultCode.ToString() + ")");
365: //}
366: //else //if (response.ResultCode == Ia.Ftn.Cl.Model.Client.Huawei.Ems.ResultCode.Succeeded)
367: //{
368: queryCommand = response.CommandFromCorrelationTagDictionaryByCtag;
369:
370: //queryCommand = "LST-VOIPPSTNUSER::DN=96524805054:{ctag}::;";
371:
372: // LST-VOIPPSTNUSER::DN=+96524805054:{ctag}::;
373: // LST-VOIPPSTNUSER::DN=96524805054:{ctag}::;
374: queryDn = Ia.Cl.Models.Default.Match(queryCommand, @"DN=(.+?):");
375:
376: // VoIP PSTN user of the device ARD_MSAN_Cabinet 1_Frame 0
377: // VoIP PSTN user of the device MDU-MHL-2101-004
378: dev = response.Title.Replace("VoIP PSTN user of the device ", "");
379:
380: emsDevType = Ia.Ftn.Cl.Model.Data.Huawei.Dev.ReadTypeByDev(dev);
381:
382: if (emsDevType != Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type.Mdu && emsDevType != Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type.Msan)
383: {
384: emsDevType = Ia.Ftn.Cl.Model.Business.Huawei.VoipPstnUser.DevTypeFromDn(queryDn);
385: }
386:
387: if (emsDevType == Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type.Mdu || emsDevType == Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type.Msan)
388: {
389: if (emsDevType == Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type.Mdu)
390: {
391: nddOnt = Ia.Ftn.Cl.Model.Business.Default.NddOntFromHuaweiEmsAccessNameFormat(dev);
392:
393: nddOntIdOrMsanDevId = (nddOnt != null) ? nddOnt.Id : string.Empty;
394:
395: if (nddOnt != null)
396: {
397: emsOnt = (from eo in db.EmsOnts where eo.Id == nddOnt.Id select eo).SingleOrDefault();
398:
399: if (emsOnt != null)
400: {
401: // this should always give a single value or none
402: voipPstnUserList = (from evpu in db.EmsVoipPstnUsers
403: where evpu.EmsOnt != null && evpu.EmsOnt.Id == emsOnt.Id && evpu.DN == queryDn
404: select evpu).ToList();
405: }
406: else
407: {
408: voipPstnUserList = new List<Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser>();
409: }
410: }
411: else
412: {
413: voipPstnUserList = new List<Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser>();
414: }
415: }
416: else //if (emsDevType == Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type.Msan)
417: {
418: var msanDev = (from m in Ia.Ftn.Cl.Model.Data.Huawei.Default.MsanDevList
419: where m.Dev == dev
420: select m).SingleOrDefault();
421:
422: nddOntIdOrMsanDevId = (msanDev != null) ? msanDev.Id : string.Empty;
423:
424: voipPstnUserList = (from evpu in db.EmsVoipPstnUsers
425: where evpu.EmsOnt == null && evpu.Id.StartsWith(nddOntIdOrMsanDevId) && evpu.DN == queryDn
426: select evpu).ToList();
427: }
428:
429: if (voipPstnUserList != null)
430: {
431: existingItemCount = voipPstnUserList.Count;
432:
433: if (response.QueryDataTable != null)
434: {
435: if (response.QueryDataTable.Rows.Count >= 1)
436: {
437: itemIdList = new List<string>(response.QueryDataTable.Rows.Count + 1);
438:
439: columns = response.QueryDataTable.Columns;
440: readItemCount = response.QueryDataTable.Rows.Count;
441:
442: columnDataRow = response.QueryDataTable.Rows[0];
443:
444: foreach (DataRow dataRow in response.QueryDataTable.Rows)
445: {
446: did = int.Parse(dataRow[columns.IndexOf("DID")].ToString());
447: fn = int.Parse(dataRow[columns.IndexOf("FN")].ToString());
448: sn = int.Parse(dataRow[columns.IndexOf("SN")].ToString());
449: pn = int.Parse(dataRow[columns.IndexOf("PN")].ToString());
450:
451: dn = columns.Contains("DN") ? dataRow[columns.IndexOf("DN")].ToString() : string.Empty;
452:
453: if (dn != "--") // "--" means empty
454: {
455: if (dn == queryDn)
456: {
457: id = Ia.Ftn.Cl.Model.Business.Huawei.VoipPstnUser.VoipPstnUserId(nddOntIdOrMsanDevId, sn, pn);
458:
459: voipPstnUser = (from eo in voipPstnUserList where eo.Id == id select eo).SingleOrDefault();
460:
461: newVoipPstnUser = new Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser()
462: {
463: Id = id,
464: DID = did,
465: FN = fn,
466: SN = sn,
467: PN = pn,
468: DN = dn.ToString(),
469: MGID = columns.Contains("MGID") ? int.Parse(dataRow[columns.IndexOf("MGID")].ToString()) : 0,
470: MGNAME = columns.Contains("MGNAME") ? dataRow[columns.IndexOf("MGNAME")].ToString() : string.Empty,
471: TID = columns.Contains("TID") ? Ia.Ftn.Cl.Model.Business.Huawei.VoipPstnUser.SpecialIntegerParameterHandling("TID", dataRow[columns.IndexOf("TID")].ToString()) : 0,
472: LayeredConf = columns.Contains("LayeredConf") ? dataRow[columns.IndexOf("LayeredConf")].ToString() : string.Empty,
473: HighLevelWidth = columns.Contains("HighLevelWidth") ? int.Parse(dataRow[columns.IndexOf("HighLevelWidth")].ToString()) : 0,
474: LowerLevelWidth = columns.Contains("LowerLevelWidth") ? int.Parse(dataRow[columns.IndexOf("LowerLevelWidth")].ToString()) : 0,
475: Voltage = columns.Contains("Voltage") ? dataRow[columns.IndexOf("Voltage")].ToString() : string.Empty,
476: KCType = columns.Contains("KCType") ? dataRow[columns.IndexOf("KCType")].ToString() : string.Empty,
477: VoiceGain = columns.Contains("VoiceGain") ? dataRow[columns.IndexOf("VoiceGain")].ToString() : string.Empty,
478: LimitPulseDial = columns.Contains("LimitPulseDial") ? dataRow[columns.IndexOf("LimitPulseDial")].ToString() : string.Empty,
479: RevPolarity = columns.Contains("RevPolarity") ? dataRow[columns.IndexOf("RevPolarity")].ToString() : string.Empty,
480: RevPoleLevel = columns.Contains("RevPoleLevel") ? int.Parse(dataRow[columns.IndexOf("RevPoleLevel")].ToString()) : 0,
481: RevPolePulse = columns.Contains("RevPolePulse") ? dataRow[columns.IndexOf("RevPolePulse")].ToString() : string.Empty,
482: PSTAT = columns.Contains("PSTAT") ? dataRow[columns.IndexOf("PSTAT")].ToString() : string.Empty,
483: ConfigStatus = columns.Contains("ConfigStatus") ? dataRow[columns.IndexOf("ConfigStatus")].ToString() : string.Empty,
484: ServiceStatus = columns.Contains("ServiceStatus") ? dataRow[columns.IndexOf("ServiceStatus")].ToString() : string.Empty,
485: ServiceType = columns.Contains("ServiceType") ? dataRow[columns.IndexOf("ServiceType")].ToString() : string.Empty,
486: ALIAS = columns.Contains("ALIAS") ? dataRow[columns.IndexOf("ALIAS")].ToString() : string.Empty,
487: UserType = columns.Contains("UserType") ? dataRow[columns.IndexOf("UserType")].ToString() : string.Empty,
488: Impedance = columns.Contains("Impedance") ? dataRow[columns.IndexOf("Impedance")].ToString() : string.Empty,
489: Current = columns.Contains("Current") ? dataRow[columns.IndexOf("Current")].ToString() : string.Empty,
490: DCTime = columns.Contains("DCTime") ? int.Parse(dataRow[columns.IndexOf("DCTime")].ToString()) : 0,
491: PITime = columns.Contains("PITime") ? Ia.Ftn.Cl.Model.Business.Huawei.VoipPstnUser.SpecialIntegerParameterHandling("PITime", dataRow[columns.IndexOf("PITime")].ToString()) : 0,
492: FSKDelayInterval = columns.Contains("FSKDelayInterval") ? int.Parse(dataRow[columns.IndexOf("FSKDelayInterval")].ToString()) : 0,
493: ActualVoiceGain = columns.Contains("ActualVoiceGain") ? dataRow[columns.IndexOf("ActualVoiceGain")].ToString() : string.Empty,
494: CidTransWhen = columns.Contains("CidTransWhen") ? dataRow[columns.IndexOf("CidTransWhen")].ToString() : string.Empty,
495: CidFormat = columns.Contains("CidFormat") ? dataRow[columns.IndexOf("CidFormat")].ToString() : string.Empty,
496: OverloadPRI = columns.Contains("OverloadPRI") ? dataRow[columns.IndexOf("OverloadPRI")].ToString() : string.Empty,
497: ImpedanceProfile = columns.Contains("ImpedanceProfile") ? dataRow[columns.IndexOf("ImpedanceProfile")].ToString() : string.Empty,
498: SendVoiceGain = columns.Contains("SendVoiceGain") ? dataRow[columns.IndexOf("SendVoiceGain")].ToString() : string.Empty,
499: RecvVoiceGain = columns.Contains("RecvVoiceGain") ? dataRow[columns.IndexOf("RecvVoiceGain")].ToString() : string.Empty,
500: RevPolarityMode = columns.Contains("RevPolarityMode") ? dataRow[columns.IndexOf("RevPolarityMode")].ToString() : string.Empty,
501: PortRunState = columns.Contains("PortRunState") ? dataRow[columns.IndexOf("PortRunState")].ToString() : string.Empty,
502: PortTestState = columns.Contains("PortTestState") ? dataRow[columns.IndexOf("PortTestState")].ToString() : string.Empty,
503: PortLineState = columns.Contains("PortLineState") ? dataRow[columns.IndexOf("PortLineState")].ToString() : string.Empty,
504: PortLoopState = columns.Contains("PortLoopState") ? dataRow[columns.IndexOf("PortLoopState")].ToString() : string.Empty,
505: ServiceRunState = columns.Contains("ServiceRunState") ? dataRow[columns.IndexOf("ServiceRunState")].ToString() : string.Empty,
506: ServiceAdminState = columns.Contains("ServiceAdminState") ? dataRow[columns.IndexOf("ServiceAdminState")].ToString() : string.Empty,
507: ActualSendVoiceGain = columns.Contains("ActualSendVoiceGain") ? dataRow[columns.IndexOf("ActualSendVoiceGain")].ToString() : string.Empty,
508: ActualRecvVo = columns.Contains("ActualRecvVo") ? dataRow[columns.IndexOf("ActualRecvVo")].ToString() : string.Empty,
509: AGCEnable = columns.Contains("AGCEnable") ? dataRow[columns.IndexOf("AGCEnable")].ToString() : string.Empty,
510: AGCEnableLevel = columns.Contains("AGCEnableLevel") ? int.Parse(dataRow[columns.IndexOf("AGCEnableLevel")].ToString()) : 0,
511: SNSEnable = columns.Contains("SNSEnable") ? dataRow[columns.IndexOf("SNSEnable")].ToString() : string.Empty,
512: SNSEnableLevel = columns.Contains("SNSEnableLevel") ? int.Parse(dataRow[columns.IndexOf("SNSEnableLevel")].ToString()) : 0,
513: NlpMode = columns.Contains("NlpMode") ? dataRow[columns.IndexOf("NlpMode")].ToString() : string.Empty,
514: LineLockEnable = columns.Contains("LineLockEnable") ? dataRow[columns.IndexOf("LineLockEnable")].ToString() : string.Empty,
515: DspInputGain = columns.Contains("DspInputGain") ? dataRow[columns.IndexOf("DspInputGain")].ToString() : string.Empty,
516: DspOutputGain = columns.Contains("DspOutputGain") ? dataRow[columns.IndexOf("DspOutputGain")].ToString() : string.Empty,
517: ClipReversePole = columns.Contains("ClipReversePole") ? dataRow[columns.IndexOf("ClipReversePole")].ToString() : string.Empty,
518: DEFAULTCLI = columns.Contains("DEFAULTCLI") ? dataRow[columns.IndexOf("DEFAULTCLI")].ToString() : string.Empty,
519: USERGROUPID = columns.Contains("USERGROUPID") ? int.Parse(dataRow[columns.IndexOf("USERGROUPID")].ToString()) : 0,
520: ADJUSTFACTOR = columns.Contains("ADJUSTFACTOR") ? int.Parse(dataRow[columns.IndexOf("ADJUSTFACTOR")].ToString()) : 0,
521: DSPPROFILE = columns.Contains("DSPPROFILE") ? dataRow[columns.IndexOf("DSPPROFILE")].ToString() : string.Empty,
522:
523: EmsOnt = (emsDevType == Ia.Ftn.Cl.Model.Business.Huawei.Dev.Type.Mdu) ? (from eo in db.EmsOnts where eo.Id == nddOntIdOrMsanDevId select eo).SingleOrDefault() : null
524: };
525:
526: if (voipPstnUser == null)
527: {
528: newVoipPstnUser.Created = newVoipPstnUser.Updated = DateTime.UtcNow.AddHours(3);
529:
530: db.EmsVoipPstnUsers.Add(newVoipPstnUser);
531:
532: insertedItemCount++;
533: }
534: else // update
535: {
536: // below: copy values from newVoipPstnUser to ontSipInfo
537:
538: if (voipPstnUser.Update(newVoipPstnUser))
539: {
540: db.EmsVoipPstnUsers.Attach(voipPstnUser);
541: db.Entry(voipPstnUser).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
542:
543: updatedItemCount++;
544: }
545: }
546:
547: itemIdList.Add(id); // keep at the end
548:
549: updatedService = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(dn);
550: }
551: else result.AddError("LST-VOIPPSTNUSER (" + response.Ctag + "): dn not equal to queryDn.");
552: }
553: else result.AddWarning("LST-VOIPPSTNUSER (" + response.Ctag + "): dn is -- empty.");
554: }
555:
556: // below: this function will remove values that were not present in the reading
557: if (voipPstnUserList.Count > 0)
558: {
559: foreach (Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser v in voipPstnUserList)
560: {
561: if (!itemIdList.Contains(v.Id))
562: {
563: voipPstnUser = (from evpu in db.EmsVoipPstnUsers
564: where /*evpu.EmsOnt != null &&*/ evpu.Id == v.Id
565: select evpu).SingleOrDefault();
566:
567: db.EmsVoipPstnUsers.Remove(voipPstnUser);
568:
569: deletedItemCount++;
570:
571: updatedService = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(voipPstnUser.DN);
572: }
573: }
574: }
575: }
576: else //if (response.QueryDataTable.Rows.Count == 0)
577: {
578: if (voipPstnUserList.Count > 0)
579: {
580: foreach (Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser v in voipPstnUserList)
581: {
582: voipPstnUser = (from evpu in db.EmsVoipPstnUsers
583: where /*evpu.EmsOnt != null &&*/ evpu.Id == v.Id
584: select evpu).SingleOrDefault();
585:
586: db.EmsVoipPstnUsers.Remove(voipPstnUser);
587:
588: deletedItemCount++;
589:
590: updatedService = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(voipPstnUser.DN);
591: }
592: }
593: }
594: }
595: else
596: {
597: if (voipPstnUserList.Count > 0)
598: {
599: foreach (Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser v in voipPstnUserList)
600: {
601: voipPstnUser = (from evpu in db.EmsVoipPstnUsers
602: where /*evpu.EmsOnt != null &&*/ evpu.Id == v.Id
603: select evpu).SingleOrDefault();
604:
605: db.EmsVoipPstnUsers.Remove(voipPstnUser);
606:
607: deletedItemCount++;
608:
609: updatedService = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(voipPstnUser.DN);
610: }
611: }
612: }
613:
614: db.SaveChanges();
615:
616: if (insertedItemCount != 0 || updatedItemCount != 0 || deletedItemCount != 0) isUpdated = true;
617: else isUpdated = false;
618:
619: result.AddSuccess("LST-VOIPPSTNUSER (" + response.Ctag + "): (" + readItemCount + "/" + existingItemCount + "/" + insertedItemCount + "," + updatedItemCount + "," + deletedItemCount + ")");
620: }
621: else
622: {
623: result.AddError("LST-VOIPPSTNUSER (" + response.Ctag + "): voipPstnUserList is null.");
624: }
625: }
626: else
627: {
628: result.AddError("LST-VOIPPSTNUSER (" + response.Ctag + "): for DEV: " + dev + " emsDevType is neither MDU nor MSAN.");
629: }
630: //}
631: //else
632: //{
633: // result.AddError("LST-VOIPPSTNUSER: (" + response.CompletionCode + ", " + response.ResultCode.ToString() + ")");
634: //}
635: }
636: else
637: {
638: result.AddError("LST-VOIPPSTNUSER (" + response.Ctag + "): (" + response.CompletionCode + ", " + response.ResultCode.ToString() + ")");
639: }
640: }
641:
642: return isUpdated;
643: }
644:
645: ////////////////////////////////////////////////////////////////////////////
646:
647: /// <summary>
648: ///
649: /// </summary>
650: public static List<Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser> List()
651: {
652: List<Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser> list;
653:
654: using (var db = new Ia.Ftn.Cl.Model.Db())
655: {
656: list = (from evpu in db.EmsVoipPstnUsers
657: //where evpu.EmsOnt != null
658: select evpu).ToList();
659: }
660:
661: return list;
662: }
663:
664: ////////////////////////////////////////////////////////////////////////////
665:
666: /// <summary>
667: ///
668: /// </summary>
669: public static List<string> ServiceList()
670: {
671: List<string> list;
672:
673: using (var db = new Ia.Ftn.Cl.Model.Db())
674: {
675: var list0 = (from evpu in db.EmsVoipPstnUsers select evpu.DN).AsNoTracking().ToList();
676:
677: list = (from l in list0 select Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(l)).Distinct().ToList();
678: }
679:
680: return list;
681: }
682:
683: ////////////////////////////////////////////////////////////////////////////
684:
685: /// <summary>
686: ///
687: /// </summary>
688: public static List<string> DuplicateMduDnServiceWithCountryCodeOrMsanDnServiceImpuAidServiceList()
689: {
690: List<string> list;
691:
692: //var dummy = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.ImpuAid("");
693:
694: // I'll check that the records are for a real 11 digit number, otherwise we will not send it to the database
695: // for MDUs numbers will look like 96524805054 Ia.Ftn.Cl.Model.Business.NumberFormatConverter.IsMatchToServiceWithCountryCode(dn);
696: // for MSAN numbers will look like +96524805054 Ia.Ftn.Cl.Model.Business.NumberFormatConverter.IsMatchToImpuAid(dn)
697:
698: using (var db = new Ia.Ftn.Cl.Model.Db())
699: {
700: var list0 = (from evpu1 in db.EmsVoipPstnUsers
701: join evpu2 in db.EmsVoipPstnUsers on evpu1.DN equals evpu2.DN
702: where evpu1.Id != evpu2.Id
703: select new { Service = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(evpu1.DN) }).Distinct().ToList();
704:
705: var list1 = (from evpu1 in db.EmsVoipPstnUsers
706: join evpu2 in db.EmsVoipPstnUsers on evpu1.DN equals "+" + evpu2.DN
707: where evpu1.Id != evpu2.Id
708: select new { Service = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(evpu1.DN) }).Distinct().ToList();
709:
710: var list2 = list0.Union(list1).Distinct().ToList();
711:
712: list = (from l in list2 select l.Service).ToList();
713: }
714:
715: return list;
716: }
717:
718: ////////////////////////////////////////////////////////////////////////////
719:
720: /// <summary>
721: ///
722: /// </summary>
723: public static List<string> InconsistentRecordsWhereEmsOntIsNullAndDnIsImpuAidHasPlusFormatOrEmsOntIsNotNullAndDnIsInServiceWithCountryCodeNoPlusFormatList()
724: {
725: List<string> list;
726:
727: //var dummy = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.ImpuAid("");
728:
729: // for MDUs numbers will look like 96524805054 Ia.Ftn.Cl.Model.Business.NumberFormatConverter.IsMatchToServiceWithCountryCode(dn);
730: // for MSAN numbers will look like +96524805054 Ia.Ftn.Cl.Model.Business.NumberFormatConverter.IsMatchToImpuAid(dn)
731:
732: using (var db = new Ia.Ftn.Cl.Model.Db())
733: {
734: // select * from EmsVoipPstnUsers where EmsOnt_Id is not null and dn like '+%'
735: var list0 = (from evpu in db.EmsVoipPstnUsers
736: where evpu.EmsOnt != null && evpu.DN.StartsWith("+")
737: select new { Service = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(evpu.DN) }).Distinct().ToList();
738:
739: // select * from EmsVoipPstnUsers where EmsOnt_Id is null and dn not like '+%'
740: var list1 = (from evpu in db.EmsVoipPstnUsers
741: where evpu.EmsOnt == null && !evpu.DN.StartsWith("+")
742: select new { Service = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(evpu.DN) }).Distinct().ToList();
743:
744: var list2 = list0.Union(list1).Distinct().ToList();
745:
746: list = (from l in list2 select l.Service).ToList();
747: }
748:
749: return list;
750: }
751:
752: ////////////////////////////////////////////////////////////////////////////
753:
754: /// <summary>
755: ///
756: /// </summary>
757: public static List<string> ServiceIdWithinSipOltList()
758: {
759: int serviceType;
760: string service, serviceId;
761: List<int> sipOltIdList;
762: List<string> list, serviceIdList;
763:
764: serviceType = Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService;
765: sipOltIdList = Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.SipOltIdList;
766:
767: using (var db = new Ia.Ftn.Cl.Model.Db())
768: {
769: list = (from evpu in db.EmsVoipPstnUsers
770: where evpu.EmsOnt != null && evpu.EmsOnt.Access != null && sipOltIdList.Contains(evpu.EmsOnt.Access.Olt)
771: select evpu.DN).AsNoTracking().ToList();
772: }
773:
774: if (list != null && list.Count > 0)
775: {
776: serviceIdList = new List<string>(list.Count);
777:
778: foreach (string s in list)
779: {
780: service = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(s);
781:
782: serviceId = Ia.Ftn.Cl.Model.Business.Service.ServiceToServiceId(service, serviceType);
783:
784: serviceIdList.Add(serviceId);
785: }
786: }
787: else
788: {
789: serviceIdList = new List<string>();
790: }
791:
792: return serviceIdList;
793: }
794:
795: ////////////////////////////////////////////////////////////////////////////
796:
797: /// <summary>
798: ///
799: /// </summary>
800: public static List<string> ServiceWithinEmsVoipPstnUserWhereEmsDevResultCodeDeviceOfflineError()
801: {
802: string service;
803: List<string> serviceList;
804:
805: using (var db = new Ia.Ftn.Cl.Model.Db())
806: {
807: var list = (from evpu in db.EmsVoipPstnUsers
808: where evpu.EmsOnt != null && evpu.EmsOnt.Access != null
809: select new { evpu.DN, evpu.DID }).AsNoTracking().ToList();
810:
811: if (list != null && list.Count > 0)
812: {
813: serviceList = new List<string>(list.Count);
814:
815: var didToResultCodeDictionary = Ia.Ftn.Cl.Model.Data.Huawei.Dev.DidToResultCodeDictionary;
816:
817: foreach (var evpu in list)
818: {
819: if (didToResultCodeDictionary.ContainsKey(evpu.DID))
820: {
821: var resultCode = didToResultCodeDictionary[evpu.DID];
822:
823: if (resultCode == (long)Ia.Ftn.Cl.Model.Client.Huawei.Ems.ResultCode.DeviceOfflineError)
824: {
825: service = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(evpu.DN);
826:
827: serviceList.Add(service);
828: }
829: }
830: }
831: }
832: else
833: {
834: serviceList = new List<string>();
835: }
836: }
837:
838: return serviceList;
839: }
840:
841: ////////////////////////////////////////////////////////////////////////////
842:
843: /// <summary>
844: ///
845: /// </summary>
846: public static List<string> AccessNameWithinEmsVoipPstnUserWhereEmsDevResultCodeDeviceOfflineError()
847: {
848: string accessName;
849: List<string> accessNameList;
850:
851: using (var db = new Ia.Ftn.Cl.Model.Db())
852: {
853: var list = (from evpu in db.EmsVoipPstnUsers
854: where evpu.EmsOnt != null && evpu.EmsOnt.Access != null
855: select new { evpu.EmsOnt.Access.Id, evpu.DID }).AsNoTracking().ToList();
856:
857: if (list != null && list.Count > 0)
858: {
859: accessNameList = new List<string>(list.Count);
860:
861: var didToResultCodeDictionary = Ia.Ftn.Cl.Model.Data.Huawei.Dev.DidToResultCodeDictionary;
862: var ontAccessIdToOntAccessNameDictionary = Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.OntAccessIdToOntAccessNameDictionary;
863:
864: foreach (var accessIdDid in list)
865: {
866: if (didToResultCodeDictionary.ContainsKey(accessIdDid.DID))
867: {
868: var resultCode = didToResultCodeDictionary[accessIdDid.DID];
869:
870: if (resultCode == (long)Ia.Ftn.Cl.Model.Client.Huawei.Ems.ResultCode.DeviceOfflineError)
871: {
872: if (ontAccessIdToOntAccessNameDictionary.ContainsKey(accessIdDid.Id))
873: {
874: accessName = Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.OntAccessIdToOntAccessNameDictionary[accessIdDid.Id];
875:
876: if (!accessNameList.Contains(accessName))
877: {
878: accessNameList.Add(accessName);
879: }
880: }
881: }
882: }
883: }
884: }
885: else
886: {
887: accessNameList = new List<string>();
888: }
889: }
890:
891: return accessNameList;
892: }
893:
894: ////////////////////////////////////////////////////////////////////////////
895:
896: /// <summary>
897: ///
898: /// </summary>
899: public static List<string> ServiceIdWithinAllowedSipOltToBeProvisionedOrMigratedList()
900: {
901: int serviceType;
902: string service, serviceId;
903: List<int> sipOltIdList;
904: List<string> list, serviceIdList;
905:
906: serviceType = Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService;
907: sipOltIdList = Ia.Ftn.Cl.Model.Data.Service.AllowedToBeProvisionedSipOltIdList.Union(Ia.Ftn.Cl.Model.Data.Service.AllowedToBeMigratedSipOltIdList).ToList();
908:
909: using (var db = new Ia.Ftn.Cl.Model.Db())
910: {
911: list = (from evpu in db.EmsVoipPstnUsers
912: where evpu.EmsOnt != null && evpu.EmsOnt.Access != null && sipOltIdList.Contains(evpu.EmsOnt.Access.Olt)
913: select evpu.DN).ToList();
914: }
915:
916: if (list != null && list.Count > 0)
917: {
918: serviceIdList = new List<string>(list.Count);
919:
920: foreach (string s in list)
921: {
922: service = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(s);
923:
924: serviceId = Ia.Ftn.Cl.Model.Business.Service.ServiceToServiceId(service, serviceType);
925:
926: serviceIdList.Add(serviceId);
927: }
928: }
929: else
930: {
931: serviceIdList = new List<string>();
932: }
933:
934: return serviceIdList;
935: }
936:
937: ////////////////////////////////////////////////////////////////////////////
938:
939: /// <summary>
940: /// List of ServiceOnts within EmsVoipPstnUsers within a SIP allowed to be provisioned or migrated OLT
941: /// </summary>
942: public static List<Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated> ServiceOntWithinAllowedSipOltToBeProvisionedOrMigratedList()
943: {
944: int serviceType;
945: string service, serviceId;
946: List<int> sipOltIdList;
947: List<Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated> tempSipUserNamelist, serviceOntList;
948:
949: serviceType = Ia.Ftn.Cl.Model.Business.Service.ServiceType.ImsService;
950: sipOltIdList = Ia.Ftn.Cl.Model.Data.Service.AllowedToBeProvisionedSipOltIdList.Union(Ia.Ftn.Cl.Model.Data.Service.AllowedToBeMigratedSipOltIdList).ToList();
951:
952: var ontAccessIdToOntForOltIdListDictionary = Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.OntAccessIdToOntForOltIdListDictionary(sipOltIdList);
953:
954: using (var db = new Ia.Ftn.Cl.Model.Db())
955: {
956: tempSipUserNamelist = (from evpu in db.EmsVoipPstnUsers
957: where evpu.EmsOnt != null && evpu.EmsOnt.Access != null && sipOltIdList.Contains(evpu.EmsOnt.Access.Olt)
958: // select vpu.DN).ToList();
959: select new Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated { Service = evpu.DN, AccessId = evpu.EmsOnt.Access.Id, CreatedDateTime = evpu.Created }).AsNoTracking().ToList();
960: }
961:
962: if (tempSipUserNamelist != null && tempSipUserNamelist.Count > 0)
963: {
964: serviceOntList = new List<Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated>(tempSipUserNamelist.Count);
965:
966: foreach (var so in tempSipUserNamelist)
967: {
968: service = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(so.Service); // so.Service here is vpu.DN
969:
970: serviceId = Ia.Ftn.Cl.Model.Business.Service.ServiceToServiceId(service, serviceType);
971:
972: serviceOntList.Add(new Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated
973: {
974: ServiceId = serviceId,
975: Service = service,
976: AccessId = so.AccessId,
977: Ont = ontAccessIdToOntForOltIdListDictionary.ContainsKey(so.AccessId) ? ontAccessIdToOntForOltIdListDictionary[so.AccessId] : null,
978: CreatedDateTime = so.CreatedDateTime
979: });
980: }
981: }
982: else
983: {
984: serviceOntList = new List<Ia.Ftn.Cl.Model.Business.ServiceAccessIpOntCreated>();
985: }
986:
987: return serviceOntList;
988: }
989:
990: ////////////////////////////////////////////////////////////////////////////
991:
992: /// <summary>
993: ///
994: /// </summary>
995: public static Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser Read(string id)
996: {
997: Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser item;
998:
999: using (var db = new Ia.Ftn.Cl.Model.Db())
1000: {
1001: item = (from evpu in db.EmsVoipPstnUsers
1002: where evpu.EmsOnt != null && evpu.Id == id
1003: select evpu).Include(o => o.EmsOnt).SingleOrDefault();
1004: }
1005:
1006: return item;
1007: }
1008:
1009: ////////////////////////////////////////////////////////////////////////////
1010:
1011: /// <summary>
1012: ///
1013: /// </summary>
1014: public static List<Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser> ReadByService(string service) //, Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Ont nddOnt)
1015: {
1016: string dn;
1017: List<Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser> list;
1018:
1019: dn = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.ServiceWithCountryCode(service);
1020:
1021: using (var db = new Ia.Ftn.Cl.Model.Db())
1022: {
1023: list = (from evpu in db.EmsVoipPstnUsers
1024: where evpu.EmsOnt != null && evpu.DN == dn
1025: select evpu).Include(o => o.EmsOnt).ThenInclude(o => o.Access).ToList(); //.SingleOrDefault();
1026: }
1027:
1028: return list;
1029: }
1030:
1031: ////////////////////////////////////////////////////////////////////////////
1032:
1033: /// <summary>
1034: ///
1035: /// </summary>
1036: public static List<Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser> ReadByMsanService(string service)
1037: {
1038: string dn;
1039: List<Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser> list;
1040:
1041: dn = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.ImpuAid(service);
1042:
1043: using (var db = new Ia.Ftn.Cl.Model.Db())
1044: {
1045: list = (from evpu in db.EmsVoipPstnUsers
1046: where /*evpu.EmsOnt != null &&*/ evpu.DN == dn
1047: select evpu)/*.Include(o => o.EmsOnt).ThenInclude(o => o.Access)*/.ToList(); //.SingleOrDefault();
1048: }
1049:
1050: return list;
1051: }
1052:
1053: ////////////////////////////////////////////////////////////////////////////
1054:
1055: /// <summary>
1056: ///
1057: /// </summary>
1058: public static List<Ia.Ftn.Cl.Model.Business.Huawei.VoipPstnUser.DidFnSnPnDn> DidFnSnPnDnMsanList()
1059: {
1060: List<Ia.Ftn.Cl.Model.Business.Huawei.VoipPstnUser.DidFnSnPnDn> list;
1061:
1062: //var dummy = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.ImpuAid("");
1063:
1064: using (var db = new Ia.Ftn.Cl.Model.Db())
1065: {
1066: list = (from evpu in db.EmsVoipPstnUsers
1067: where evpu.DN.StartsWith("+" + Ia.Ftn.Cl.Model.Business.Service.CountryCode)
1068: select new Ia.Ftn.Cl.Model.Business.Huawei.VoipPstnUser.DidFnSnPnDn
1069: {
1070: Did = evpu.DID,
1071: Fn = evpu.FN,
1072: Sn = evpu.SN,
1073: Pn = evpu.PN,
1074: Dn = evpu.DN,
1075: }).ToList();
1076: }
1077:
1078: return list;
1079: }
1080:
1081: ////////////////////////////////////////////////////////////////////////////
1082:
1083: /// <summary>
1084: ///
1085: /// </summary>
1086: public static List<string> MsanServiceList
1087: {
1088: get
1089: {
1090: List<string> list;
1091:
1092: #if DEBUG
1093: var dummyVarToDrawRefractorToBelow = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Dn("0000000");
1094: #endif
1095:
1096: using (var db = new Ia.Ftn.Cl.Model.Db())
1097: {
1098: var list0 = (from evpu in db.EmsVoipPstnUsers
1099: where evpu.EmsOnt == null && evpu.DN.StartsWith("+965")
1100: select evpu.DN).ToList();
1101:
1102: list = new List<string>();
1103:
1104: foreach (var s in list0)
1105: {
1106: list.Add(Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(s));
1107: }
1108: }
1109:
1110: return list;
1111: }
1112: }
1113:
1114: ////////////////////////////////////////////////////////////////////////////
1115:
1116: /// <summary>
1117: ///
1118: /// </summary>
1119: public static Dictionary<string, bool> MsanServiceDictionary
1120: {
1121: get
1122: {
1123: string key;
1124: Dictionary<string, bool> dictionary;
1125:
1126: #if DEBUG
1127: var dummyVarToDrawRefractorToBelow = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Dn("0000000");
1128: #endif
1129:
1130: var list = Ia.Ftn.Cl.Model.Data.Huawei.VoipPstnUser.MsanServiceList;
1131:
1132: dictionary = new Dictionary<string, bool>();
1133:
1134: foreach (var s in list)
1135: {
1136: key = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(s);
1137:
1138: if (!string.IsNullOrEmpty(key)) dictionary[key] = true;
1139: }
1140:
1141: return dictionary;
1142: }
1143: }
1144:
1145: ////////////////////////////////////////////////////////////////////////////
1146:
1147: /// <summary>
1148: ///
1149: /// </summary>
1150: public static Dictionary<int, int> MsanDevDidToDnCountDictionary
1151: {
1152: get
1153: {
1154: Dictionary<int, int> dictionary;
1155:
1156: using (var db = new Ia.Ftn.Cl.Model.Db())
1157: {
1158: /*
1159: select ed.DID,count(0) from EmsVoipPstnUsers evpu
1160: left outer join EmsDevs ed on ed.DID = evpu.DID
1161: where evpu.DN like '+%'
1162: group by ed.DID
1163: */
1164:
1165: dictionary = (from evpu in db.EmsVoipPstnUsers
1166: join ed in db.EmsDevs on evpu.DID equals ed.DID
1167: where evpu.EmsOnt == null && evpu.DN.StartsWith("+965")
1168: group ed.DID by ed.DID into g
1169: select new { Did = g.Key, Count = g.Count() }).AsNoTracking().ToDictionary(u => u.Did, u => u.Count);
1170: }
1171:
1172: return dictionary.ToDictionary(u => u.Key, u => u.Value);
1173: }
1174: }
1175:
1176: ////////////////////////////////////////////////////////////////////////////
1177:
1178: /// <summary>
1179: ///
1180: /// </summary>
1181: public static List<string> DnServiceListByMsanDevDidList(List<int> didList)
1182: {
1183: List<string> list;
1184:
1185: using (var db = new Ia.Ftn.Cl.Model.Db())
1186: {
1187: var list0 = (from evpu in db.EmsVoipPstnUsers
1188: join ed in db.EmsDevs on evpu.DID equals ed.DID
1189: where evpu.EmsOnt == null && evpu.DN != null && evpu.DN.StartsWith("+965") && didList.Contains(ed.DID)
1190: select evpu.DN).AsNoTracking().ToList();
1191:
1192: list = new List<string>();
1193:
1194: foreach (var s in list0)
1195: {
1196: list.Add(Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(s));
1197: }
1198: }
1199:
1200: return list;
1201: }
1202:
1203: ////////////////////////////////////////////////////////////////////////////
1204:
1205: /// <summary>
1206: ///
1207: /// </summary>
1208: public static List<Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev.Lic> MsanDevLicListByNddMsan(Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Msan msan)
1209: {
1210: Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev msanDev;
1211: List<Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev.Lic> list;
1212:
1213: var msanDevList = (from m in Ia.Ftn.Cl.Model.Data.Huawei.Default.MsanDevList
1214: where m.Msan.Id == msan.Id
1215: select m).ToList();
1216:
1217: var didList = msanDevList.Select(u => u.Did).ToList();
1218:
1219: using (var db = new Ia.Ftn.Cl.Model.Db())
1220: {
1221: list = (from evpu in db.EmsVoipPstnUsers
1222: join ed in db.EmsDevs on evpu.DID equals ed.DID
1223: where evpu.EmsOnt == null /*&& evpu.DN.StartsWith("+965")*/ && didList.Contains(ed.DID)
1224: select new Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev.Lic
1225: {
1226: EmsVoipPstnUserId = evpu.Id,
1227: Did = evpu.DID,
1228: Fn = evpu.FN,
1229: Sn = evpu.SN,
1230: Pn = evpu.PN,
1231: Dn = evpu.DN,
1232: Created = evpu.Created,
1233: Updated = evpu.Updated
1234: }).AsNoTracking().ToList();
1235:
1236: foreach (var l in list)
1237: {
1238: l.Service = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(l.Dn);
1239: l.MsanId = msan.Id;
1240: l.MsanNameSymbol = msan.NameSymbol;
1241:
1242: msanDev = (from m in msanDevList where m.Did == l.Did select m).Single();
1243:
1244: l.MsanDevId = msanDev.Id;
1245: l.MsanDevDev = msanDev.Dev;
1246: l.Cabinet = msanDev.Cabinet;
1247: l.Frame = msanDev.Frame;
1248: }
1249: }
1250:
1251: return list;
1252: }
1253:
1254: ////////////////////////////////////////////////////////////////////////////
1255:
1256: /// <summary>
1257: ///
1258: /// </summary>
1259: public static List<Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev.Lic> MsanDevLicListByNddMsanAndCabinet(Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Msan msan, int cabinet)
1260: {
1261: Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev msanDev;
1262: List<Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev.Lic> list;
1263:
1264: var msanDevList = (from m in Ia.Ftn.Cl.Model.Data.Huawei.Default.MsanDevList
1265: where m.Msan.Id == msan.Id && m.Cabinet == cabinet
1266: select m).ToList();
1267:
1268: var didList = msanDevList.Select(u => u.Did).ToList();
1269:
1270: using (var db = new Ia.Ftn.Cl.Model.Db())
1271: {
1272: list = (from evpu in db.EmsVoipPstnUsers
1273: join ed in db.EmsDevs on evpu.DID equals ed.DID
1274: where evpu.EmsOnt == null /*&& evpu.DN.StartsWith("+965")*/ && didList.Contains(ed.DID)
1275: select new Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev.Lic
1276: {
1277: EmsVoipPstnUserId = evpu.Id,
1278: Did = evpu.DID,
1279: Fn = evpu.FN,
1280: Sn = evpu.SN,
1281: Pn = evpu.PN,
1282: Dn = evpu.DN,
1283: Created = evpu.Created,
1284: Updated = evpu.Updated
1285: }).AsNoTracking().ToList();
1286:
1287: foreach (var l in list)
1288: {
1289: l.Service = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(l.Dn);
1290: l.MsanId = msan.Id;
1291: l.MsanNameSymbol = msan.NameSymbol;
1292:
1293: msanDev = (from m in msanDevList where m.Did == l.Did select m).Single();
1294:
1295: l.MsanDevId = msanDev.Id;
1296: l.MsanDevDev = msanDev.Dev;
1297: l.Cabinet = msanDev.Cabinet;
1298: l.Frame = msanDev.Frame;
1299: }
1300: }
1301:
1302: return list;
1303: }
1304:
1305: ////////////////////////////////////////////////////////////////////////////
1306:
1307: /// <summary>
1308: ///
1309: /// </summary>
1310: public static List<Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev.Lic> MsanDevLicListByNddMsanAndCabinetAndFrame(Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Msan msan, int cabinet, int frame)
1311: {
1312: Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev msanDev;
1313: List<Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev.Lic> list;
1314:
1315: var msanDevList = (from m in Ia.Ftn.Cl.Model.Data.Huawei.Default.MsanDevList
1316: where m.Msan.Id == msan.Id && m.Cabinet == cabinet && m.Frame == frame
1317: select m).ToList();
1318:
1319: var didList = msanDevList.Select(u => u.Did).ToList();
1320:
1321: using (var db = new Ia.Ftn.Cl.Model.Db())
1322: {
1323: list = (from evpu in db.EmsVoipPstnUsers
1324: join ed in db.EmsDevs on evpu.DID equals ed.DID
1325: where evpu.EmsOnt == null /*&& evpu.DN.StartsWith("+965")*/ && didList.Contains(ed.DID)
1326: select new Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev.Lic
1327: {
1328: EmsVoipPstnUserId = evpu.Id,
1329: Did = evpu.DID,
1330: Fn = evpu.FN,
1331: Sn = evpu.SN,
1332: Pn = evpu.PN,
1333: Dn = evpu.DN,
1334: Created = evpu.Created,
1335: Updated = evpu.Updated
1336: }).AsNoTracking().ToList();
1337:
1338: foreach (var l in list)
1339: {
1340: l.Service = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(l.Dn);
1341: l.MsanId = msan.Id;
1342: l.MsanNameSymbol = msan.NameSymbol;
1343:
1344: msanDev = (from m in msanDevList where m.Did == l.Did select m).Single();
1345:
1346: l.MsanDevId = msanDev.Id;
1347: l.MsanDevDev = msanDev.Dev;
1348: l.Cabinet = msanDev.Cabinet;
1349: l.Frame = msanDev.Frame;
1350: }
1351: }
1352:
1353: return list;
1354: }
1355:
1356: ////////////////////////////////////////////////////////////////////////////
1357:
1358: /// <summary>
1359: ///
1360: /// </summary>
1361: public static List<Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev.Lic> MsanDevLicListByNddMsanAndCabinetAndFrameAndFn(Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Msan msan, int cabinet, int frame, int fn)
1362: {
1363: Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev msanDev;
1364: List<Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev.Lic> list;
1365:
1366: var msanDevList = (from m in Ia.Ftn.Cl.Model.Data.Huawei.Default.MsanDevList
1367: where m.Msan.Id == msan.Id && m.Cabinet == cabinet && m.Frame == frame
1368: select m).ToList();
1369:
1370: var didList = msanDevList.Select(u => u.Did).ToList();
1371:
1372: using (var db = new Ia.Ftn.Cl.Model.Db())
1373: {
1374: list = (from evpu in db.EmsVoipPstnUsers
1375: join ed in db.EmsDevs on evpu.DID equals ed.DID
1376: where evpu.EmsOnt == null /*&& evpu.DN.StartsWith("+965")*/ && didList.Contains(ed.DID) && evpu.FN == fn
1377: select new Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev.Lic
1378: {
1379: EmsVoipPstnUserId = evpu.Id,
1380: Did = evpu.DID,
1381: Fn = evpu.FN,
1382: Sn = evpu.SN,
1383: Pn = evpu.PN,
1384: Dn = evpu.DN,
1385: Created = evpu.Created,
1386: Updated = evpu.Updated
1387: }).AsNoTracking().ToList();
1388:
1389: foreach (var l in list)
1390: {
1391: l.Service = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(l.Dn);
1392: l.MsanId = msan.Id;
1393: l.MsanNameSymbol = msan.NameSymbol;
1394:
1395: msanDev = (from m in msanDevList where m.Did == l.Did select m).Single();
1396:
1397: l.MsanDevId = msanDev.Id;
1398: l.MsanDevDev = msanDev.Dev;
1399: l.Cabinet = msanDev.Cabinet;
1400: l.Frame = msanDev.Frame;
1401: }
1402: }
1403:
1404: return list;
1405: }
1406:
1407: ////////////////////////////////////////////////////////////////////////////
1408:
1409: /// <summary>
1410: ///
1411: /// </summary>
1412: public static List<Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev.Lic> MsanDevLicListByNddMsanAndCabinetAndFrameAndFnAndSn(Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Msan msan, int cabinet, int frame, int fn, int sn)
1413: {
1414: Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev msanDev;
1415: List<Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev.Lic> list;
1416:
1417: var msanDevList = (from m in Ia.Ftn.Cl.Model.Data.Huawei.Default.MsanDevList
1418: where m.Msan.Id == msan.Id && m.Cabinet == cabinet && m.Frame == frame
1419: select m).ToList();
1420:
1421: var didList = msanDevList.Select(u => u.Did).ToList();
1422:
1423: using (var db = new Ia.Ftn.Cl.Model.Db())
1424: {
1425: list = (from evpu in db.EmsVoipPstnUsers
1426: join ed in db.EmsDevs on evpu.DID equals ed.DID
1427: where evpu.EmsOnt == null /*&& evpu.DN.StartsWith("+965")*/ && didList.Contains(ed.DID) && evpu.FN == fn && evpu.SN == sn
1428: select new Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev.Lic
1429: {
1430: EmsVoipPstnUserId = evpu.Id,
1431: Did = evpu.DID,
1432: Fn = evpu.FN,
1433: Sn = evpu.SN,
1434: Pn = evpu.PN,
1435: Dn = evpu.DN,
1436: Created = evpu.Created,
1437: Updated = evpu.Updated
1438: }).AsNoTracking().ToList();
1439:
1440: foreach (var l in list)
1441: {
1442: l.Service = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(l.Dn);
1443: l.MsanId = msan.Id;
1444: l.MsanNameSymbol = msan.NameSymbol;
1445:
1446: msanDev = (from m in msanDevList where m.Did == l.Did select m).Single();
1447:
1448: l.MsanDevId = msanDev.Id;
1449: l.MsanDevDev = msanDev.Dev;
1450: l.Cabinet = msanDev.Cabinet;
1451: l.Frame = msanDev.Frame;
1452: }
1453: }
1454:
1455: return list;
1456: }
1457:
1458: ////////////////////////////////////////////////////////////////////////////
1459:
1460: /// <summary>
1461: ///
1462: /// </summary>
1463: public static Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev.Lic MsanDevLicByEmsVoipPstnUserId(string emsVoipPstnUserId)
1464: {
1465: Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev.Lic lic;
1466:
1467: using (var db = new Ia.Ftn.Cl.Model.Db())
1468: {
1469: lic = (from evpu in db.EmsVoipPstnUsers
1470: where evpu.Id == emsVoipPstnUserId
1471: select new Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev.Lic
1472: {
1473: EmsVoipPstnUserId = evpu.Id,
1474: Did = evpu.DID,
1475: Fn = evpu.FN,
1476: Sn = evpu.SN,
1477: Pn = evpu.PN,
1478: Dn = evpu.DN,
1479: Created = evpu.Created,
1480: Updated = evpu.Updated
1481: }).AsNoTracking().SingleOrDefault();
1482:
1483: var msanDev = (from m in Ia.Ftn.Cl.Model.Data.Huawei.Default.MsanDevList
1484: where m.Did == lic.Did
1485: select m).Single();
1486:
1487: lic.Service = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(lic.Dn);
1488: lic.MsanId = msanDev.Msan.Id;
1489: lic.MsanNameSymbol = msanDev.Msan.NameSymbol;
1490: lic.MsanDevId = msanDev.Id;
1491: lic.MsanDevDev = msanDev.Dev;
1492: lic.Cabinet = msanDev.Cabinet;
1493: lic.Frame = msanDev.Frame;
1494: }
1495:
1496: return lic;
1497: }
1498:
1499: ////////////////////////////////////////////////////////////////////////////
1500:
1501: /// <summary>
1502: ///
1503: /// </summary>
1504: public static Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev.Lic MsanDevLicByNddMsanAndCabinetAndFrameAndFnAndSnAndPn(Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Msan msan, int cabinet, int frame, int fn, int sn, int pn)
1505: {
1506: Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev.Lic lic;
1507:
1508: var msanDev = (from m in Ia.Ftn.Cl.Model.Data.Huawei.Default.MsanDevList
1509: where m.Msan.Id == msan.Id && m.Cabinet == cabinet && m.Frame == frame
1510: select m).SingleOrDefault();
1511:
1512: if (msanDev != null)
1513: {
1514: using (var db = new Ia.Ftn.Cl.Model.Db())
1515: {
1516: lic = (from evpu in db.EmsVoipPstnUsers
1517: join ed in db.EmsDevs on evpu.DID equals ed.DID
1518: where evpu.EmsOnt == null && msanDev.Did == ed.DID && evpu.FN == fn && evpu.SN == sn && evpu.PN == pn
1519: select new Ia.Ftn.Cl.Model.Business.Huawei.Dev.MsanDev.Lic
1520: {
1521: EmsVoipPstnUserId = evpu.Id,
1522: Did = evpu.DID,
1523: Fn = evpu.FN,
1524: Sn = evpu.SN,
1525: Pn = evpu.PN,
1526: Dn = evpu.DN,
1527: Created = evpu.Created,
1528: Updated = evpu.Updated
1529: }).AsNoTracking().SingleOrDefault();
1530:
1531: if (lic != null)
1532: {
1533: lic.Service = Ia.Ftn.Cl.Model.Business.NumberFormatConverter.Service(lic.Dn);
1534: lic.MsanId = msanDev.Msan.Id;
1535: lic.MsanNameSymbol = msanDev.Msan.NameSymbol;
1536: lic.MsanDevId = msanDev.Id;
1537: lic.MsanDevDev = msanDev.Dev;
1538: lic.Cabinet = msanDev.Cabinet;
1539: lic.Frame = msanDev.Frame;
1540: }
1541: }
1542: }
1543: else lic = null;
1544:
1545: return lic;
1546: }
1547:
1548: ////////////////////////////////////////////////////////////////////////////
1549:
1550: /// <summary>
1551: ///
1552: /// </summary>
1553: public static Dictionary<string, string> IdToOntIdDictionary
1554: {
1555: get
1556: {
1557: Dictionary<string, string> dictionary;
1558:
1559: using (var db = new Ia.Ftn.Cl.Model.Db())
1560: {
1561: dictionary = (from evpu in db.EmsVoipPstnUsers
1562: where evpu.EmsOnt != null
1563: select new { evpu.Id, OntId = evpu.EmsOnt.Id }).ToDictionary(u => u.Id, u => u.OntId);
1564: }
1565:
1566: return dictionary.ToDictionary(u => u.Key, u => u.Value);
1567: }
1568: }
1569:
1570: ////////////////////////////////////////////////////////////////////////////
1571: ////////////////////////////////////////////////////////////////////////////
1572:
1573: /// <summary>
1574: ///
1575: /// </summary>
1576: public static string ToSimpleTextString(Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser emsVoipPstnUser)
1577: {
1578: StringBuilder sb;
1579:
1580: sb = new StringBuilder();
1581:
1582: //sb.AppendLine("Vendor: " + Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.Vendor.Huawei.Name);
1583: sb.AppendLine("DID: " + emsVoipPstnUser.DID);
1584: sb.AppendLine("FN: " + emsVoipPstnUser.FN);
1585: sb.AppendLine("SN: " + emsVoipPstnUser.SN);
1586: sb.AppendLine("PN: " + emsVoipPstnUser.PN);
1587: sb.AppendLine("MGID: " + emsVoipPstnUser.MGID);
1588: sb.AppendLine("MGNAME: " + emsVoipPstnUser.MGNAME);
1589: sb.AppendLine("TID: " + emsVoipPstnUser.TID);
1590: sb.AppendLine("DN: " + emsVoipPstnUser.DN);
1591: sb.AppendLine("LayeredConf: " + emsVoipPstnUser.LayeredConf);
1592: sb.AppendLine("HighLevelWidth: " + emsVoipPstnUser.HighLevelWidth);
1593: sb.AppendLine("LowerLevelWidth: " + emsVoipPstnUser.LowerLevelWidth);
1594: sb.AppendLine("Voltage: " + emsVoipPstnUser.Voltage);
1595: sb.AppendLine("KCType: " + emsVoipPstnUser.KCType);
1596: sb.AppendLine("VoiceGain: " + emsVoipPstnUser.VoiceGain);
1597: sb.AppendLine("LimitPulseDial: " + emsVoipPstnUser.LimitPulseDial);
1598: sb.AppendLine("RevPolarity: " + emsVoipPstnUser.RevPolarity);
1599: sb.AppendLine("RevPoleLevel: " + emsVoipPstnUser.RevPoleLevel);
1600: sb.AppendLine("RevPolePulse: " + emsVoipPstnUser.RevPolePulse);
1601: sb.AppendLine("PSTAT: " + emsVoipPstnUser.PSTAT);
1602: sb.AppendLine("ConfigStatus: " + emsVoipPstnUser.ConfigStatus);
1603: sb.AppendLine("ServiceStatus: " + emsVoipPstnUser.ServiceStatus);
1604: sb.AppendLine("ServiceType: " + emsVoipPstnUser.ServiceType);
1605: sb.AppendLine("ALIAS: " + emsVoipPstnUser.ALIAS);
1606: sb.AppendLine("UserType: " + emsVoipPstnUser.UserType);
1607: sb.AppendLine("Impedance: " + emsVoipPstnUser.Impedance);
1608: sb.AppendLine("Current: " + emsVoipPstnUser.Current);
1609: sb.AppendLine("DCTime: " + emsVoipPstnUser.DCTime);
1610: sb.AppendLine("PITime: " + emsVoipPstnUser.PITime);
1611: sb.AppendLine("FSKDelayInterval: " + emsVoipPstnUser.FSKDelayInterval);
1612: sb.AppendLine("ActualVoiceGain: " + emsVoipPstnUser.ActualVoiceGain);
1613: sb.AppendLine("CidTransWhen: " + emsVoipPstnUser.CidTransWhen);
1614: sb.AppendLine("CidFormat: " + emsVoipPstnUser.CidFormat);
1615: sb.AppendLine("OverloadPRI: " + emsVoipPstnUser.OverloadPRI);
1616: sb.AppendLine("ImpedanceProfile: " + emsVoipPstnUser.ImpedanceProfile);
1617: sb.AppendLine("SendVoiceGain: " + emsVoipPstnUser.SendVoiceGain);
1618: sb.AppendLine("RecvVoiceGain: " + emsVoipPstnUser.RecvVoiceGain);
1619: sb.AppendLine("RevPolarityMode: " + emsVoipPstnUser.RevPolarityMode);
1620: sb.AppendLine("PortRunState: " + emsVoipPstnUser.PortRunState);
1621: sb.AppendLine("PortTestState: " + emsVoipPstnUser.PortTestState);
1622: sb.AppendLine("PortLineState: " + emsVoipPstnUser.PortLineState);
1623: sb.AppendLine("PortLoopState: " + emsVoipPstnUser.PortLoopState);
1624: sb.AppendLine("ServiceRunState: " + emsVoipPstnUser.ServiceRunState);
1625: sb.AppendLine("ServiceAdminState: " + emsVoipPstnUser.ServiceAdminState);
1626: sb.AppendLine("ActualSendVoiceGain: " + emsVoipPstnUser.ActualSendVoiceGain);
1627: sb.AppendLine("ActualRecvVo: " + emsVoipPstnUser.ActualRecvVo);
1628: sb.AppendLine("AGCEnable: " + emsVoipPstnUser.AGCEnable);
1629: sb.AppendLine("AGCEnableLevel: " + emsVoipPstnUser.AGCEnableLevel);
1630: sb.AppendLine("SNSEnable: " + emsVoipPstnUser.SNSEnable);
1631: sb.AppendLine("SNSEnableLevel: " + emsVoipPstnUser.SNSEnableLevel);
1632: sb.AppendLine("NlpMode: " + emsVoipPstnUser.NlpMode);
1633: sb.AppendLine("LineLockEnable: " + emsVoipPstnUser.LineLockEnable);
1634: sb.AppendLine("DspInputGain: " + emsVoipPstnUser.DspInputGain);
1635: sb.AppendLine("DspOutputGain: " + emsVoipPstnUser.DspOutputGain);
1636: sb.AppendLine("ClipReversePole: " + emsVoipPstnUser.ClipReversePole);
1637: sb.AppendLine("DEFAULTCLI: " + emsVoipPstnUser.DEFAULTCLI);
1638: sb.AppendLine("USERGROUPID: " + emsVoipPstnUser.USERGROUPID);
1639: sb.AppendLine("ADJUSTFACTOR: " + emsVoipPstnUser.ADJUSTFACTOR);
1640: sb.AppendLine("DSPPROFILE: " + emsVoipPstnUser.DSPPROFILE);
1641:
1642: return sb.ToString();
1643: }
1644:
1645: ////////////////////////////////////////////////////////////////////////////
1646:
1647: /// <summary>
1648: ///
1649: /// </summary>
1650: public static string ToSimpleDidFnSnPnTextString(Ia.Ftn.Cl.Model.Huawei.EmsVoipPstnUser emsVoipPstnUser)
1651: {
1652: var s = "DID: " + emsVoipPstnUser.DID + ", FN: " + emsVoipPstnUser.FN + ", SN: " + emsVoipPstnUser.SN + ", PN: " + emsVoipPstnUser.PN;
1653:
1654: return s;
1655: }
1656:
1657: ////////////////////////////////////////////////////////////////////////////
1658: ////////////////////////////////////////////////////////////////////////////
1659: }
1660:
1661: ////////////////////////////////////////////////////////////////////////////
1662: ////////////////////////////////////////////////////////////////////////////
1663: }
- 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