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

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

Service Request Administrative Issue support class for 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.Models.Data
    9: {
   10:     ////////////////////////////////////////////////////////////////////////////
   11:  
   12:     /// <summary publish="true">
   13:     /// Service Request Administrative Issue support class for Fixed Telecommunications Network (FTN) data model.
   14:     /// </summary>
   15:     /// 
   16:     /// <remarks> 
   17:     /// Copyright © 2019-2021 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
   18:     /// </remarks> 
   19:     public class ServiceRequestAdministrativeIssue
   20:     {
   21:         private static readonly object objectLock = new object();
   22:  
   23:         ////////////////////////////////////////////////////////////////////////////
   24:  
   25:         /// <summary>
   26:         ///
   27:         /// </summary>
   28:         public ServiceRequestAdministrativeIssue() { }
   29:  
   30:         ////////////////////////////////////////////////////////////////////////////
   31:  
   32:         /// <summary>
   33:         ///
   34:         /// </summary>
   35:         public static Ia.Ftn.Cl.Models.ServiceRequestAdministrativeIssue Read(string service, out Ia.Cl.Models.Result result)
   36:         {
   37:             Ia.Ftn.Cl.Models.ServiceRequestAdministrativeIssue serviceRequestAdministrativeIssue;
   38:  
   39:             result = new Ia.Cl.Models.Result();
   40:  
   41:             if (!string.IsNullOrEmpty(service))
   42:             {
   43:                 if (Ia.Ftn.Cl.Models.Business.Service.ServiceHasEightDigitsAndIsWithinAllowedDomainList(service))
   44:                 {
   45:                     var isPstnService = Ia.Ftn.Cl.Models.Data.Service2.IsPstnService(service);
   46:  
   47:                     if (!isPstnService)
   48:                     {
   49:                         using (var db = new Ia.Ftn.Cl.Db())
   50:                         {
   51:                             var serviceRequestAdministrativeIssueId = Ia.Ftn.Cl.Models.Business.ServiceRequestAdministrativeIssue.ServiceRequestAdministrativeIssueId(service, Ia.Ftn.Cl.Models.Business.Service.ServiceType.ImsService);
   52:  
   53:                             serviceRequestAdministrativeIssue = (from srai in db.ServiceRequestAdministrativeIssues
   54:                                                                  where srai.Id == serviceRequestAdministrativeIssueId
   55:                                                                  select srai).SingleOrDefault();
   56:  
   57:                             if (serviceRequestAdministrativeIssue != null)
   58:                             {
   59:                                 result.AddSuccess(@"The number " + service + @" exists in table.");
   60:                             }
   61:                             else result.AddSuccess(@"The number " + service + @" does not exist in table.");
   62:                         }
   63:                     }
   64:                     else
   65:                     {
   66:                         serviceRequestAdministrativeIssue = null;
   67:                         result.AddError("Service number " + service + " is a PSTN number.");
   68:                     }
   69:                 }
   70:                 else
   71:                 {
   72:                     serviceRequestAdministrativeIssue = null;
   73:                     result.AddError("Service number " + service + " does not belong to the network.");
   74:                 }
   75:             }
   76:             else
   77:             {
   78:                 serviceRequestAdministrativeIssue = null;
   79:                 result.AddError("Input is null or empty.");
   80:             }
   81:  
   82:             return serviceRequestAdministrativeIssue;
   83:         }
   84:  
   85:         ////////////////////////////////////////////////////////////////////////////
   86:  
   87:         /// <summary>
   88:         ///
   89:         /// </summary>
   90:         public static bool IsPendingIssue(Ia.Ftn.Cl.Models.Business.ServiceRequestAdministrativeIssue.DisconnectionType disconnectionType, string service)
   91:         {
   92:             bool isPendingIssue;
   93:  
   94:             using (var db = new Ia.Ftn.Cl.Db())
   95:             {
   96:                 isPendingIssue = (from srai in db.ServiceRequestAdministrativeIssues
   97:                                   where srai.Service == service && srai.Type == (int)disconnectionType
   98:                                   select srai.Service).Any();
   99:             }
  100:  
  101:             return isPendingIssue;
  102:         }
  103:  
  104:         ////////////////////////////////////////////////////////////////////////////
  105:  
  106:         /// <summary>
  107:         ///
  108:         /// </summary>
  109:         public static List<string> ServiceList(List<string> serviceList)
  110:         {
  111:             List<string> list;
  112:  
  113:             using (var db = new Ia.Ftn.Cl.Db())
  114:             {
  115:                 if (serviceList.Count > 0)
  116:                 {
  117:                     list = (from srai in db.ServiceRequestAdministrativeIssues
  118:                             where serviceList.Contains(srai.Service)
  119:                             select srai.Service).AsNoTracking().ToList();
  120:                 }
  121:                 else list = new List<string>();
  122:             }
  123:  
  124:             return list;
  125:         }
  126:  
  127:         ////////////////////////////////////////////////////////////////////////////
  128:  
  129:         /// <summary>
  130:         ///
  131:         /// </summary>
  132:         public static List<Ia.Ftn.Cl.Models.ServiceRequestAdministrativeIssue> List()
  133:         {
  134:             List<Ia.Ftn.Cl.Models.ServiceRequestAdministrativeIssue> list;
  135:  
  136:             using (var db = new Ia.Ftn.Cl.Db())
  137:             {
  138:                 list = (from srai in db.ServiceRequestAdministrativeIssues
  139:                         select srai).AsNoTracking().ToList();
  140:             }
  141:  
  142:             return list;
  143:         }
  144:  
  145:         ////////////////////////////////////////////////////////////////////////////
  146:  
  147:         /// <summary>
  148:         ///
  149:         /// </summary>
  150:         public static List<string> ServiceList()
  151:         {
  152:             List<string> list;
  153:  
  154:             using (var db = new Ia.Ftn.Cl.Db())
  155:             {
  156:                 list = (from srai in db.ServiceRequestAdministrativeIssues
  157:                         select srai.Service).AsNoTracking().ToList();
  158:             }
  159:  
  160:             return list;
  161:         }
  162:  
  163:         ////////////////////////////////////////////////////////////////////////////
  164:  
  165:         /// <summary>
  166:         ///
  167:         /// </summary>
  168:         public static List<string> ServiceList(Ia.Ftn.Cl.Models.Business.ServiceRequestAdministrativeIssue.DisconnectionType disconnectionType)
  169:         {
  170:             List<string> list;
  171:  
  172:             using (var db = new Ia.Ftn.Cl.Db())
  173:             {
  174:                 list = (from srai in db.ServiceRequestAdministrativeIssues
  175:                         where srai.Type == (int)disconnectionType
  176:                         select srai.Service).AsNoTracking().ToList();
  177:             }
  178:  
  179:             return list;
  180:         }
  181:  
  182:         ////////////////////////////////////////////////////////////////////////////
  183:  
  184:         /// <summary>
  185:         ///
  186:         /// </summary>
  187:         public static Dictionary<string, string> ServiceDictionary()
  188:         {
  189:             Dictionary<string, string> dictionary;
  190:  
  191:             using (var db = new Ia.Ftn.Cl.Db())
  192:             {
  193:                 dictionary = (from srai in db.ServiceRequestAdministrativeIssues
  194:                               select new { srai.Service }).AsNoTracking().ToDictionary(u => u.Service, u => u.Service);
  195:             }
  196:  
  197:             return dictionary.ToDictionary(u => u.Key, u => u.Value);
  198:         }
  199:  
  200:         ////////////////////////////////////////////////////////////////////////////
  201:  
  202:         /// <summary>
  203:         ///
  204:         /// </summary>
  205:         public static List<string> IdList()
  206:         {
  207:             List<string> list;
  208:  
  209:             using (var db = new Ia.Ftn.Cl.Db())
  210:             {
  211:                 list = (from srai in db.ServiceRequestAdministrativeIssues
  212:                         select srai.Id).AsNoTracking().ToList();
  213:             }
  214:  
  215:             return list;
  216:         }
  217:  
  218:         ////////////////////////////////////////////////////////////////////////////
  219:  
  220:         /// <summary>
  221:         ///
  222:         /// </summary>
  223:         public static Ia.Ftn.Cl.Models.ServiceRequestAdministrativeIssue Update(string service, Ia.Ftn.Cl.Models.Business.ServiceRequestAdministrativeIssue.ServiceRequestAdministrativeIssueType serviceRequestAdministrativeIssueType, bool serviceMustBeWithinNokiaSwitchDomainList, out Ia.Cl.Models.Result result)
  224:         {
  225:             Ia.Ftn.Cl.Models.ServiceRequestAdministrativeIssue serviceRequestAdministrativeIssue;
  226:  
  227:             result = new Ia.Cl.Models.Result();
  228:  
  229:             if (!string.IsNullOrEmpty(service))
  230:             {
  231:                 if (Ia.Ftn.Cl.Models.Business.Service.ServiceHasEightDigitsAndIsWithinAllowedDomainList(service))
  232:                 {
  233:                     if (!serviceMustBeWithinNokiaSwitchDomainList || serviceMustBeWithinNokiaSwitchDomainList && Ia.Ftn.Cl.Models.Data.Service.ServiceIsWithinNokiaSwitchDomainList(service)) // temp
  234:                     {
  235:                         var isPstnService = Ia.Ftn.Cl.Models.Data.Service2.IsPstnService(service);
  236:  
  237:                         if (!isPstnService)
  238:                         {
  239:                             using (var db = new Ia.Ftn.Cl.Db())
  240:                             {
  241:                                 result = new Ia.Cl.Models.Result();
  242:  
  243:                                 var serviceRequestAdministrativeIssueId = Ia.Ftn.Cl.Models.Business.ServiceRequestAdministrativeIssue.ServiceRequestAdministrativeIssueId(service, Ia.Ftn.Cl.Models.Business.Service.ServiceType.ImsService);
  244:  
  245:                                 serviceRequestAdministrativeIssue = (from srai in db.ServiceRequestAdministrativeIssues
  246:                                                                      where srai.Id == serviceRequestAdministrativeIssueId
  247:                                                                      select srai).SingleOrDefault();
  248:  
  249:                                 if (serviceRequestAdministrativeIssue != null)
  250:                                 {
  251:                                     if (serviceRequestAdministrativeIssueType.DisconnectionType == Ia.Ftn.Cl.Models.Business.ServiceRequestAdministrativeIssue.DisconnectionType.None)
  252:                                     {
  253:                                         db.ServiceRequestAdministrativeIssues.Remove(serviceRequestAdministrativeIssue);
  254:                                         db.SaveChanges();
  255:  
  256:                                         serviceRequestAdministrativeIssue = Ia.Ftn.Cl.Models.Data.ServiceRequestAdministrativeIssue.Read(service, out _);
  257:  
  258:                                         Ia.Ftn.Cl.Models.Data.MessageQueue.SecretaryApplication.Enqueue(Ia.Ftn.Cl.Models.Business.MessageQueue.Application.FtnApplication, Ia.Ftn.Cl.Models.Business.MessageQueue.Process.ServiceInServiceRequestAdministrativeIssuesUpdated, service);
  259:  
  260:                                         result.AddSuccess("Entry for " + service + " was deleted.");
  261:                                     }
  262:                                     else if (serviceRequestAdministrativeIssue.Type != (int)serviceRequestAdministrativeIssueType.DisconnectionType)
  263:                                     {
  264:                                         serviceRequestAdministrativeIssue.Type = (int)serviceRequestAdministrativeIssueType.DisconnectionType;
  265:                                         serviceRequestAdministrativeIssue.Updated = DateTime.UtcNow.AddHours(3);
  266:                                         // serviceRequestAdministrativeIssue.StaffIdentityUser.Id = string.Empty;
  267:  
  268:                                         db.ServiceRequestAdministrativeIssues.Attach(serviceRequestAdministrativeIssue);
  269:                                         db.Entry(serviceRequestAdministrativeIssue).Property(u => u.Type).IsModified = true;
  270:                                         db.SaveChanges();
  271:  
  272:                                         serviceRequestAdministrativeIssue = Ia.Ftn.Cl.Models.Data.ServiceRequestAdministrativeIssue.Read(service, out _);
  273:  
  274:                                         Ia.Ftn.Cl.Models.Data.MessageQueue.SecretaryApplication.Enqueue(Ia.Ftn.Cl.Models.Business.MessageQueue.Application.FtnApplication, Ia.Ftn.Cl.Models.Business.MessageQueue.Process.ServiceInServiceRequestAdministrativeIssuesUpdated, service);
  275:  
  276:                                         result.AddSuccess("Entry for " + service + " was updated.");
  277:                                     }
  278:                                     else
  279:                                     {
  280:                                         result.AddWarning("Entry for " + service + " was not updated because it was not changed.");
  281:                                     }
  282:                                 }
  283:                                 else
  284:                                 {
  285:                                     if (serviceRequestAdministrativeIssueType.DisconnectionType == Ia.Ftn.Cl.Models.Business.ServiceRequestAdministrativeIssue.DisconnectionType.None)
  286:                                     {
  287:                                         result.AddWarning("Entry for " + service + " was not removed because it did not exist.");
  288:                                     }
  289:                                     else
  290:                                     {
  291:                                         serviceRequestAdministrativeIssue = new Ia.Ftn.Cl.Models.ServiceRequestAdministrativeIssue
  292:                                         {
  293:                                             Id = serviceRequestAdministrativeIssueId,
  294:                                             Service = service,
  295:                                             Type = (int)serviceRequestAdministrativeIssueType.DisconnectionType,
  296:                                             Value = String.Empty,
  297:                                             Created = DateTime.UtcNow.AddHours(3),
  298:                                             Updated = DateTime.UtcNow.AddHours(3),
  299:                                             StaffIdentityUser = null,
  300:                                         };
  301:  
  302:                                         db.ServiceRequestAdministrativeIssues.Add(serviceRequestAdministrativeIssue);
  303:                                         db.SaveChanges();
  304:  
  305:                                         serviceRequestAdministrativeIssue = Ia.Ftn.Cl.Models.Data.ServiceRequestAdministrativeIssue.Read(service, out _);
  306:  
  307:                                         Ia.Ftn.Cl.Models.Data.MessageQueue.SecretaryApplication.Enqueue(Ia.Ftn.Cl.Models.Business.MessageQueue.Application.FtnApplication, Ia.Ftn.Cl.Models.Business.MessageQueue.Process.ServiceInServiceRequestAdministrativeIssuesUpdated, service);
  308:  
  309:                                         result.AddSuccess("Entry for " + service + " was created.");
  310:                                     }
  311:                                 }
  312:                             }
  313:                         }
  314:                         else
  315:                         {
  316:                             serviceRequestAdministrativeIssue = null;
  317:                             result.AddError("Service number " + service + " is a PSTN number.");
  318:                         }
  319:                     }
  320:                     else
  321:                     {
  322:                         serviceRequestAdministrativeIssue = null;
  323:                         result.AddError("Service number " + service + " does not belong to a Nokia switch.");
  324:                     }
  325:                 }
  326:                 else
  327:                 {
  328:                     serviceRequestAdministrativeIssue = null;
  329:                     result.AddError("Service number " + service + " does not belong to the network.");
  330:                 }
  331:             }
  332:             else
  333:             {
  334:                 serviceRequestAdministrativeIssue = null;
  335:                 result.AddError("Input is null or empty.");
  336:             }
  337:  
  338:             return serviceRequestAdministrativeIssue;
  339:         }
  340:  
  341:         ////////////////////////////////////////////////////////////////////////////
  342:  
  343:         /// <summary>
  344:         ///
  345:         /// </summary>
  346:         public static bool Update2(Ia.Ftn.Cl.Models.Business.ServiceRequestAdministrativeIssue.DisconnectionType disconnectionType, string service, out Ia.Cl.Models.Result result)
  347:         {
  348:             bool isUpdated;
  349:             Ia.Ftn.Cl.Models.ServiceRequestAdministrativeIssue serviceRequestAdministrativeIssue;
  350:  
  351:             result = new Ia.Cl.Models.Result();
  352:  
  353:             if (!string.IsNullOrEmpty(service))
  354:             {
  355:                 if (Ia.Ftn.Cl.Models.Business.Service.ServiceHasEightDigitsAndIsWithinAllowedDomainList(service))
  356:                 {
  357:                     var isPstnService = Ia.Ftn.Cl.Models.Data.Service2.IsPstnService(service);
  358:  
  359:                     if (!isPstnService)
  360:                     {
  361:                         using (var db = new Ia.Ftn.Cl.Db())
  362:                         {
  363:                             var serviceRequestAdministrativeIssueId = Ia.Ftn.Cl.Models.Business.ServiceRequestAdministrativeIssue.ServiceRequestAdministrativeIssueId(service, Ia.Ftn.Cl.Models.Business.Service.ServiceType.ImsService);
  364:  
  365:                             serviceRequestAdministrativeIssue = (from srai in db.ServiceRequestAdministrativeIssues
  366:                                                                  where srai.Id == serviceRequestAdministrativeIssueId
  367:                                                                  select srai).SingleOrDefault();
  368:  
  369:                             if (serviceRequestAdministrativeIssue != null)
  370:                             {
  371:                                 if (disconnectionType == Ia.Ftn.Cl.Models.Business.ServiceRequestAdministrativeIssue.DisconnectionType.None)
  372:                                 {
  373:                                     db.ServiceRequestAdministrativeIssues.Remove(serviceRequestAdministrativeIssue);
  374:                                     db.SaveChanges();
  375:  
  376:                                     serviceRequestAdministrativeIssue = Ia.Ftn.Cl.Models.Data.ServiceRequestAdministrativeIssue.Read(service, out _);
  377:  
  378:                                     Ia.Ftn.Cl.Models.Data.MessageQueue.SecretaryApplication.Enqueue(Ia.Ftn.Cl.Models.Business.MessageQueue.Application.FtnApplication, Ia.Ftn.Cl.Models.Business.MessageQueue.Process.ServiceInServiceRequestAdministrativeIssuesUpdated, service);
  379:  
  380:                                     isUpdated = true;
  381:                                     result.AddSuccess("Entry for " + service + " was deleted.");
  382:                                 }
  383:                                 else if (serviceRequestAdministrativeIssue.Type != (int)disconnectionType)
  384:                                 {
  385:                                     serviceRequestAdministrativeIssue.Type = (int)disconnectionType;
  386:                                     serviceRequestAdministrativeIssue.Updated = DateTime.UtcNow.AddHours(3);
  387:                                     // serviceRequestAdministrativeIssue.StaffIdentityUser.Id = string.Empty;
  388:  
  389:                                     db.ServiceRequestAdministrativeIssues.Attach(serviceRequestAdministrativeIssue);
  390:                                     db.Entry(serviceRequestAdministrativeIssue).Property(u => u.Type).IsModified = true;
  391:                                     db.SaveChanges();
  392:  
  393:                                     serviceRequestAdministrativeIssue = Ia.Ftn.Cl.Models.Data.ServiceRequestAdministrativeIssue.Read(service, out _);
  394:  
  395:                                     Ia.Ftn.Cl.Models.Data.MessageQueue.SecretaryApplication.Enqueue(Ia.Ftn.Cl.Models.Business.MessageQueue.Application.FtnApplication, Ia.Ftn.Cl.Models.Business.MessageQueue.Process.ServiceInServiceRequestAdministrativeIssuesUpdated, service);
  396:  
  397:                                     isUpdated = true;
  398:                                     result.AddSuccess("Entry for " + service + " was updated.");
  399:                                 }
  400:                                 else
  401:                                 {
  402:                                     isUpdated = false;
  403:                                     result.AddWarning("Entry for " + service + " was not updated because it was not changed.");
  404:                                 }
  405:                             }
  406:                             else
  407:                             {
  408:                                 if (disconnectionType == Ia.Ftn.Cl.Models.Business.ServiceRequestAdministrativeIssue.DisconnectionType.None)
  409:                                 {
  410:                                     isUpdated = false;
  411:                                     result.AddWarning("Entry for " + service + " was not removed because it did not exist.");
  412:                                 }
  413:                                 else
  414:                                 {
  415:                                     serviceRequestAdministrativeIssue = new Ia.Ftn.Cl.Models.ServiceRequestAdministrativeIssue
  416:                                     {
  417:                                         Id = serviceRequestAdministrativeIssueId,
  418:                                         Service = service,
  419:                                         Type = (int)disconnectionType,
  420:                                         Value = String.Empty,
  421:                                         Created = DateTime.UtcNow.AddHours(3),
  422:                                         Updated = DateTime.UtcNow.AddHours(3),
  423:                                         StaffIdentityUser = null,
  424:                                     };
  425:  
  426:                                     db.ServiceRequestAdministrativeIssues.Add(serviceRequestAdministrativeIssue);
  427:                                     db.SaveChanges();
  428:  
  429:                                     serviceRequestAdministrativeIssue = Ia.Ftn.Cl.Models.Data.ServiceRequestAdministrativeIssue.Read(service, out _);
  430:  
  431:                                     Ia.Ftn.Cl.Models.Data.MessageQueue.SecretaryApplication.Enqueue(Ia.Ftn.Cl.Models.Business.MessageQueue.Application.FtnApplication, Ia.Ftn.Cl.Models.Business.MessageQueue.Process.ServiceInServiceRequestAdministrativeIssuesUpdated, service);
  432:  
  433:                                     isUpdated = true;
  434:                                     result.AddSuccess("Entry for " + service + " was created.");
  435:                                 }
  436:                             }
  437:                         }
  438:                     }
  439:                     else
  440:                     {
  441:                         isUpdated = false;
  442:                         result.AddError("Service number " + service + " is a PSTN number.");
  443:                     }
  444:                 }
  445:                 else
  446:                 {
  447:                     isUpdated = false;
  448:                     result.AddError("Service number " + service + " does not belong to the network.");
  449:                 }
  450:             }
  451:             else
  452:             {
  453:                 isUpdated = false;
  454:                 result.AddError("Input is null or empty.");
  455:             }
  456:  
  457:             return isUpdated;
  458:         }
  459:  
  460:         ////////////////////////////////////////////////////////////////////////////
  461:         ////////////////////////////////////////////////////////////////////////////
  462:  
  463:         /// <summary>
  464:         ///
  465:         /// </summary>
  466:         public static string ToSimpleTextString(Ia.Ftn.Cl.Models.ServiceRequestAdministrativeIssue serviceRequestAdministrativeIssue)
  467:         {
  468:             var sb = new StringBuilder();
  469:  
  470:             sb.AppendLine("Service: " + serviceRequestAdministrativeIssue.Service);
  471:  
  472:             var typeName = Ia.Ftn.Cl.Models.Business.ServiceRequestAdministrativeIssue.ServiceRequestAdministrativeIssueTypeList.Where(u => (int)u.DisconnectionType == serviceRequestAdministrativeIssue.Type).Select(u => u.Name).SingleOrDefault();
  473:             sb.AppendLine("Type: " + typeName);
  474:  
  475:             sb.AppendLine("Value: " + serviceRequestAdministrativeIssue.Value);
  476:  
  477:             return sb.ToString();
  478:         }
  479:  
  480:         ////////////////////////////////////////////////////////////////////////////
  481:         ////////////////////////////////////////////////////////////////////////////
  482:     }
  483:  
  484:     ////////////////////////////////////////////////////////////////////////////
  485:     ////////////////////////////////////////////////////////////////////////////
  486: }