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

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

    1: using System.Text;
    2:  
    3: namespace Ia.Ftn.Wa.Models.Maintenance
    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:     ///
   14:     /// 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
   15:     /// the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
   16:     ///
   17:     /// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
   18:     /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
   19:     /// 
   20:     /// You should have received a copy of the GNU General Public License along with this library. If not, see http://www.gnu.org/licenses.
   21:     /// 
   22:     /// Copyright notice: This notice may not be removed or altered from any source distribution.
   23:     /// </remarks> 
   24:     public static class Integrity
   25:     {
   26:         ////////////////////////////////////////////////////////////////////////////
   27:  
   28:         /// <summary>
   29:         ///
   30:         /// </summary>
   31:         public static void ViewModel(ref Ia.Ftn.Wa.Models.Maintenance.IntegrityViewModel integrityViewModel)
   32:         {
   33:             Dictionary<string, string> sNoProvisionedSrsDictionary, sNoNddOntDictionary, provisionedSrsNoSDictionary, srsNoNddOntDictionary, sWithNddOntNoEqualToSrsNddOntDictionary, srsWithNddOntNoEqualToSNddOntDictionary;
   34:             Dictionary<string, string> serviceToUpdateServiceServiceIdAccessIdDictionary, serviceToCreateServiceIdAccessIdDictionary, serviceToDeleteServiceIdAccessIdDictionary;
   35:             Dictionary<string, string> imsSWithSiteNoProvisionedSrsDictionary, pstnSWithSiteNoProvisionedSrsDictionary, pstnSWithSiteMismatchedWithSrsDictionary, provisionedSrsWithSiteNoSDictionary;
   36:  
   37:             // Add: Ia.Ftn.Cl.Models.Data.Service.ServiceThatDoNotExistInServiceRequestServiceServiceIdList();
   38:  
   39:             var stringBuilder = new StringBuilder();
   40:  
   41:             Ia.Ftn.Cl.Models.Data.Provision.ServiceToUpdateServiceIdAccessIdDictionary_ServiceToCreateServiceIdAccessIdDictionary_ServiceToDeleteServiceIdAccessIdDictionary(out serviceToUpdateServiceServiceIdAccessIdDictionary, out serviceToCreateServiceIdAccessIdDictionary, out serviceToDeleteServiceIdAccessIdDictionary);
   42:  
   43:             Ia.Ftn.Cl.Models.Data.Provision.ServiceToCreateServiceIdDictionary_ServiceToDeleteServiceIdDictionary(out Dictionary<string, string> serviceToCreateServiceIdDictionary, out Dictionary<string, string> serviceToDeleteServiceIdDictionary);
   44:  
   45:             ////////////////////////////////////////////////////////////////////////////
   46:  
   47:             var count = 0;
   48:             stringBuilder.Clear();
   49:             foreach (string serviceId in serviceToCreateServiceIdAccessIdDictionary.Keys) HttpLinkFormat(serviceId, ref stringBuilder, ref count);
   50:             foreach (string serviceId in serviceToCreateServiceIdDictionary.Keys) HttpLinkFormat(serviceId, ref stringBuilder, ref count);
   51:  
   52:             integrityViewModel.ServiceToCreateListLabel = count.ToString();
   53:             integrityViewModel.ServiceToCreateListLiteral = stringBuilder.ToString();
   54:  
   55:             ////////////////////////////////////////////////////////////////////////////
   56:  
   57:             count = 0;
   58:             stringBuilder.Clear();
   59:             foreach (string serviceId in serviceToUpdateServiceServiceIdAccessIdDictionary.Keys) HttpLinkFormat(serviceId, ref stringBuilder, ref count);
   60:  
   61:             integrityViewModel.ServiceToUpdateListLabel = count.ToString();
   62:             integrityViewModel.ServiceToUpdateListLiteral = stringBuilder.ToString();
   63:  
   64:             ////////////////////////////////////////////////////////////////////////////
   65:  
   66:             count = 0;
   67:             stringBuilder.Clear();
   68:             foreach (string serviceId in serviceToDeleteServiceIdAccessIdDictionary.Keys) HttpLinkFormat(serviceId, ref stringBuilder, ref count);
   69:             foreach (string serviceId in serviceToDeleteServiceIdDictionary.Keys) HttpLinkFormat(serviceId, ref stringBuilder, ref count);
   70:  
   71:             integrityViewModel.ServiceToDeleteListLabel = count.ToString();
   72:             integrityViewModel.ServiceToDeleteListLiteral = stringBuilder.ToString();
   73:  
   74:             /*
   75:             ////////////////////////////////////////////////////////////////////////////
   76: 
   77:             c = 0;
   78:             sb.Clear();
   79:             foreach (string s in Ia.Ftn.Cl.Models.Data.ServiceRequestService.ServiceRequestServiceServiceIdWhereProvisionedIsTrueAndAccessIsNullList()) HttpLinkFormat(s, ref sb, ref c);
   80: 
   81:             provisionedServiceRequestServiceWithNullAccessListLabel = c.ToString();
   82:             provisionedServiceRequestServiceWithNullAccessListLiteral = sb.ToString();
   83: 
   84:             ////////////////////////////////////////////////////////////////////////////
   85: 
   86:             c = 0;
   87:             sb.Clear();
   88:             foreach (string s in Ia.Ftn.Cl.Models.Data.Service2.ServiceServiceIdWithNullAccessList()) HttpLinkFormat(s, ref sb, ref c);
   89: 
   90:             serviceWithNullAccessListLabel = c.ToString();
   91:             serviceWithNullAccessListLiteral = sb.ToString();
   92:             */
   93:  
   94:             ////////////////////////////////////////////////////////////////////////////
   95:  
   96:             count = 0;
   97:             stringBuilder.Clear();
   98:             var provisionedServiceRequestServiceAndServiceMismatchAccessServiceIdList = Ia.Ftn.Cl.Models.Data.Provision.ProvisionedServiceRequestServiceAndServiceMismatchAccessServiceIdList();
   99:             foreach (string s in provisionedServiceRequestServiceAndServiceMismatchAccessServiceIdList.Keys) HttpLinkFormat(s, ref stringBuilder, ref count);
  100:  
  101:             integrityViewModel.ProvisionedServiceRequestServiceAndServiceMismatchAccessServiceIdListLabel = count.ToString();
  102:             integrityViewModel.ProvisionedServiceRequestServiceAndServiceMismatchAccessServiceIdListLiteral = stringBuilder.ToString();
  103:  
  104:             /*
  105:             ////////////////////////////////////////////////////////////////////////////
  106: 
  107:             c = 0;
  108:             sb.Clear();
  109:             foreach (string s in Ia.Ftn.Cl.Models.Data.Nokia.AgcfGatewayRecord.AgcfGatewayRecordIpListNotInNetworkDesignDocument.Keys) Procedure(s, ref sb, ref c);
  110: 
  111:             agcfGatewayRecordIpThatDontExistInNetworkDesignDocumentLabel = c.ToString();
  112:             agcfGatewayRecordIpThatDontExistInNetworkDesignDocumentLiteral = sb.ToString();
  113:             */
  114:  
  115:             ////////////////////////////////////////////////////////////////////////////
  116:             ////////////////////////////////////////////////////////////////////////////
  117:             ////////////////////////////////////////////////////////////////////////////
  118:  
  119:             // New with Access
  120:  
  121:             IntegrityWithAccess(out sNoProvisionedSrsDictionary, out sNoNddOntDictionary, out provisionedSrsNoSDictionary, out srsNoNddOntDictionary, out sWithNddOntNoEqualToSrsNddOntDictionary, out srsWithNddOntNoEqualToSNddOntDictionary);
  122:  
  123:             ////////////////////////////////////////////////////////////////////////////
  124:  
  125:             count = 0;
  126:             stringBuilder.Clear();
  127:             ServiceGroupedByPonGroupSymbolInHttpLinkFormat(provisionedSrsNoSDictionary, ref stringBuilder, ref count);
  128:  
  129:             integrityViewModel.ProvisionedSrsNoSLabel = count.ToString();
  130:             integrityViewModel.ProvisionedSrsNoSLiteral = stringBuilder.ToString();
  131:  
  132:             ////////////////////////////////////////////////////////////////////////////
  133:  
  134:             count = 0;
  135:             stringBuilder.Clear();
  136:             ServiceGroupedByPonGroupSymbolInHttpLinkFormat(sNoProvisionedSrsDictionary, ref stringBuilder, ref count);
  137:  
  138:             integrityViewModel.SNoProvisionedSrsLabel = count.ToString();
  139:             integrityViewModel.SNoProvisionedSrsLiteral = stringBuilder.ToString();
  140:  
  141:             ////////////////////////////////////////////////////////////////////////////
  142:  
  143:             count = 0;
  144:             stringBuilder.Clear();
  145:             ServiceGroupedByPonGroupSymbolInHttpLinkFormat(sNoNddOntDictionary, ref stringBuilder, ref count);
  146:  
  147:             integrityViewModel.SNoNddOntLabel = count.ToString();
  148:             integrityViewModel.SNoNddOntLiteral = stringBuilder.ToString();
  149:  
  150:             ////////////////////////////////////////////////////////////////////////////
  151:  
  152:             count = 0;
  153:             stringBuilder.Clear();
  154:             ServiceGroupedByPonGroupSymbolInHttpLinkFormat(srsNoNddOntDictionary, ref stringBuilder, ref count);
  155:  
  156:             integrityViewModel.SrsNoNddOntLabel = count.ToString();
  157:             integrityViewModel.SrsNoNddOntLiteral = stringBuilder.ToString();
  158:  
  159:             ////////////////////////////////////////////////////////////////////////////
  160:  
  161:             count = 0;
  162:             stringBuilder.Clear();
  163:             ServiceGroupedByPonGroupSymbolInHttpLinkFormat(sWithNddOntNoEqualToSrsNddOntDictionary, ref stringBuilder, ref count);
  164:  
  165:             integrityViewModel.SWithNddOntNoEqualToSrsNddOntLabel = count.ToString();
  166:             integrityViewModel.SWithNddOntNoEqualToSrsNddOntLiteral = stringBuilder.ToString();
  167:  
  168:             ////////////////////////////////////////////////////////////////////////////
  169:  
  170:             count = 0;
  171:             stringBuilder.Clear();
  172:             ServiceGroupedByPonGroupSymbolInHttpLinkFormat(srsWithNddOntNoEqualToSNddOntDictionary, ref stringBuilder, ref count);
  173:  
  174:             integrityViewModel.SrsWithNddOntNoEqualToSNddOntLabel = count.ToString();
  175:             integrityViewModel.SrsWithNddOntNoEqualToSNddOntLiteral = stringBuilder.ToString();
  176:  
  177:             ////////////////////////////////////////////////////////////////////////////
  178:             ////////////////////////////////////////////////////////////////////////////
  179:             ////////////////////////////////////////////////////////////////////////////
  180:  
  181:             // New with Site
  182:  
  183:             IntegrityWithSite(out imsSWithSiteNoProvisionedSrsDictionary, out pstnSWithSiteNoProvisionedSrsDictionary, out pstnSWithSiteMismatchedWithSrsDictionary, out provisionedSrsWithSiteNoSDictionary);
  184:  
  185:             ////////////////////////////////////////////////////////////////////////////
  186:  
  187:             count = 0;
  188:             stringBuilder.Clear();
  189:             ServiceGroupedBySiteInHttpLinkFormat(imsSWithSiteNoProvisionedSrsDictionary, ref stringBuilder, ref count);
  190:  
  191:             integrityViewModel.ImsSWithSiteNoProvisionedSrsLabel = count.ToString();
  192:             integrityViewModel.ImsSWithSiteNoProvisionedSrsLiteral = stringBuilder.ToString();
  193:  
  194:             count = 0;
  195:             stringBuilder.Clear();
  196:             ServiceGroupedBySiteInHttpLinkFormat(pstnSWithSiteNoProvisionedSrsDictionary, ref stringBuilder, ref count);
  197:  
  198:             integrityViewModel.PstnSWithSiteNoProvisionedSrsLabel = count.ToString();
  199:             integrityViewModel.PstnSWithSiteNoProvisionedSrsLiteral = stringBuilder.ToString();
  200:  
  201:             count = 0;
  202:             stringBuilder.Clear();
  203:             ServiceGroupedBySiteInHttpLinkFormat(pstnSWithSiteMismatchedWithSrsDictionary, ref stringBuilder, ref count);
  204:  
  205:             integrityViewModel.PstnSWithSiteMismatchedWithSrsLabel = count.ToString();
  206:             integrityViewModel.PstnSWithSiteMismatchedWithSrsLiteral = stringBuilder.ToString();
  207:  
  208:             ////////////////////////////////////////////////////////////////////////////
  209:  
  210:             count = 0;
  211:             stringBuilder.Clear();
  212:             ServiceGroupedBySiteInHttpLinkFormat(provisionedSrsWithSiteNoSDictionary, ref stringBuilder, ref count);
  213:  
  214:             integrityViewModel.ProvisionedSrsWithSiteNoSLabel = count.ToString();
  215:             integrityViewModel.ProvisionedSrsWithSiteNoSLiteral = stringBuilder.ToString();
  216:  
  217:             ////////////////////////////////////////////////////////////////////////////
  218:         }
  219:  
  220:         ////////////////////////////////////////////////////////////////////////////
  221:  
  222:         /// <summary>
  223:         ///
  224:         /// </summary>
  225:         private static void HttpLinkFormat(string s, ref StringBuilder sb, ref int c)
  226:         {
  227:             string u;
  228:  
  229:             u = s.Replace(":1:965", "");
  230:             u = @"<a href=""find.aspx?input=" + u + @""">" + u + "</a>";
  231:             sb.Append(u + ", ");
  232:  
  233:             c++;
  234:         }
  235:  
  236:         ////////////////////////////////////////////////////////////////////////////
  237:  
  238:         /// <summary>
  239:         ///
  240:         /// </summary>
  241:         private static void ServiceGroupedByPonGroupSymbolInHttpLinkFormat(Dictionary<string, string> dic, ref StringBuilder sb, ref int c)
  242:         {
  243:             string ponGroupSymbol;
  244:  
  245:             Dictionary<string, string> ponGroupSymbolServiceDictionary;
  246:  
  247:             ponGroupSymbolServiceDictionary = new Dictionary<string, string>();
  248:  
  249:             //u = s.Replace(":1:965", "");
  250:             //u = @"<a href=""find.aspx?input=" + u + @""">" + u + "</a>";
  251:             //sb.Append(u + ", ");
  252:  
  253:             foreach (KeyValuePair<string, string> kvp in dic)
  254:             {
  255:                 if (!string.IsNullOrEmpty(kvp.Value))
  256:                 {
  257:                     ponGroupSymbol = kvp.Value.Substring(0, 3);
  258:  
  259:                     if (ponGroupSymbolServiceDictionary.ContainsKey(ponGroupSymbol))
  260:                     {
  261:                         ponGroupSymbolServiceDictionary[ponGroupSymbol] = ponGroupSymbolServiceDictionary[ponGroupSymbol] + ", " + kvp.Key;
  262:                     }
  263:                     else ponGroupSymbolServiceDictionary[ponGroupSymbol] = kvp.Key;
  264:  
  265:                     c++;
  266:                 }
  267:             }
  268:  
  269:             foreach (KeyValuePair<string, string> kvp in ponGroupSymbolServiceDictionary)
  270:             {
  271:                 sb.AppendLine("<p><b>" + kvp.Key + "</b>: " + kvp.Value + "</p>");
  272:             }
  273:         }
  274:  
  275:         ////////////////////////////////////////////////////////////////////////////
  276:  
  277:         /// <summary>
  278:         ///
  279:         /// </summary>
  280:         private static void ServiceGroupedBySiteInHttpLinkFormat(Dictionary<string, string> dic, ref StringBuilder sb, ref int c)
  281:         {
  282:             string siteSymbol;
  283:  
  284:             Dictionary<string, string> siteSymbolServiceDictionary;
  285:  
  286:             siteSymbolServiceDictionary = new Dictionary<string, string>();
  287:  
  288:             //u = s.Replace(":1:965", "");
  289:             //u = @"<a href=""find.aspx?input=" + u + @""">" + u + "</a>";
  290:             //sb.Append(u + ", ");
  291:  
  292:             foreach (KeyValuePair<string, string> kvp in dic)
  293:             {
  294:                 if (!string.IsNullOrEmpty(kvp.Value))
  295:                 {
  296:                     siteSymbol = kvp.Value.Substring(0, 3);
  297:  
  298:                     if (siteSymbolServiceDictionary.ContainsKey(siteSymbol))
  299:                     {
  300:                         siteSymbolServiceDictionary[siteSymbol] = siteSymbolServiceDictionary[siteSymbol] + ", " + kvp.Key;
  301:                     }
  302:                     else siteSymbolServiceDictionary[siteSymbol] = kvp.Key;
  303:  
  304:                     c++;
  305:                 }
  306:             }
  307:  
  308:             foreach (KeyValuePair<string, string> kvp in siteSymbolServiceDictionary)
  309:             {
  310:                 sb.AppendLine("<p><b>" + kvp.Key + "</b>: " + kvp.Value + "</p>");
  311:             }
  312:         }
  313:  
  314:         ////////////////////////////////////////////////////////////////////////////
  315:  
  316:         /// <summary>
  317:         /// 
  318:         /// </summary>
  319:         public static void IntegrityWithAccess(out Dictionary<string, string> sNoProvisionedSrs, out Dictionary<string, string> sNoNddOnt, out Dictionary<string, string> provisionedSrsNoS, out Dictionary<string, string> srsNoNddOnt, out Dictionary<string, string> sWithNddOntNoEqualToSrsNddOnt, out Dictionary<string, string> srsWithNddOntNoEqualToSNddOnt)
  320:         {
  321:             string service, accessName, accessName2;
  322:  
  323:             sNoProvisionedSrs = new Dictionary<string, string>();
  324:             sNoNddOnt = new Dictionary<string, string>();
  325:             provisionedSrsNoS = new Dictionary<string, string>();
  326:             srsNoNddOnt = new Dictionary<string, string>();
  327:             sWithNddOntNoEqualToSrsNddOnt = new Dictionary<string, string>();
  328:             srsWithNddOntNoEqualToSNddOnt = new Dictionary<string, string>();
  329:  
  330:             // dictionary of S - NddOnt and SRS-NddOnt
  331:             var serviceToNddOntDictionary = Ia.Ftn.Cl.Models.Data.Service2.ServiceToNddOntDictionary;
  332:             var serviceRequestServiceProvisionedServiceToNddOntDictionary = Ia.Ftn.Cl.Models.Data.ServiceRequestService.ProvisionedServiceToNddOntDictionary;
  333:  
  334:             /*
  335:             foreach S
  336:                 S no SRS
  337:                 S no nddOnt             
  338:             */
  339:             foreach (var kvp in serviceToNddOntDictionary)
  340:             {
  341:                 service = kvp.Key;
  342:                 accessName = (kvp.Value != null) ? kvp.Value.Access.Name : string.Empty;
  343:  
  344:                 if (!serviceRequestServiceProvisionedServiceToNddOntDictionary.ContainsKey(service)) sNoProvisionedSrs.Add(service, accessName);
  345:  
  346:                 if (string.IsNullOrEmpty(accessName)) sNoNddOnt.Add(service, string.Empty);
  347:             }
  348:  
  349:             /*
  350:             foreach SRS
  351:                 SRS no S
  352:                 SRS no nddOnt
  353:             */
  354:             foreach (var kvp in serviceRequestServiceProvisionedServiceToNddOntDictionary)
  355:             {
  356:                 service = kvp.Key;
  357:                 accessName = (kvp.Value != null) ? kvp.Value.Access.Name : string.Empty;
  358:  
  359:                 if (!serviceToNddOntDictionary.ContainsKey(service)) provisionedSrsNoS.Add(service, accessName);
  360:  
  361:                 if (string.IsNullOrEmpty(accessName)) srsNoNddOnt.Add(service, string.Empty);
  362:             }
  363:  
  364:             /*
  365:             foreach S with nddOnt
  366:                  S nddOnt!= SRS nddOnt if exists
  367:             */
  368:             foreach (var kvp in serviceToNddOntDictionary)
  369:             {
  370:                 service = kvp.Key;
  371:  
  372:                 if (!sNoNddOnt.ContainsKey(service))
  373:                 {
  374:                     accessName = kvp.Value.Access.Name;
  375:  
  376:                     if (serviceRequestServiceProvisionedServiceToNddOntDictionary.ContainsKey(service))
  377:                     {
  378:                         if (!srsNoNddOnt.ContainsKey(service))
  379:                         {
  380:                             accessName2 = serviceRequestServiceProvisionedServiceToNddOntDictionary[service].Access.Name;
  381:  
  382:                             if (accessName != accessName2)
  383:                             {
  384:                                 sWithNddOntNoEqualToSrsNddOnt.Add(service, accessName);
  385:                             }
  386:                         }
  387:                     }
  388:                 }
  389:             }
  390:  
  391:  
  392:             /*
  393:             foreach SRS with nddOnt
  394:                  SRS nddOnt!= S nddOnt if exists
  395:             */
  396:             foreach (var kvp in serviceRequestServiceProvisionedServiceToNddOntDictionary)
  397:             {
  398:                 service = kvp.Key;
  399:  
  400:                 if (!srsNoNddOnt.ContainsKey(service))
  401:                 {
  402:                     accessName = kvp.Value.Access.Name;
  403:  
  404:                     if (serviceToNddOntDictionary.ContainsKey(service))
  405:                     {
  406:                         if (!sNoNddOnt.ContainsKey(service))
  407:                         {
  408:                             accessName2 = serviceToNddOntDictionary[service].Access.Name;
  409:  
  410:                             if (accessName != accessName2)
  411:                             {
  412:                                 srsWithNddOntNoEqualToSNddOnt.Add(service, accessName);
  413:                             }
  414:                         }
  415:                     }
  416:                 }
  417:             }
  418:         }
  419:  
  420:         ////////////////////////////////////////////////////////////////////////////
  421:  
  422:         /// <summary>
  423:         /// 
  424:         /// </summary>
  425:         public static void IntegrityWithSite(out Dictionary<string, string> imsSWithSiteNoProvisionedSrsDictionary, out Dictionary<string, string> pstnSWithSiteNoProvisionedSrsDictionary, out Dictionary<string, string> pstnSWithSiteMismatchedWithSrsDictionary, out Dictionary<string, string> provisionedSrsWithSiteNoSDictionary)
  426:         {
  427:             string service, siteName;
  428:  
  429:             provisionedSrsWithSiteNoSDictionary = new Dictionary<string, string>();
  430:             pstnSWithSiteNoProvisionedSrsDictionary = new Dictionary<string, string>();
  431:  
  432:             // dictionary of S-Site and SRS-Site
  433:             var serviceToSiteNameDictionary = Ia.Ftn.Cl.Models.Data.Service2.ServiceToSiteDictionary;
  434:             var serviceRequestServiceProvisionedServiceToSiteNameDictionary = Ia.Ftn.Cl.Models.Data.ServiceRequestService.ProvisionedServiceToSiteDictionary;
  435:  
  436:             /*
  437:             foreach IMS S
  438:                 S no SRS
  439:             */
  440:             imsSWithSiteNoProvisionedSrsDictionary = Ia.Ftn.Cl.Models.Data.Service2.ImsServiceNotInProvisionedServiceRequestServiceToSiteDictionary;
  441:  
  442:             /*
  443:             foreach PSTN S
  444:                 S no SRS
  445:             */
  446:             pstnSWithSiteNoProvisionedSrsDictionary = Ia.Ftn.Cl.Models.Data.Service2.PstnServiceNotInProvisionedServiceRequestServiceToSiteDictionary;
  447:  
  448:             /*
  449:             foreach SRS
  450:                 SRS no S
  451:             */
  452:             foreach (var kvp in serviceRequestServiceProvisionedServiceToSiteNameDictionary)
  453:             {
  454:                 service = kvp.Key;
  455:                 siteName = kvp.Value.Name;
  456:  
  457:                 if (!serviceToSiteNameDictionary.ContainsKey(service)) provisionedSrsWithSiteNoSDictionary.Add(service, siteName);
  458:             }
  459:  
  460:             /*
  461:             foreach S with SRS exists
  462:                 S != SRS
  463:             */
  464:  
  465:             var complementaryPstnServiceMismatchBetweenProvisionedServiceRequestServiceAndServiceServiceIdAccessIdList = Ia.Ftn.Cl.Models.Data.Provision.ComplementaryPstnServiceMismatchBetweenProvisionedServiceRequestServiceAndServiceServiceIdAccessIdList(DateTime.MinValue);
  466:  
  467:             pstnSWithSiteMismatchedWithSrsDictionary = new Dictionary<string, string>();
  468:             foreach (KeyValuePair<string, string> kvp in complementaryPstnServiceMismatchBetweenProvisionedServiceRequestServiceAndServiceServiceIdAccessIdList)
  469:             {
  470:                 service = Ia.Ftn.Cl.Models.Business.Service.ServiceIdToService(kvp.Key);
  471:  
  472:                 if (serviceToSiteNameDictionary.ContainsKey(service))
  473:                 {
  474:                     siteName = serviceToSiteNameDictionary[service].Name;
  475:  
  476:                     pstnSWithSiteMismatchedWithSrsDictionary.Add(service, siteName);
  477:                 }
  478:                 else pstnSWithSiteMismatchedWithSrsDictionary.Add(service, string.Empty);
  479:             }
  480:         }
  481:  
  482:         ////////////////////////////////////////////////////////////////////////////
  483:         ////////////////////////////////////////////////////////////////////////////
  484:     }
  485:  
  486:     ////////////////////////////////////////////////////////////////////////////
  487:     ////////////////////////////////////////////////////////////////////////////
  488: }