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

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

    1: using Microsoft.AspNetCore.Identity;
    2:  
    3: namespace Ia.Ftn.Wa.Models.Administration
    4: {
    5:     ////////////////////////////////////////////////////////////////////////////
    6:  
    7:     /// <summary publish="true">
    8:     ///
    9:     /// </summary>
   10:     /// 
   11:     /// <remarks> 
   12:     /// Copyright © 2006-2025 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
   13:     /// </remarks> 
   14:     public class AreaReadiness
   15:     {
   16:         ////////////////////////////////////////////////////////////////////////////
   17:  
   18:         /// <summary>
   19:         ///
   20:         /// </summary>
   21:         public static List<Ia.Ftn.Wa.Models.Administration.AreaReadinessViewModel> AreaReadinessList()
   22:         {
   23:             bool b;
   24:             List<Ia.Ftn.Wa.Models.Administration.AreaReadinessViewModel> readinessList;
   25:  
   26:             readinessList = new List<Ia.Ftn.Wa.Models.Administration.AreaReadinessViewModel>();
   27:  
   28:  
   29:             var kuwaitAreaList = Ia.Cl.Models.Kuwait.KuwaitAreaList;
   30:  
   31:             // - entry in NDD document with complete olts, sip or not,...etc.
   32:             // - symbol in service.xml with kuwait-area.xml idea and equivalent name format from cust dept service request
   33:             // <area id="60603" serviceRequestAddressProvinceAreaName="حولى ميدان حولي" symbol="MHL" />
   34:             var kuwaitFtnAreaList = Ia.Ftn.Cl.Models.Data.Service.KuwaitFtnAreaList;
   35:  
   36:             var siteList = Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.SiteList;
   37:             var oltList = Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.OltList;
   38:             var ponGroupList = Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.PonGroupList;
   39:  
   40:             // - access in customer service database in service requests, and service request history, for domains
   41:             var serviceRequestDomainList = Ia.Ftn.Cl.Models.Data.ServiceRequest.ServiceRequestDomainList;
   42:             var serviceRequestHistoryDomainList = Ia.Ftn.Cl.Models.Data.ServiceRequestHistory.ServiceRequestHistoryDomainList;
   43:  
   44:             // - pstn access and possible msan or sps, or softx access for brown fields
   45:  
   46:             var pstnDomainList = Ia.Ftn.Cl.Models.Data.Service.PstnDomainList;
   47:             var msanDomainList = Ia.Ftn.Cl.Models.Data.Service.MsanDomainList;
   48:             var axePstnDomainList = Ia.Ftn.Cl.Models.Data.Service.AxePstnDomainList;
   49:             var ewsdPstnDomainList = Ia.Ftn.Cl.Models.Data.Service.EwsdPstnDomainList;
   50:  
   51:             // - in list of allowed to be migrated or provisioned
   52:             var allowedToBeMigratedOltSymbolList = Ia.Ftn.Cl.Models.Business.Service.AllowedToBeMigratedOltSymbolList;
   53:             var allowedToBeProvisionedSymbolList = Ia.Ftn.Cl.Models.Business.Service.AllowedToBeProvisionedOltSymbolList;
   54:  
   55:             // - permission in administration.xml for specific frameworks.
   56:             var frameworkList = Ia.Ftn.Cl.Models.Data.Administration.FrameworkList;
   57:  
   58:             foreach (var kuwaitArea in kuwaitAreaList.OrderBy(u => u.Name))
   59:             {
   60:                 var readiness = new Ia.Ftn.Wa.Models.Administration.AreaReadinessViewModel();
   61:  
   62:                 readiness.NameArabicName = kuwaitArea.Name + " (" + kuwaitArea.ArabicName + ")";
   63:  
   64:                 var symbol = (from k in kuwaitFtnAreaList
   65:                               where k.Id == kuwaitArea.Id && !string.IsNullOrEmpty(k.Symbol)
   66:                               select k.Symbol).SingleOrDefault();
   67:  
   68:                 if (!string.IsNullOrEmpty(symbol))
   69:                 {
   70:                     readiness.IsInKuwaitFtnAreaList = Ia.Cl.Models.Default.YesNoInArabic(true);
   71:  
   72:                     var site = (from si in siteList
   73:                                 where si.AreaSymbolList.Contains(symbol)
   74:                                 select si).FirstOrDefault(); //.SingleOrDefault(); problem with MGF in two sites
   75:  
   76:                     b = site != null;
   77:  
   78:                     if (b)
   79:                     {
   80:                         readiness.IsInSite = Ia.Cl.Models.Default.YesNoInArabic(true);
   81:  
   82:                         b = site.Routers.Any(u => u.DomainList.Any(u0 => serviceRequestDomainList.Contains(u0) && serviceRequestHistoryDomainList.Contains(u0)));
   83:                         if (b) readiness.IsInServiceRequestAndServiceRequestHistoryDomainList = Ia.Cl.Models.Default.YesNoInArabic(true);
   84:                         else readiness.IsInServiceRequestAndServiceRequestHistoryDomainList = Ia.Cl.Models.Default.YesNoInArabic(false);
   85:  
   86:                         var fieldType = (from o in oltList where o.Symbol == symbol select o.FieldType).FirstOrDefault();
   87:  
   88:                         readiness.AreaFieldType = Ia.Ftn.Cl.Models.Business.NetworkDesignDocument.FieldTypeColoredString(fieldType);
   89:  
   90:  
   91:                         if (fieldType == Ia.Ftn.Cl.Models.Business.NetworkDesignDocument.FieldType.Brown)
   92:                         {
   93:                             if (site.DomainList.Any(u => pstnDomainList.Contains(u)) || site.DomainList.Any(u => msanDomainList.Contains(u)))
   94:                             {
   95:                                 readiness.IsInPstnOrMsanDomainList = Ia.Cl.Models.Default.YesNoInArabic(true);
   96:                             }
   97:                             else readiness.IsInPstnOrMsanDomainList = Ia.Cl.Models.Default.YesNoInArabic(false);
   98:                         }
   99:                         else //if (fieldType ==  Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.FieldType.Green)
  100:                         {
  101:                             readiness.IsInPstnOrMsanDomainList = Ia.Cl.Models.Default.YesNoInArabic(false);
  102:                         }
  103:  
  104:  
  105:                         b = allowedToBeProvisionedSymbolList.Contains(symbol);
  106:  
  107:                         if (b)
  108:                         {
  109:                             readiness.IsInAllowedToBeProvisionedSymbolList = Ia.Cl.Models.Default.YesNoInArabic(true);
  110:  
  111:                             if (fieldType == Ia.Ftn.Cl.Models.Business.NetworkDesignDocument.FieldType.Brown)
  112:                             {
  113:                                 if (site.DomainList.Any(u => pstnDomainList.Contains(u)) || site.DomainList.Any(u => msanDomainList.Contains(u)))
  114:                                 {
  115:                                     var v = (from a in allowedToBeMigratedOltSymbolList
  116:                                              where a.Contains(symbol)
  117:                                              select a).FirstOrDefault();
  118:  
  119:                                     b = v != null;
  120:                                     if (b) readiness.IsInAllowedToBeMigratedSymbolList = Ia.Cl.Models.Default.YesNoInArabic(true);
  121:                                     else readiness.IsInAllowedToBeMigratedSymbolList = Ia.Cl.Models.Default.YesNoInArabic(false);
  122:                                 }
  123:                                 else
  124:                                 {
  125:                                     readiness.IsInAllowedToBeMigratedSymbolList = Ia.Cl.Models.Default.YesNoInArabic(null);
  126:                                 }
  127:                             }
  128:                             else //if (fieldType ==  Ia.Ftn.Cl.Model.Business.NetworkDesignDocument.FieldType)
  129:                             {
  130:                                 readiness.IsInAllowedToBeMigratedSymbolList = Ia.Cl.Models.Default.YesNoInArabic(null);
  131:                             }
  132:  
  133:                             var w = (from f in frameworkList
  134:                                      where f.Sites.Any(u => u.Name == site.Name)
  135:                                      select f).FirstOrDefault();
  136:  
  137:                             b = w != null;
  138:                             if (b) readiness.IsInFrameworkAdministration = Ia.Cl.Models.Default.YesNoInArabic(true);
  139:                             else readiness.IsInFrameworkAdministration = Ia.Cl.Models.Default.YesNoInArabic(false);
  140:                         }
  141:                         else
  142:                         {
  143:                             readiness.IsInAllowedToBeProvisionedSymbolList = Ia.Cl.Models.Default.YesNoInArabic(false);
  144:                             readiness.IsInAllowedToBeMigratedSymbolList = Ia.Cl.Models.Default.YesNoInArabic(null);
  145:                             readiness.IsInFrameworkAdministration = Ia.Cl.Models.Default.YesNoInArabic(null);
  146:                         }
  147:  
  148:  
  149:  
  150:  
  151:                     }
  152:                     else
  153:                     {
  154:                         readiness.IsInSite = Ia.Cl.Models.Default.YesNoInArabic(false);
  155:                         readiness.IsInServiceRequestAndServiceRequestHistoryDomainList = Ia.Cl.Models.Default.YesNoInArabic(null);
  156:                         readiness.AreaFieldType = Ia.Cl.Models.Default.YesNoInArabic(null); // just to produce colored لا ينطبق
  157:                         readiness.IsInAllowedToBeProvisionedSymbolList = Ia.Cl.Models.Default.YesNoInArabic(null);
  158:                         readiness.IsInAllowedToBeMigratedSymbolList = Ia.Cl.Models.Default.YesNoInArabic(null);
  159:                         readiness.IsInPstnOrMsanDomainList = Ia.Cl.Models.Default.YesNoInArabic(null);
  160:                         readiness.IsInFrameworkAdministration = Ia.Cl.Models.Default.YesNoInArabic(null);
  161:                     }
  162:                 }
  163:                 else
  164:                 {
  165:                     readiness.IsInKuwaitFtnAreaList = Ia.Cl.Models.Default.YesNoInArabic(false);
  166:                     readiness.IsInSite = Ia.Cl.Models.Default.YesNoInArabic(null);
  167:                     readiness.IsInServiceRequestAndServiceRequestHistoryDomainList = Ia.Cl.Models.Default.YesNoInArabic(null);
  168:                     readiness.AreaFieldType = Ia.Cl.Models.Default.YesNoInArabic(null); // just to produce colored لا ينطبق
  169:                     readiness.IsInAllowedToBeProvisionedSymbolList = Ia.Cl.Models.Default.YesNoInArabic(null);
  170:                     readiness.IsInAllowedToBeMigratedSymbolList = Ia.Cl.Models.Default.YesNoInArabic(null);
  171:                     readiness.IsInPstnOrMsanDomainList = Ia.Cl.Models.Default.YesNoInArabic(null);
  172:                     readiness.IsInFrameworkAdministration = Ia.Cl.Models.Default.YesNoInArabic(null);
  173:                 }
  174:  
  175:                 readinessList.Add(readiness);
  176:             }
  177:  
  178:             return readinessList.ToList();
  179:         }
  180:  
  181:         ////////////////////////////////////////////////////////////////////////////
  182:         ////////////////////////////////////////////////////////////////////////////
  183:     }
  184:  
  185:     ////////////////////////////////////////////////////////////////////////////
  186:     ////////////////////////////////////////////////////////////////////////////
  187: }