1: using System;
2: using System.Collections.Generic;
3: using System.Data;
4: using System.Linq;
5: using System.Text;
6:
7: namespace Ia.Ngn.Cl.Model.Business
8: {
9: ////////////////////////////////////////////////////////////////////////////
10:
11: /// <summary publish="true">
12: /// Service Request Service support class of Optical Fiber Network (OFN) business model.
13: /// </summary>
14: ///
15: /// <remarks>
16: /// Copyright © 2006-2019 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
17: ///
18: /// 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
19: /// the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
20: ///
21: /// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
22: /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
23: ///
24: /// You should have received a copy of the GNU General Public License along with this library. If not, see http://www.gnu.org/licenses.
25: ///
26: /// Copyright notice: This notice may not be removed or altered from any source distribution.
27: /// </remarks>
28: public class ServiceRequestService
29: {
30: private static readonly StringBuilder log = new StringBuilder();
31:
32: ////////////////////////////////////////////////////////////////////////////
33:
34: /// <summary>
35: ///
36: /// </summary>
37: public enum ServiceRequestServiceType { Create = 1, Read, Update, Delete };
38:
39: ////////////////////////////////////////////////////////////////////////////
40:
41: /// <summary>
42: ///
43: /// </summary>
44: public ServiceRequestService() { }
45:
46: ////////////////////////////////////////////////////////////////////////////
47:
48: /// <summary>
49: ///
50: /// </summary>
51: public static string ServiceIdToService(string service)
52: {
53: return Ia.Ngn.Cl.Model.Business.Service.ServiceIdToService(service);
54: }
55:
56: ////////////////////////////////////////////////////////////////////////////
57:
58: /// <summary>
59: ///
60: /// </summary>
61: public static string ServiceRequestServiceId(string service, int serviceType)
62: {
63: // below:
64: string id;
65:
66: id = Ia.Ngn.Cl.Model.Business.Service2.ServiceId(service, serviceType);
67:
68: return id;
69: }
70:
71: ////////////////////////////////////////////////////////////////////////////
72:
73: /// <summary>
74: /// Update service-request-service table with data from service requests
75: /// </summary>
76: public static List<string> UpdateForServiceRequestIdRange(Tuple<int, int> startEndRange, out string result)
77: {
78: List<int> numberList;
79: List<string> mismatchedProvisionStateBetweenDefaultSrsAndHistoricalSrsServiceList;
80: List<Ia.Ngn.Cl.Model.ServiceRequest> serviceRequestList;
81:
82: // 1. Read all SRs for this range
83: serviceRequestList = Ia.Ngn.Cl.Model.Data.ServiceRequest.ListWithinIdRange(startEndRange.Item1, startEndRange.Item2);
84:
85: // 2. Collect numbers in int format into int list
86: numberList = serviceRequestList.NumberList();
87:
88: mismatchedProvisionStateBetweenDefaultSrsAndHistoricalSrsServiceList = UpdateForServiceList(numberList, out result);
89:
90: return mismatchedProvisionStateBetweenDefaultSrsAndHistoricalSrsServiceList;
91: }
92:
93: ////////////////////////////////////////////////////////////////////////////
94:
95: /// <summary>
96: ///
97: /// </summary>
98: public static List<string> UpdateForService(string service, out string result)
99: {
100: List<int> numberList;
101: List<string> mismatchedProvisionStateBetweenDefaultSrsAndHistoricalSrsServiceList;
102:
103: numberList = new List<int>();
104: mismatchedProvisionStateBetweenDefaultSrsAndHistoricalSrsServiceList = new List<string>();
105:
106: if (int.TryParse(service, out int i))
107: {
108: numberList.Add(i);
109:
110: mismatchedProvisionStateBetweenDefaultSrsAndHistoricalSrsServiceList = UpdateForServiceList(numberList, out result);
111: }
112: else
113: {
114: result = "Error: service: " + service + " is not in integer format. ";
115: }
116:
117: return mismatchedProvisionStateBetweenDefaultSrsAndHistoricalSrsServiceList;
118: }
119:
120: ////////////////////////////////////////////////////////////////////////////
121:
122: /// <summary>
123: ///
124: /// </summary>
125: public static List<string> UpdateForServiceList(List<int> numberList, out string result)
126: {
127: int number;
128: string r0, r1, r2;
129: List<int> numberAndChangedAndChangedToList;
130: List<string> serviceList, service1List, service2List, mismatchedProvisionStateBetweenDefaultSrsAndHistoricalSrsServiceList;
131: List<Ia.Ngn.Cl.Model.ServiceRequestType> serviceRequestTypeList;
132: List<Ia.Ngn.Cl.Model.ServiceRequest> serviceRequestList;
133: List<Ia.Ngn.Cl.Model.ServiceRequestHistory> serviceRequestHistoryList;
134: List<Ia.Ngn.Cl.Model.ServiceRequestService> serviceRequestServiceList, serviceRequestServiceDefaultList, serviceRequestServiceHistoryList;
135:
136: r0 = r1 = r2 = string.Empty;
137:
138: serviceList = new List<string>();
139: mismatchedProvisionStateBetweenDefaultSrsAndHistoricalSrsServiceList = new List<string>();
140: serviceRequestServiceList = new List<Ia.Ngn.Cl.Model.ServiceRequestService>();
141:
142: using (var db = new Ia.Ngn.Cl.Model.Ngn()) // important to enable usage of Include from different functions
143: {
144: // SR
145: // collect numbers in int format into int list
146: numberAndChangedAndChangedToList = Ia.Ngn.Cl.Model.Data.ServiceRequest.ServiceNumberListAndRelatedChangedAndChangedToServiceNumberListByServiceNumberList(numberList);
147:
148: if (numberAndChangedAndChangedToList.Count > 0)
149: {
150: // read all SRs related to collected numbers
151: serviceRequestList = Ia.Ngn.Cl.Model.Data.ServiceRequest.List(numberAndChangedAndChangedToList);
152:
153: // read all SRTs related to collected numbers
154: serviceRequestTypeList = Ia.Ngn.Cl.Model.Data.ServiceRequestType.List(numberAndChangedAndChangedToList);
155:
156: // collect numbers in string format into int list
157: service1List = (from n in numberAndChangedAndChangedToList select n.ToString()).ToList<string>();
158:
159: serviceRequestServiceDefaultList = ServiceRequestServiceFromServiceRequest(serviceRequestList, serviceRequestTypeList);
160:
161: // remove duplicates (Linq orderyby boolean See http://stackoverflow.com/questions/9481054/linq-orderyby-boolean)
162: serviceRequestServiceDefaultList = serviceRequestServiceDefaultList.OrderByDescending(u => u.Serial).OrderByDescending(u => u.Provisioned).OrderByDescending(u => u.LastRequestDateTime).GroupBy(u => u.Id).Select(u => u.First()).ToList();
163: }
164: else
165: {
166: serviceRequestList = new List<Ia.Ngn.Cl.Model.ServiceRequest>();
167: serviceRequestTypeList = new List<Ia.Ngn.Cl.Model.ServiceRequestType>();
168: service1List = new List<string>();
169:
170: serviceRequestServiceDefaultList = new List<Ia.Ngn.Cl.Model.ServiceRequestService>();
171: }
172:
173: //foreach (var srsd in serviceRequestServiceDefaultList) serviceRequestServiceList.Add(srsd);
174: foreach (var s in service1List) serviceList.Add(s);
175:
176: // SRH
177: // read all SRHs related to collected numbers
178: serviceRequestHistoryList = Ia.Ngn.Cl.Model.Data.ServiceRequestHistory.List(numberAndChangedAndChangedToList);
179:
180: // read the last provisioning state and last serial of all numbers in SRH
181: Ia.Ngn.Cl.Model.Business.ServiceRequestHistory.NumberSerialProvisionedDictionary(serviceRequestHistoryList,
182: out Dictionary<int, int> numberSerial,
183: out Dictionary<int, bool> numberProvisioned);
184:
185: // collect numbers in string format into int list
186: service2List = (from n in numberAndChangedAndChangedToList select n.ToString()).ToList<string>();
187:
188: if (serviceRequestHistoryList.Count > 0)
189: {
190: serviceRequestServiceHistoryList = ServiceRequestServiceFromServiceRequestHistory(serviceRequestHistoryList);
191:
192: // remove duplicates (Linq orderyby boolean See http://stackoverflow.com/questions/9481054/linq-orderyby-boolean)
193: serviceRequestServiceHistoryList = serviceRequestServiceHistoryList.OrderByDescending(u => u.Serial).OrderByDescending(u => u.Provisioned).OrderByDescending(u => u.LastRequestDateTime).GroupBy(u => u.Id).Select(u => u.First()).ToList();
194: }
195: else serviceRequestServiceHistoryList = new List<Ia.Ngn.Cl.Model.ServiceRequestService>();
196:
197:
198: // construct SRS from SR and SRH. Primary copy will come from SR, but provisioning state will be taken from SRH only, other complementary service will be taken from both
199: foreach (var srsd in serviceRequestServiceDefaultList)
200: {
201: serviceRequestServiceList.Add(srsd);
202: }
203:
204:
205: foreach (var srsh in serviceRequestServiceHistoryList)
206: {
207: if (!serviceRequestServiceList.Any(u => u.Id == srsh.Id)) serviceRequestServiceList.Add(srsh);
208: else
209: {
210: var serviceRequestService = serviceRequestServiceList.Single(u => u.Id == srsh.Id);
211:
212: // order is important before below
213: if (serviceRequestService.Provisioned != srsh.Provisioned) mismatchedProvisionStateBetweenDefaultSrsAndHistoricalSrsServiceList.Add(serviceRequestService.Service);
214:
215: serviceRequestService.Provisioned = srsh.Provisioned; // this Provisioned value is from SRH records. SRH determines state of SR
216:
217: serviceRequestService.InternationalCalling = srsh.InternationalCalling || serviceRequestService.InternationalCalling;
218: serviceRequestService.InternationalCallingUserControlled = srsh.InternationalCallingUserControlled || serviceRequestService.InternationalCallingUserControlled;
219: serviceRequestService.CallForwarding = srsh.CallForwarding || serviceRequestService.CallForwarding;
220: serviceRequestService.CallWaiting = srsh.CallWaiting || serviceRequestService.CallWaiting;
221: serviceRequestService.ConferenceCall = srsh.ConferenceCall || serviceRequestService.ConferenceCall;
222: serviceRequestService.AlarmCall = srsh.AlarmCall || serviceRequestService.AlarmCall;
223: serviceRequestService.WakeupCall = srsh.WakeupCall || serviceRequestService.WakeupCall;
224: serviceRequestService.AbbriviatedCalling = srsh.AbbriviatedCalling || serviceRequestService.AbbriviatedCalling;
225: //serviceRequestService.ServiceSuspension = srsd.ServiceSuspension || serviceRequestService.ServiceSuspension;
226:
227: //serviceRequestService.Access = srsh.Access;
228: //if (srsd.Access != null) serviceRequestService.Access = (from a in db.Accesses where a.Id == srsd.Access.Id select a).SingleOrDefault();
229: //else serviceRequestService.Access = null;
230: }
231: }
232:
233:
234:
235: foreach (var srs in serviceRequestServiceList)
236: {
237: number = int.Parse(srs.Service);
238:
239: if (numberSerial.ContainsKey(number))
240: {
241: srs.Serial = numberSerial[number];
242: srs.Provisioned = numberProvisioned[number];
243: }
244: }
245:
246:
247:
248:
249: foreach (var s in service2List) serviceList.Add(s);
250:
251: serviceList = serviceList.Distinct().ToList();
252:
253: // update service request services
254: Ia.Ngn.Cl.Model.Data.ServiceRequestService.UpdateWithServiceList(serviceList, serviceRequestServiceList, out r1);
255:
256: // update service requests with SRS foreign keys
257: Ia.Ngn.Cl.Model.Data.ServiceRequest.UpdateWithServiceList(serviceList, serviceRequestList, out r2);
258: }
259:
260: result = "(SRS:" + r1 + ",SR with SRS key:" + r2 + ")";
261:
262: return mismatchedProvisionStateBetweenDefaultSrsAndHistoricalSrsServiceList;
263: }
264:
265: ////////////////////////////////////////////////////////////////////////////
266:
267: /// <summary>
268: ///
269: /// </summary>
270: public static List<Ia.Ngn.Cl.Model.ServiceRequestService> ServiceRequestServiceFromServiceRequest(List<Ia.Ngn.Cl.Model.ServiceRequest> serviceRequestList, List<Ia.Ngn.Cl.Model.ServiceRequestType> serviceRequestTypeList)
271: {
272: int serial, serviceType, serviceId;
273: string service, serviceSerial, serviceRequestServiceId, changedToServiceRequestServiceId, changedToServiceNumber;
274: DateTime lastRequestDateTime;
275: Ia.Ngn.Cl.Model.ServiceRequestService serviceRequestService, changedToServiceRequestService;
276: Dictionary<string, int> serviceToSerialDictionary;
277: List<Ia.Ngn.Cl.Model.ServiceRequestService> serviceRequestServiceList;
278:
279: serviceType = Ia.Ngn.Cl.Model.Business.Service.ServiceType.ImsService; // irrelevant?
280: lastRequestDateTime = DateTime.MinValue;
281: serviceRequestServiceList = new List<Ia.Ngn.Cl.Model.ServiceRequestService>(serviceRequestList.Count);
282: serviceToSerialDictionary = new Dictionary<string, int>();
283:
284:
285: // create initial serviceRequestServiceList from serviceList with all Provisioned = false records:
286:
287:
288: // 11. Loop through all sr records by request id ascending
289: var list = serviceRequestList.OrderBy(p => p.RequestDateTime.Date).ThenBy(p => p.ServiceId == 38).ThenBy(p => p.Id); // <service id="38" arabicName="مجموعة الخدمات" />
290: foreach (Ia.Ngn.Cl.Model.ServiceRequest serviceRequest in list) // serviceRequestList.OrderBy(p => p.Id))
291: {
292: if (Ia.Ngn.Cl.Model.Business.Authority.ServiceRequestIsAllowedProcessing(serviceRequest))
293: {
294: if (serviceRequest.ServiceCategoryId == 3)
295: {
296: // <category id="3" arabicName="هاتف" />
297:
298: if (serviceRequest.Status == 2003 || serviceRequest.Status == 2005)
299: {
300: // <status id="2003" arabicName="قيد التنفيذ" />
301: // <status id="2005" arabicName="تم التنفيذ" />
302:
303: service = serviceRequest.Number.ToString();
304: serial = serviceRequest.Serial;
305: serviceId = serviceRequest.ServiceId;
306: serviceSerial = service + ":" + serial;
307:
308: serviceRequestServiceId = Ia.Ngn.Cl.Model.Business.ServiceRequestService.ServiceRequestServiceId(service, serviceType);
309:
310: serviceRequestService = (from srs in serviceRequestServiceList
311: where srs.Id == serviceRequestServiceId
312: select srs).OrderByDescending(u => u.Serial).OrderByDescending(u => u.LastRequestDateTime).GroupBy(u => u.Id).Select(u => u.First()).FirstOrDefault(); //.SingleOrDefault();
313:
314: if (serviceRequestService == null || serviceRequestService.Provisioned == false)
315: {
316: if (serviceId == 1 || serviceId == 129 || serviceId == 54)
317: {
318: // <service id="1" arabicName="خط هاتف" />
319: // <service id="129" arabicName="خط هاتف مع نداء آلي"/>
320: // <service id="54" arabicName="اعادة تركيب" />
321:
322: serviceRequestService = new Ia.Ngn.Cl.Model.ServiceRequestService();
323:
324: serviceRequestService.Id = serviceRequestServiceId;
325: serviceRequestService.Service = service;
326: serviceRequestService.Serial = serial;
327: serviceRequestService.AreaCode = Ia.Ngn.Cl.Model.Business.Service.CountryCode;
328: serviceRequestService.ServiceType = serviceType;
329: serviceRequestService.Provisioned = true;
330:
331: TelephonyService(serviceRequest, serviceRequestTypeList, ref serviceRequestService);
332:
333: serviceRequestServiceList.Add(serviceRequestService);
334: serviceRequest.ServiceRequestService = serviceRequestService;
335:
336: lastRequestDateTime = serviceRequest.RequestDateTime;
337: if (serviceRequestService.LastRequestDateTime < lastRequestDateTime) serviceRequestService.LastRequestDateTime = lastRequestDateTime;
338: }
339: else
340: {
341: // incomplete service request list for serial
342: }
343: }
344: else
345: {
346: if (serviceRequestService.Provisioned && serviceRequestService.Serial == serial)
347: {
348: if (serviceRequest.ServiceId == 41)
349: {
350: // <service id="41" arabicName="تغيير رقم" />
351:
352: // below: <type id="11" name="dn" arabicName="dn" oracleFieldName="الرقم الجديد"/>
353: changedToServiceNumber = (from srt in serviceRequestTypeList
354: where srt.ServiceRequest.Id == serviceRequest.Id && srt.TypeId == 11 && srt.Value != null
355: select srt.Value).SingleOrDefault();
356:
357: if (Ia.Ngn.Cl.Model.Business.Service.ServiceHasEightDigitsAndIsWithinAllowedDomainList(changedToServiceNumber)) // important because some numbers are null
358: {
359: // Set Provision to false for changed number
360: serviceRequestService.Provisioned = false;
361:
362: // Create or update entry for new number
363: changedToServiceRequestServiceId = Ia.Ngn.Cl.Model.Business.ServiceRequestService.ServiceRequestServiceId(changedToServiceNumber, serviceType);
364:
365: changedToServiceRequestService = (from srs in serviceRequestServiceList
366: where srs.Id == changedToServiceRequestServiceId
367: select srs).OrderByDescending(u => u.Serial).OrderByDescending(u => u.LastRequestDateTime).GroupBy(u => u.Id).Select(u => u.First()).FirstOrDefault(); //.SingleOrDefault();
368:
369: if (changedToServiceRequestService == null)
370: {
371: changedToServiceRequestService = new Ia.Ngn.Cl.Model.ServiceRequestService();
372: changedToServiceRequestService.Id = changedToServiceRequestServiceId; // keep here and keep below
373:
374: serviceRequestServiceList.Add(changedToServiceRequestService);
375:
376: changedToServiceRequestService = (from srs in serviceRequestServiceList
377: where srs.Id == changedToServiceRequestServiceId
378: select srs).OrderByDescending(u => u.Serial).OrderByDescending(u => u.LastRequestDateTime).GroupBy(u => u.Id).Select(u => u.First()).FirstOrDefault(); //.SingleOrDefault();
379: }
380:
381: changedToServiceRequestService.Copy(serviceRequestService); // order is very important, first copy then modify
382: changedToServiceRequestService.Id = changedToServiceRequestServiceId; // keep here and keep above
383: changedToServiceRequestService.Service = changedToServiceNumber;
384: // below: you must assign a serial that is an increment of any previously existing serial for the changed-to number, or 0 if non
385: changedToServiceRequestService.Serial = serviceToSerialDictionary.ContainsKey(changedToServiceNumber) ? serviceToSerialDictionary[changedToServiceNumber] + 1 : 0;
386: changedToServiceRequestService.Provisioned = true;
387:
388: lastRequestDateTime = serviceRequest.RequestDateTime;
389: if (changedToServiceRequestService.LastRequestDateTime < lastRequestDateTime) changedToServiceRequestService.LastRequestDateTime = lastRequestDateTime;
390:
391: if (changedToServiceRequestService != null) serviceToSerialDictionary[changedToServiceRequestService.Service] = changedToServiceRequestService.Serial;
392: }
393: else
394: {
395:
396: }
397: }
398: else
399: {
400: TelephonyService(serviceRequest, serviceRequestTypeList, ref serviceRequestService);
401: }
402:
403: lastRequestDateTime = serviceRequest.RequestDateTime;
404: if (serviceRequestService.LastRequestDateTime < lastRequestDateTime) serviceRequestService.LastRequestDateTime = lastRequestDateTime;
405: }
406:
407: serviceRequest.ServiceRequestService = serviceRequestService;
408: }
409:
410: if (serviceRequestService != null) serviceToSerialDictionary[serviceRequestService.Service] = serviceRequestService.Serial;
411: }
412: else
413: {
414: }
415: }
416: }
417: }
418:
419: return serviceRequestServiceList;
420: }
421:
422: ////////////////////////////////////////////////////////////////////////////
423:
424: /// <summary>
425: ///
426: /// </summary>
427: public static List<Ia.Ngn.Cl.Model.ServiceRequestService> ServiceRequestServiceFromServiceRequestHistory(List<Ia.Ngn.Cl.Model.ServiceRequestHistory> serviceRequestHistoryList)
428: {
429: int serial, status, serviceType, serviceId;
430: string service, serviceSerial, serviceIdIssue;
431: DateTime lastRequestDateTime;
432: Ia.Ngn.Cl.Model.ServiceRequestService serviceRequestService;
433: Ia.Ngn.Cl.Model.Business.ServiceSerialRequestService serviceSerialRequestService;
434: List<string> serviceSerialsToRemoveList;
435: List<Ia.Ngn.Cl.Model.Business.ServiceSerialRequestService> serviceSerialRequestServiceList;
436: List<Ia.Ngn.Cl.Model.ServiceRequestService> serviceRequestServiceList;
437: Dictionary<string, int> serviceToLastSerialDictionary, serviceSerialToStatusDictionary;
438: Dictionary<string, Ia.Ngn.Cl.Model.Business.ServiceSerialRequestService> serviceRequestHistoryNumberSerialComplementaryServiceDictionary;
439:
440: serviceType = Ia.Ngn.Cl.Model.Business.Service.ServiceType.ImsService; // irrelevant?
441: serviceIdIssue = string.Empty;
442: lastRequestDateTime = DateTime.MinValue;
443: serviceSerialsToRemoveList = new List<string>();
444: serviceSerialRequestServiceList = new List<Ia.Ngn.Cl.Model.Business.ServiceSerialRequestService>(serviceRequestHistoryList.Count);
445:
446: serviceToLastSerialDictionary = new Dictionary<string, int>(serviceRequestHistoryList.Count);
447: serviceSerialToStatusDictionary = new Dictionary<string, int>(serviceRequestHistoryList.Count);
448:
449: serviceRequestHistoryNumberSerialComplementaryServiceDictionary = new Dictionary<string, Ia.Ngn.Cl.Model.Business.ServiceSerialRequestService>(serviceRequestHistoryList.Count);
450:
451: // create initial serviceRequestServiceList from serviceList with all Provisioned = false records:
452:
453:
454:
455:
456: // 11. Loop through all srh records by request id ascending
457:
458: // build service request service from service request histories.
459: var list2 = serviceRequestHistoryList.OrderBy(p => p.ServiceDateTime.Date).ThenBy(p => p.ServiceId == 38); // <service id="38" arabicName="مجموعة الخدمات" />
460: foreach (var serviceRequestHistory in list2)
461: {
462: if (Ia.Ngn.Cl.Model.Business.Authority.ServiceRequestHistoryIsAllowedProcessing(serviceRequestHistory))
463: {
464: if (serviceRequestHistory.ServiceCategoryId == 3)
465: {
466: // <category id="3" arabicName="هاتف" />
467:
468: service = serviceRequestHistory.Number.ToString();
469: serial = serviceRequestHistory.Serial;
470: serviceId = serviceRequestHistory.ServiceId;
471: status = serviceRequestHistory.Status;
472:
473: serviceSerial = service + ":" + serial;
474:
475: serviceSerialToStatusDictionary[serviceSerial] = status;
476:
477: if (serviceToLastSerialDictionary.ContainsKey(service))
478: {
479: if (serviceToLastSerialDictionary[service] < serial) serviceToLastSerialDictionary[service] = serial;
480: }
481: else serviceToLastSerialDictionary[service] = serial;
482:
483: if (!serviceRequestHistoryNumberSerialComplementaryServiceDictionary.ContainsKey(serviceSerial)
484: || serviceRequestHistoryNumberSerialComplementaryServiceDictionary.ContainsKey(serviceSerial) && serviceRequestHistoryNumberSerialComplementaryServiceDictionary[serviceSerial].Provisioned == false)
485: {
486: if (serviceId == 1 || serviceId == 129 || serviceId == 54)
487: {
488: // <service id="1" arabicName="خط هاتف" />
489: // <service id="129" arabicName="خط هاتف مع نداء آلي"/>
490: // <service id="54" arabicName="اعادة تركيب" />
491:
492: serviceSerialRequestService = new Ia.Ngn.Cl.Model.Business.ServiceSerialRequestService();
493:
494: serviceSerialRequestService.Id = serviceSerial;
495: serviceSerialRequestService.Service = service;
496: serviceSerialRequestService.Serial = serial;
497: serviceSerialRequestService.Provisioned = true;
498:
499: if (/*serial == 0 &&*/ Ia.Ngn.Cl.Model.Data.ServiceRequestHistory.ServiceHasInternationalCallingFromAnOldUnseen1111_11_11RecordInCustomerDepartmentDatabase(serviceSerialRequestService.Service))
500: {
501: serviceSerialRequestService.InternationalCalling = true;
502: }
503:
504: serviceRequestHistoryNumberSerialComplementaryServiceDictionary[serviceSerial] = serviceSerialRequestService;
505:
506: lastRequestDateTime = serviceRequestHistory.ServiceDateTime;
507: }
508: else
509: {
510: // incomplete service request list for serial
511: }
512: }
513: else
514: {
515: if (serviceRequestHistoryNumberSerialComplementaryServiceDictionary[serviceSerial].Provisioned && serviceRequestHistoryNumberSerialComplementaryServiceDictionary[serviceSerial].Serial == serial)
516: {
517: if (serviceId == 41)
518: {
519: // <service id="41" arabicName="تغيير رقم" />
520: }
521: else
522: {
523: Ia.Ngn.Cl.Model.Business.ServiceRequestService.TelephonyServiceHistory(ref serviceRequestHistoryNumberSerialComplementaryServiceDictionary, serviceSerial, status, serviceId, ref serviceIdIssue);
524: }
525:
526: lastRequestDateTime = serviceRequestHistory.ServiceDateTime;
527: }
528: }
529: }
530: else
531: {
532:
533: }
534: }
535:
536: // collect all numbers serials that are not the last in their serial series:
537: foreach (KeyValuePair<string, Ia.Ngn.Cl.Model.Business.ServiceSerialRequestService> kvp in serviceRequestHistoryNumberSerialComplementaryServiceDictionary)
538: {
539: if (serviceToLastSerialDictionary.ContainsKey(kvp.Value.Service))
540: {
541: if (serviceToLastSerialDictionary[kvp.Value.Service] > kvp.Value.Serial) serviceSerialsToRemoveList.Add(kvp.Key);
542: }
543: else
544: {
545: serviceIdIssue += "Error: serviceToLastSerialDictionary does not contain kvp.Value.Service: " + kvp.Value.Service + "\r\n";
546: }
547: }
548: }
549:
550: // remove previous service-serials
551: foreach (string s in serviceSerialsToRemoveList)
552: {
553: serviceRequestHistoryNumberSerialComplementaryServiceDictionary.Remove(s);
554: }
555:
556: // construct serviceRequestServiceList from dictionary
557: serviceRequestServiceList = new List<Ia.Ngn.Cl.Model.ServiceRequestService>();
558:
559: foreach (KeyValuePair<string, Ia.Ngn.Cl.Model.Business.ServiceSerialRequestService> kvp in serviceRequestHistoryNumberSerialComplementaryServiceDictionary)
560: {
561: serviceSerial = kvp.Value.Service + ":" + kvp.Value.Serial;
562:
563: serviceRequestService = new Ia.Ngn.Cl.Model.ServiceRequestService()
564: {
565: Id = kvp.Value.Service + ":1:965",
566: Service = kvp.Value.Service,
567: Serial = kvp.Value.Serial,
568: //Provisioned = kvp.Value.Provisioned,
569: Provisioned = Ia.Ngn.Cl.Model.Business.ServiceRequestHistory.ServiceRequestServiceHistoryProvisionedValueFromStatus(serviceSerialToStatusDictionary[serviceSerial]),
570: CallWaiting = kvp.Value.CallWaiting,
571: InternationalCallingUserControlled = kvp.Value.InternationalCallingUserControlled,
572: CallerId = kvp.Value.CallerId,
573: CallForwarding = kvp.Value.CallForwarding,
574: CallBarring = kvp.Value.CallBarring,
575: ConferenceCall = kvp.Value.ConferenceCall,
576: AbbriviatedCalling = kvp.Value.AbbriviatedCalling,
577: InternationalCalling = kvp.Value.InternationalCalling,
578: AlarmCall = kvp.Value.AlarmCall,
579: WakeupCall = kvp.Value.WakeupCall,
580: BarringOfAllOutgoingCalls = kvp.Value.BarringOfAllOutgoingCalls,
581: BarringOfAllIncomingCalls = kvp.Value.BarringOfAllIncomingCalls,
582: LastRequestDateTime = lastRequestDateTime
583: };
584:
585: serviceRequestServiceList.Add(serviceRequestService);
586: }
587:
588: return serviceRequestServiceList;
589: }
590:
591: ////////////////////////////////////////////////////////////////////////////
592:
593: /// <summary>
594: ///
595: /// </summary>
596: private static void TelephonyService(Ia.Ngn.Cl.Model.ServiceRequest serviceRequest, List<Ia.Ngn.Cl.Model.ServiceRequestType> serviceRequestTypeList, ref Ia.Ngn.Cl.Model.ServiceRequestService serviceRequestService)
597: {
598: Ia.Ngn.Cl.Model.Access access;
599:
600: if (serviceRequest.ServiceId == 1 || serviceRequest.ServiceId == 129 || serviceRequest.ServiceId == 39 || serviceRequest.ServiceId == 54)
601: {
602: // <service id="1" arabicName="خط هاتف" />
603: // <service id="129" arabicName="خط هاتف مع نداء آلي"/>
604: // <service id="39" arabicName="نقل خارجى" />
605: // <service id="54" arabicName="اعادة تركيب" />
606:
607: if (serviceRequest.ServiceId == 1 || serviceRequest.ServiceId == 129 || serviceRequest.ServiceId == 54)
608: {
609: // <service id="1" arabicName="خط هاتف" />
610: // <service id="129" arabicName="خط هاتف مع نداء آلي"/>
611: // <service id="54" arabicName="اعادة تركيب" />
612:
613: // below: keep this here and don't move it out to accommodate 39
614: using (var db = new Ia.Ngn.Cl.Model.Ngn())
615: {
616: // important: ServiceRequestService.Update() will only update stored.Access if it is null, or (stored.userId == Guid.Empty && update.Id > stored.Id)
617: access = Ia.Ngn.Cl.Model.Business.ServiceRequestType.ExtractAccess(serviceRequest.Id, serviceRequestTypeList);
618:
619: if (access != null) serviceRequestService.Access = (from a in db.Accesses where a.Id == access.Id select a).SingleOrDefault();
620: else serviceRequestService.Access = null;
621: /* I will not use statistical estimation for incomplete workorders
622: else
623: {
624: serviceAddress = Ia.Ngn.Cl.Model.Business.ServiceRequest.StatisticalServiceAddress(serviceRequestService.Service, serviceRequest.CustomerAddress, out level);
625:
626: if (serviceAddress != null)
627: {
628: accessList = (from a in db.Accesses where a.AreaId == serviceAddress.AreaId select a).ToList();
629:
630: access = Ia.Ngn.Cl.Model.Data.Access.StatisticalAccess(serviceAddress, ref accessList);
631:
632: if (access != null)
633: {
634: serviceRequestService.Access = (from a in db.Accesses where a.Id == access.Id select a).SingleOrDefault();
635: }
636: else serviceRequestService.Access = null;
637: }
638: else serviceRequestService.Access = null;
639: }
640: */
641: }
642:
643: serviceRequestService.CallerId = false;
644:
645: serviceRequestService.AlarmCall = false;
646: serviceRequestService.WakeupCall = false;
647:
648: ///serviceRequestService.InternationalCallingUserControlled = true; // as requested by MOC NGN management
649: serviceRequestService.CallWaiting = false;
650: serviceRequestService.CallForwarding = false;
651: serviceRequestService.ConferenceCall = false;
652: serviceRequestService.CallBarring = false;
653:
654: if (serviceRequest.ServiceId == 1 || serviceRequest.ServiceId == 54)
655: {
656: serviceRequestService.InternationalCalling = false;
657: }
658: else if (serviceRequest.ServiceId == 129) serviceRequestService.InternationalCalling = true;
659: }
660: else if (serviceRequest.ServiceId == 39)
661: {
662: // <service id="39" arabicName="نقل خارجى" />
663:
664: using (var db = new Ia.Ngn.Cl.Model.Ngn())
665: {
666: // important: ServiceRequestService.Update() will only update stored.Access if it is null, or (stored.userId == Guid.Empty && update.Id > stored.Id)
667: access = Ia.Ngn.Cl.Model.Business.ServiceRequestType.ExtractAccess(serviceRequest.Id, serviceRequestTypeList);
668:
669: if (access != null) serviceRequestService.Access = (from a in db.Accesses where a.Id == access.Id select a).SingleOrDefault();
670: //else serviceRequestService.Access = null;
671: }
672: }
673: }
674: else
675: {
676: switch (serviceRequest.ServiceId)
677: {
678: // below: <service id="40" arabicName="رفع خط" />
679: case 40:
680: {
681: // will reset all to false
682:
683: serviceRequestService.Provisioned = false;
684:
685: serviceRequestService.CallerId = false;
686: serviceRequestService.AlarmCall = false;
687: serviceRequestService.WakeupCall = false;
688: serviceRequestService.InternationalCallingUserControlled = false;
689: serviceRequestService.CallWaiting = false;
690: serviceRequestService.CallForwarding = false;
691: serviceRequestService.ConferenceCall = false;
692: serviceRequestService.CallBarring = false;
693: serviceRequestService.InternationalCalling = false;
694:
695: break;
696: }
697:
698: // below: <service id="131" arabicName="خط ذهبي"/>
699: case 131: { break; }
700:
701: // below: <service id="132" arabicName="خط فضي"/>
702: case 132: { break; }
703:
704: // below: <service id="133" arabicName="خط برونزي"/>
705: case 133: { break; }
706:
707: // below: <service id="12" arabicName="خدمة الانتظار" />
708: case 12: { serviceRequestService.CallWaiting = true; break; }
709:
710: // below: <service id="68" arabicName="إيقاف خدمة الانتظار" />
711: case 68: { serviceRequestService.CallWaiting = false; break; }
712:
713: // below: <service id="13" arabicName="التحكم بالصفر الدولي" />
714: case 13: { serviceRequestService.InternationalCallingUserControlled = true; break; }
715:
716: // below: <service id="67" arabicName="وقف التحكم بالصفر" />
717: case 67: { serviceRequestService.InternationalCallingUserControlled = false; break; }
718:
719: // below: <service id="14" arabicName="كاشف رقم" />
720: case 14: { serviceRequestService.CallerId = true; break; }
721:
722: // below: <service id="66" arabicName="إيقاف كاشف" />
723: case 66: { serviceRequestService.CallerId = false; break; }
724:
725: // below: <service id="5" arabicName="تحويل مكالمات" />
726: case 5: { serviceRequestService.CallForwarding = true; break; }
727:
728: // below: <service id="75" arabicName="إيقاف التحويل" />
729: case 75: { serviceRequestService.CallForwarding = false; break; }
730:
731: // below: <service id="20" arabicName="النداء الآلي" />
732: case 20: { serviceRequestService.InternationalCalling = true; break; }
733:
734: // below: <service id="19" arabicName="قطع النداء الآلي" />
735: case 19: { serviceRequestService.InternationalCalling = false; break; }
736:
737: // below: <service id="38" arabicName="مجموعة الخدمات" />
738: case 38:
739: {
740: serviceRequestService.CallerId = true;
741:
742: serviceRequestService.AlarmCall = true;
743: serviceRequestService.WakeupCall = true;
744:
745: //serviceRequestService.InternationalCallingUserControlled = true;
746: serviceRequestService.CallWaiting = true;
747: serviceRequestService.CallForwarding = true;
748: serviceRequestService.ConferenceCall = true;
749: break;
750: }
751:
752: // below: <service id="62" arabicName="إيقاف مجموعة الخدمات" />
753: case 62:
754: {
755: serviceRequestService.CallerId = false;
756:
757: serviceRequestService.AlarmCall = false;
758: serviceRequestService.WakeupCall = false;
759:
760: //serviceRequestService.InternationalCallingUserControlled = false;
761: serviceRequestService.CallWaiting = false;
762: serviceRequestService.CallForwarding = false;
763: serviceRequestService.ConferenceCall = false;
764: break;
765: }
766:
767: // below: <service id="52" arabicName="قطع حرارة" />
768: case 52: { serviceRequestService.CallBarring = true; break; }
769:
770: // below: <service id="53" arabicName="اعادة حرارة" />
771: case 53: { serviceRequestService.CallBarring = false; break; }
772:
773: // below: <service id="7" arabicName="منع الاتصال" />
774: case 7: { serviceRequestService.BarringOfAllOutgoingCalls = true; break; }
775:
776: // below: <service id="73" arabicName="إيقاف منع الاتصال" />
777: case 73: { serviceRequestService.BarringOfAllOutgoingCalls = false; break; }
778:
779: // below: <service id="8" arabicName="ايقاف استقبال" />
780: case 8: { serviceRequestService.BarringOfAllIncomingCalls = true; break; }
781:
782: // below: <service id="72" arabicName="رد استقبال" />
783: case 72: { serviceRequestService.BarringOfAllIncomingCalls = false; break; }
784:
785: // below: <service id="10" arabicName="خدمة الإيقاظ" />
786: case 10:
787: {
788: serviceRequestService.AlarmCall = true;
789: serviceRequestService.WakeupCall = true;
790: break;
791: }
792:
793: // below: <service id="70" arabicName="إيقاف خدمة الإيقاظ" />
794: case 70:
795: {
796: serviceRequestService.AlarmCall = false;
797: serviceRequestService.WakeupCall = false;
798: break;
799: }
800:
801: // below: <service id="6" arabicName="استشارة" />
802: case 6: { serviceRequestService.ConferenceCall = true; break; }
803:
804: // below: <service id="74" arabicName="إيقاف استشارة" />
805: case 74: { serviceRequestService.ConferenceCall = false; break; }
806:
807: // below: <service id="11" arabicName="إختصار الرقم" />
808: case 11: { serviceRequestService.AbbriviatedCalling = true; break; }
809:
810: // below: <service id="69" arabicName="إيقاف إختصار الرقم" />
811: case 69: { serviceRequestService.AbbriviatedCalling = false; break; }
812:
813: // below: <service id="55" arabicName="مفتاح بدالة" />
814: case 55: { break; }
815:
816: // below: <if id="60" name_ar="إيقاف مفتاح بدالة"...
817: case 60: { break; }
818:
819: // below: <if id="56" name_ar="فرع بدالة"...
820: case 56: { break; }
821:
822: // below: <if id="59" name_ar="إيقاف فرع بدالة"...
823: case 59: { break; }
824:
825: // below: <service id="64" arabicName="ايقاف التحويل الآلي/بدالة رئيس" />
826: case 64: { break; }
827:
828: // below: <service id="63" arabicName="ايقاف التحويل الآلي/بدالة فرع" />
829: case 63: { break; }
830:
831: // below: <service id="608" arabicName="خط رقمي دسل"/>
832: case 608: { break; }
833:
834: // below: <service id="609" arabicName="قطع خط رقمي دسل"/>
835: case 609: { break; }
836:
837: // below: <service id="15" arabicName="خدمة المحاسبة" />
838: case 15: { break; }
839:
840: // below: <service id="65" arabicName="إيقاف المحاسبة الذاتية" />
841: case 65: { break; }
842:
843: // below: <service id="271" arabicName="تغيير اسم"/>
844: case 271: { break; }
845:
846: // below: <service id="44" arabicName="تغيير نوع اشتراك" />
847: case 44:
848: {
849: serviceRequestService.Serial++;
850: break;
851: }
852:
853: // below: <service id="42" arabicName="نقل داخلي" />
854: case 42: { break; }
855:
856: // below: <service id="46" arabicName="جهاز كاشف" />
857: case 46: { break; }
858:
859: // below: <service id="45" arabicName="تعديل اسم" />
860: case 45: { break; }
861:
862: // below: <service id="47" arabicName="جهاز تلفون" />
863: case 47: { break; }
864:
865: // below: <service id="49" arabicName="رسوم مودم" />
866: case 49: { break; }
867:
868: // below: <service id="37" arabicName="برقية" />
869: case 37: { break; }
870:
871: // below: <service id="23" arabicName="مكالمات مصلحية -دفع" />
872: case 23: { break; }
873:
874: // below: <service id="17" arabicName="نظام التحويل الآلي/بدالة رئيس" />
875: case 17: { break; }
876:
877: // below: <service id="18" arabicName="نظام التحويل الآلي/بدالة فرع" />
878: case 18: { break; }
879:
880: // below: <service id="3" arabicName="نداء عاجل" />
881: case 3: { break; }
882:
883: // below: <service id="22" arabicName="رسوم كابل" />
884: case 22: { break; }
885:
886: // below: <service id="61" arabicName="إيقاف إعادة تركيب" />
887: case 61: { break; }
888:
889: // below: <service id="43" arabicName="تنازل" />
890: case 43:
891: {
892: serviceRequestService.Serial++;
893: break;
894: }
895:
896: default:
897: {
898: log.AppendLine("TelephonyService(): For ServiceRequest.Number=" + serviceRequest.Number + " ServiceId=" + serviceRequest.ServiceId + " was not recognized. ");
899: break;
900: }
901: }
902: }
903: }
904:
905: ////////////////////////////////////////////////////////////////////////////
906:
907: /// <summary>
908: ///
909: /// </summary>
910: public static void TelephonyServiceHistory(ref Dictionary<string, Ia.Ngn.Cl.Model.Business.ServiceSerialRequestService> serviceRequestNumberSerialComplementaryServiceDictionary, string serviceSerial, int status, int serviceId, ref string serviceIdIssue)
911: {
912: if (serviceId == 1 || serviceId == 129 || serviceId == 39 || serviceId == 54)
913: {
914: // <service id="1" arabicName="خط هاتف" />
915: // <service id="129" arabicName="خط هاتف مع نداء آلي"/>
916: // <service id="39" arabicName="نقل خارجى" />
917: // <service id="54" arabicName="اعادة تركيب" />
918:
919: if (serviceId == 1 || serviceId == 129 || serviceId == 54)
920: {
921: // <service id="1" arabicName="خط هاتف" />
922: // <service id="129" arabicName="خط هاتف مع نداء آلي"/>
923: // <service id="54" arabicName="اعادة تركيب" />
924:
925: serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].CallerId = false;
926:
927: serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].AlarmCall = false;
928: serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].WakeupCall = false;
929:
930: ///dic[id].InternationalCallingUserControlled = true; // as requested by NGN management
931: serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].CallWaiting = false;
932: serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].CallForwarding = false;
933: serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].ConferenceCall = false;
934: serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].CallBarring = false;
935:
936: if (serviceId == 1 || serviceId == 54) serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].InternationalCalling = false;
937: else if (serviceId == 129) serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].InternationalCalling = true;
938: }
939: else if (serviceId == 39)
940: {
941: // <service id="39" arabicName="نقل خارجى" />
942: }
943: }
944: else
945: {
946: switch (serviceId)
947: {
948: // below: <service id="40" arabicName="رفع خط" />
949: case 40:
950: {
951: // - For SRH issues, I will ignore the service رفع خط (<service id="40" arabicName="رفع خط" />) if the number is يعمل (systemCode[7001] = "يعمل") (e.g. 25426947) or number is قطع مبرمج (systemCode[7003] = "قطع مبرمج") (e.g. 25417139)
952: // - Note that status is specific to SRH
953:
954: if (status == 7001 || status == 7003) { }
955: else
956: {
957: // - Will reset all to false
958: serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].Provisioned = false;
959:
960: serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].CallerId = false;
961: serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].AlarmCall = false;
962: serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].WakeupCall = false;
963: serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].InternationalCallingUserControlled = false;
964: serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].CallWaiting = false;
965: serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].CallForwarding = false;
966: serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].ConferenceCall = false;
967: serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].CallBarring = false;
968: serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].InternationalCalling = false;
969: }
970: break;
971: }
972:
973: // below: <service id="131" arabicName="خط ذهبي"/>
974: case 131: { break; }
975:
976: // below: <service id="132" arabicName="خط فضي"/>
977: case 132: { break; }
978:
979: // below: <service id="133" arabicName="خط برونزي"/>
980: case 133: { break; }
981:
982: // below: <service id="12" arabicName="خدمة الانتظار" />
983: case 12: { serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].CallWaiting = true; break; }
984:
985: // below: <service id="68" arabicName="إيقاف خدمة الانتظار" />
986: case 68: { serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].CallWaiting = false; break; }
987:
988: // below: <service id="13" arabicName="التحكم بالصفر الدولي" />
989: case 13: { serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].InternationalCallingUserControlled = true; break; }
990:
991: // below: <service id="67" arabicName="وقف التحكم بالصفر" />
992: case 67: { serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].InternationalCallingUserControlled = false; break; }
993:
994: // below: <service id="14" arabicName="كاشف رقم" />
995: case 14: { serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].CallerId = true; break; }
996:
997: // below: <service id="66" arabicName="إيقاف كاشف" />
998: case 66: { serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].CallerId = false; break; }
999:
// below: <service id="5" arabicName="تحويل مكالمات" />
case 5: { serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].CallForwarding = true; break; }
// below: <service id="75" arabicName="إيقاف التحويل" />
case 75: { serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].CallForwarding = false; break; }
// below: <service id="20" arabicName="النداء الآلي" />
case 20: { serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].InternationalCalling = true; break; }
// below: <service id="19" arabicName="قطع النداء الآلي" />
case 19: { serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].InternationalCalling = false; break; }
// below: <service id="38" arabicName="مجموعة الخدمات" />
case 38:
{
serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].CallerId = true;
serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].AlarmCall = true;
serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].WakeupCall = true;
// serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].InternationalCallingUserControlled = true;
serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].CallWaiting = true;
serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].CallForwarding = true;
serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].ConferenceCall = true;
break;
}
// below: <service id="62" arabicName="إيقاف مجموعة الخدمات" />
case 62:
{
serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].CallerId = false;
serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].AlarmCall = false;
serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].WakeupCall = false;
//serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].InternationalCallingUserControlled = false;
serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].CallWaiting = false;
serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].CallForwarding = false;
serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].ConferenceCall = false;
break;
}
// below: <service id="52" arabicName="قطع حرارة" />
case 52: { serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].CallBarring = true; break; }
// below: <service id="53" arabicName="اعادة حرارة" />
case 53: { serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].CallBarring = false; break; }
// below: <service id="7" arabicName="منع الاتصال" />
case 7: { serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].BarringOfAllOutgoingCalls = true; break; }
// below: <service id="73" arabicName="إيقاف منع الاتصال" />
case 73: { serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].BarringOfAllOutgoingCalls = false; break; }
// below: <service id="8" arabicName="ايقاف استقبال" />
case 8: { serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].BarringOfAllIncomingCalls = true; break; }
// below: <service id="72" arabicName="رد استقبال" />
case 72: { serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].BarringOfAllIncomingCalls = false; break; }
// below: <service id="10" arabicName="خدمة الإيقاظ" />
case 10:
{
serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].AlarmCall = true;
serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].WakeupCall = true;
break;
}
// below: <service id="70" arabicName="إيقاف خدمة الإيقاظ" />
case 70:
{
serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].AlarmCall = false;
serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].WakeupCall = false;
break;
}
// below: <service id="6" arabicName="استشارة" />
case 6: { serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].ConferenceCall = true; break; }
// below: <service id="74" arabicName="إيقاف استشارة" />
case 74: { serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].ConferenceCall = false; break; }
// below: <service id="11" arabicName="اختصار الرقم" />
case 11: { serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].AbbriviatedCalling = true; break; }
// below: <service id="69" arabicName="إيقاف اختصار الرقم" />
case 69: { serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].AbbriviatedCalling = false; break; }
// below: <service id="55" arabicName="مفتاح بدالة" />
case 55: { break; }
// below: <if id="60" name_ar="إيقاف مفتاح بدالة"...
case 60: { break; }
// below: <if id="56" name_ar="فرع بدالة"...
case 56: { break; }
// below: <if id="59" name_ar="إيقاف فرع بدالة"...
case 59: { break; }
// below: <service id="64" arabicName="ايقاف التحويل الآلي/بدالة رئيس" />
case 64: { break; }
// below: <service id="63" arabicName="ايقاف التحويل الآلي/بدالة فرع" />
case 63: { break; }
// below: <service id="608" arabicName="خط رقمي دسل"/>
case 608: { break; }
// below: <service id="609" arabicName="قطع خط رقمي دسل"/>
case 609: { break; }
// below: <service id="15" arabicName="خدمة المحاسبة" />
case 15: { break; }
// below: <service id="65" arabicName="إيقاف المحاسبة الذاتية" />
case 65: { break; }
// below: <service id="271" arabicName="تغيير اسم"/>
case 271: { break; }
// below: <service id="44" arabicName="تغيير نوع اشتراك" />
case 44:
{
//serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].Serial++; I removed this from History
break;
}
// below: <service id="42" arabicName="نقل داخلي" />
case 42: { break; }
// below: <service id="46" arabicName="جهاز كاشف" />
case 46: { break; }
// below: <service id="45" arabicName="تعديل اسم" />
case 45: { break; }
// below: <service id="47" arabicName="جهاز تلفون" />
case 47: { break; }
// below: <service id="49" arabicName="رسوم مودم" />
case 49: { break; }
// below: <service id="37" arabicName="برقية" />
case 37: { break; }
// below: <service id="23" arabicName="مكالمات مصلحية -دفع" />
case 23: { break; }
// below: <service id="17" arabicName="نظام التحويل الآلي/بدالة رئيس" />
case 17: { break; }
// below: <service id="18" arabicName="نظام التحويل الآلي/بدالة فرع" />
case 18: { break; }
// below: <service id="3" arabicName="نداء عاجل" />
case 3: { break; }
// below: <service id="22" arabicName="رسوم كابل" />
case 22: { break; }
// below: <service id="61" arabicName="إيقاف إعادة تركيب" />
case 61: { break; }
// below: <service id="43" arabicName="تنازل" />
case 43:
{
//serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].Serial++; I removed this from History
break;
}
default:
{
serviceIdIssue += "SrsTest(): Service=" + serviceRequestNumberSerialComplementaryServiceDictionary[serviceSerial].Service + " ServiceId=" + serviceId + " was not recognized. " + "\r\n";
break;
}
}
}
}
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
}
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
}