)>}]
شركة التطبيقات المتكاملة لتصميم وبرمجة البرمجيات الخاصة ش.ش.و.
Integrated Applications Programming Company
Home » Code Library » List (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.Reflection;
    2: using System.Text;
    3: using System.Text.RegularExpressions;
    4:  
    5: namespace Ia.Ftn.Wa.Models.Maintenance
    6: {
    7:     ////////////////////////////////////////////////////////////////////////////
    8:  
    9:     /// <summary publish="true">
   10:     ///
   11:     /// </summary>
   12:     /// 
   13:     /// <remarks> 
   14:     /// Copyright © 2006-2025 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
   15:     /// </remarks> 
   16:     public static class List
   17:     {
   18:         ////////////////////////////////////////////////////////////////////////////
   19:  
   20:         /// <summary>
   21:         ///
   22:         /// </summary>
   23:         public static void ViewModel(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
   24:         {
   25:         }
   26:  
   27:         ////////////////////////////////////////////////////////////////////////////
   28:  
   29:         /// <summary>
   30:         ///
   31:         /// </summary>
   32:         public static void Post(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel, string commandName)
   33:         {
   34:             //https://www.codeproject.com/articles/19911/dynamically-invoke-a-method-given-strings-with-met
   35:  
   36:             MethodInfo methodInfo = typeof(Ia.Ftn.Wa.Models.Maintenance.List).GetMethod(commandName);
   37:  
   38:             methodInfo.Invoke(null, new object[] { listViewModel });
   39:         }
   40:  
   41:         ////////////////////////////////////////////////////////////////////////////
   42:  
   43:         /// <summary>
   44:         ///
   45:         /// </summary>
   46:         public static void ReadNetworkDesignDocumentAccessNameListWithOntEquipmentIdNotNullAndAccessIsNullIncludeOntServiceVoipsButton(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
   47:         {
   48:             string u;
   49:             StringBuilder stringBuilder;
   50:             List<string> list;
   51:  
   52:             list = Ia.Ftn.Cl.Models.Data.Nokia.Ont.ReadNetworkDesignDocumentAccessNameListWithOntEquipmentIdNotNullAndAccessIsNullIncludeOntServiceVoips;
   53:  
   54:             if (list.Count > 0)
   55:             {
   56:                 stringBuilder = new StringBuilder(list.Count);
   57:  
   58:                 foreach (string s in list)
   59:                 {
   60:                     u = @"<a href=""find.aspx?input=" + s + @""">" + s + "</a>";
   61:                     stringBuilder.Append(u + " ");
   62:                 }
   63:  
   64:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
   65:  
   66:                 listViewModel.CountLabel = "List count: " + list.Count;
   67:             }
   68:             else listViewModel.CountLabel = "List count is zero.";
   69:         }
   70:  
   71:         ////////////////////////////////////////////////////////////////////////////
   72:  
   73:         /// <summary>
   74:         ///
   75:         /// </summary>
   76:         public static void NumberOfAgcfGatewayRecordInGroupOfMgcIpButton(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
   77:         {
   78:             StringBuilder stringBuilder;
   79:             SortedDictionary<string, int> sortedDictionary, pairSortedDictionary;
   80:  
   81:             sortedDictionary = new SortedDictionary<string, int>(Ia.Ftn.Cl.Models.Business.Nokia.Ims.NumberOfAgcfGatewayRecordInGroupOfMgcIpDictionary);
   82:             pairSortedDictionary = new SortedDictionary<string, int>();
   83:  
   84:             if (sortedDictionary.Count > 0)
   85:             {
   86:                 stringBuilder = new StringBuilder(sortedDictionary.Count * 64);
   87:  
   88:                 stringBuilder.AppendLine("List of the number of AGCF gateway records in groups of MGC IP:" + "<br />");
   89:                 stringBuilder.AppendLine("<br />");
   90:  
   91:                 foreach (KeyValuePair<string, int> kvp in sortedDictionary)
   92:                 {
   93:                     stringBuilder.AppendLine(kvp.Key + "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + kvp.Value + "<br />");
   94:                 }
   95:  
   96:                 stringBuilder.AppendLine("<br />");
   97:                 stringBuilder.AppendLine("Total number of AGCF gateway records: " + sortedDictionary.Sum(u => u.Value) + " ");
   98:  
   99:                 stringBuilder.AppendLine("<br />");
  100:                 stringBuilder.AppendLine("<br />");
  101:  
  102:                 stringBuilder.AppendLine("List of the number of AGCF gateway records in IMS pairs of MGC IP:" + "<br />");
  103:                 stringBuilder.AppendLine("<br />");
  104:  
  105:                 foreach (Ia.Ftn.Cl.Models.Business.Nokia.Ims.ImsBasicService imsBasicService in Ia.Ftn.Cl.Models.Business.Nokia.Ims.ImsBasicServiceList)
  106:                 {
  107:                     stringBuilder.AppendLine(imsBasicService.MgcIp + " " + imsBasicService.MgcSecondaryIp + "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + (sortedDictionary[imsBasicService.MgcIp] + sortedDictionary[imsBasicService.MgcSecondaryIp]) + "<br />");
  108:                 }
  109:  
  110:                 listViewModel.ListLiteral = stringBuilder.ToString();
  111:  
  112:                 listViewModel.CountLabel = "Dictionary count: " + sortedDictionary.Count;
  113:             }
  114:             else listViewModel.CountLabel = "Dictionary count: zero. ";
  115:         }
  116:  
  117:         ////////////////////////////////////////////////////////////////////////////
  118:  
  119:         /// <summary>
  120:         ///
  121:         /// </summary>
  122:         public static void NetworkDesignDocumentOntWithAgcfGatewayRecordAndNonEmptyAgcfEndpointButNoAccessListButton(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  123:         {
  124:             string u;
  125:             StringBuilder stringBuilder;
  126:             List<Ia.Ftn.Cl.Models.Business.NetworkDesignDocument.Ont> list;
  127:  
  128:             list = Ia.Ftn.Cl.Models.Data.Nokia.Ims.NddOntWithAgcfGatewayRecordAndNotEmptyAgcfEndpointAndNullAccessList();
  129:  
  130:             if (list.Count > 0)
  131:             {
  132:                 stringBuilder = new StringBuilder(list.Count);
  133:  
  134:                 foreach (Ia.Ftn.Cl.Models.Business.NetworkDesignDocument.Ont nddOnt in list)
  135:                 {
  136:                     u = @"<a href=""find.aspx?input=" + nddOnt.Access.Name + @""">" + nddOnt.Access.Name + "</a>";
  137:                     stringBuilder.Append(u + " ");
  138:                 }
  139:  
  140:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
  141:  
  142:                 listViewModel.CountLabel = "List count: " + list.Count;
  143:             }
  144:             else listViewModel.CountLabel = "List count is zero.";
  145:         }
  146:  
  147:         ////////////////////////////////////////////////////////////////////////////
  148:  
  149:         /// <summary>
  150:         ///
  151:         /// </summary>
  152:         public static void NokiaAmsNewOntEvent(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  153:         {
  154:             string serialNumber;
  155:             Match match;
  156:  
  157:             var count = 0;
  158:             var serialNumberList = new List<string>();
  159:             var stringBuilder = new StringBuilder();
  160:  
  161:             var list = Ia.Ftn.Cl.Models.Data.Event.NewOntList;
  162:  
  163:             var s = "System\tAid\tEventTime\tSerial<br/>";
  164:             stringBuilder.AppendLine(s);
  165:  
  166:             foreach (var l in list)
  167:             {
  168:                 match = Regex.Match(l.Detail, "(ALCL.{8})");
  169:  
  170:                 serialNumber = (match.Success) ? match.Value : string.Empty;
  171:  
  172:                 if (!serialNumberList.Contains(serialNumber))
  173:                 {
  174:                     serialNumberList.Add(serialNumber);
  175:  
  176:                     s = l.System + "\t" + l.Aid + "\t" + l.EventTime.ToString("yyyy-MM-dd") + "\t" + serialNumber + "<br/>";
  177:  
  178:                     stringBuilder.AppendLine(s);
  179:                     count++;
  180:                 }
  181:             }
  182:  
  183:             listViewModel.ListLiteral = stringBuilder.ToString().Trim();
  184:  
  185:             listViewModel.CountLabel = "List count: " + count;
  186:         }
  187:  
  188:         ////////////////////////////////////////////////////////////////////////////
  189:  
  190:         /// <summary>
  191:         ///
  192:         /// </summary>
  193:         public static void IpWithinAgcfGatewayRecordsThatDoNotBelongToNetworkDesignDocumentListButton(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  194:         {
  195:             string u;
  196:             StringBuilder stringBuilder;
  197:             List<string> list;
  198:  
  199:             list = Ia.Ftn.Cl.Models.Data.Nokia.AgcfGatewayRecord.IpWithinAgcfGatewayRecordsThatDoNotBelongToNetworkDesignDocumentList();
  200:  
  201:             if (list.Count > 0)
  202:             {
  203:                 stringBuilder = new StringBuilder(list.Count * 64);
  204:  
  205:                 foreach (string s in list)
  206:                 {
  207:                     u = @"<a href=""find.aspx?input=" + s + @""">" + s + "</a>";
  208:                     stringBuilder.Append(u + " ");
  209:                 }
  210:  
  211:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
  212:  
  213:                 listViewModel.CountLabel = "List count: " + list.Count;
  214:             }
  215:             else listViewModel.CountLabel = "List count is zero.";
  216:         }
  217:  
  218:         ////////////////////////////////////////////////////////////////////////////
  219:  
  220:         /// <summary>
  221:         ///
  222:         /// </summary>
  223:         public static void NumberOfNokiaH248SubsribersPerFsdbListButton(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  224:         {
  225:             string s;
  226:             List<string> list;
  227:  
  228:             list = Ia.Ftn.Cl.Models.Business.Nokia.Ims.NumberOfNokiaH248SubsribersPerFsdb();
  229:  
  230:             if (list.Count > 0)
  231:             {
  232:                 list.Sort();
  233:  
  234:                 //stringBuilder = new StringBuilder(list.Count * 64);
  235:  
  236:                 s = string.Join("<br />", list.ToArray());
  237:  
  238:                 listViewModel.ListLiteral = s;
  239:  
  240:                 listViewModel.CountLabel = "List count: " + list.Count;
  241:             }
  242:             else listViewModel.CountLabel = "List count is zero.";
  243:         }
  244:  
  245:         ////////////////////////////////////////////////////////////////////////////
  246:  
  247:         /// <summary>
  248:         ///
  249:         /// </summary>
  250:         public static void NumberOfNokiaSipSubsribersPerFsdbListButton(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  251:         {
  252:             string s;
  253:             List<string> list;
  254:  
  255:             list = Ia.Ftn.Cl.Models.Business.Nokia.Ims.NumberOfNokiaSipSubsribersPerFsdb();
  256:  
  257:             if (list.Count > 0)
  258:             {
  259:                 list.Sort();
  260:  
  261:                 //stringBuilder = new StringBuilder(list.Count * 64);
  262:  
  263:                 s = string.Join("<br />", list.ToArray());
  264:  
  265:                 listViewModel.ListLiteral = s;
  266:  
  267:                 listViewModel.CountLabel = "List count: " + list.Count;
  268:             }
  269:             else listViewModel.CountLabel = "List count is zero.";
  270:         }
  271:  
  272:         ////////////////////////////////////////////////////////////////////////////
  273:  
  274:         /// <summary>
  275:         ///
  276:         /// </summary>
  277:         public static void ServiceWhereSubscriberAlternateOtasRealmGroupNumberDoesNotEqualSubPartyAssocOtasRealmGroupNumberListButton(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  278:         {
  279:             string s;
  280:             List<string> list;
  281:             //List<string> serviceList;
  282:  
  283:             list = new List<string>();
  284:  
  285:             var partyIdList = Ia.Ftn.Cl.Models.Data.Nokia.Ims.ServiceWhereSubscriberAlternateOtasRealmGroupNumberDoesNotEqualSubPartyAssocOtasRealmGroupNumberList();
  286:  
  287:             if (partyIdList.Count > 0)
  288:             {
  289:                 //stringBuilder = new StringBuilder(serviceAccessFlatTermIdList.Count * 64);
  290:  
  291:                 foreach (var t in partyIdList) list.Add(t);
  292:  
  293:                 s = string.Join("<br />", list.ToArray());
  294:  
  295:                 listViewModel.ListLiteral = s;
  296:  
  297:                 listViewModel.CountLabel = "List count: " + list.Count;
  298:             }
  299:             else listViewModel.CountLabel = "List count is zero.";
  300:         }
  301:  
  302:         ////////////////////////////////////////////////////////////////////////////
  303:  
  304:         /// <summary>
  305:         ///
  306:         /// </summary>
  307:         public static void AgcfGatewayRecordsWithinNddOntListWithWrongSecondaryIpListButton(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  308:         {
  309:             string s;
  310:             List<string> list;
  311:  
  312:             list = new List<string>();
  313:  
  314:             var v = Ia.Ftn.Cl.Models.Data.Nokia.Ims.AgcfGatewayRecordsWithinNddOntListWithWrongSecondaryIpList();
  315:  
  316:             if (v.Count > 0)
  317:             {
  318:                 //stringBuilder = new StringBuilder(v.Count * 64);
  319:  
  320:                 foreach (var w in v) list.Add(w.GwId.ToString());
  321:  
  322:                 s = string.Join(" ", list.ToArray());
  323:  
  324:                 listViewModel.ListLiteral = s;
  325:  
  326:                 listViewModel.CountLabel = "List count: " + list.Count;
  327:             }
  328:             else listViewModel.CountLabel = "List count is zero.";
  329:         }
  330:  
  331:         ////////////////////////////////////////////////////////////////////////////
  332:  
  333:         /// <summary>
  334:         ///
  335:         /// </summary>
  336:         public static void DistributionOfHuaweiOntOverNokiaPrimarySwitchButton(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  337:         {
  338:             listViewModel.ListLiteral = Ia.Ftn.Cl.Models.Data.Ims.DistributionOfHuaweiOntOverNokiaPrimarySwitchList();
  339:  
  340:             listViewModel.CountLabel = string.Empty;
  341:         }
  342:  
  343:         ////////////////////////////////////////////////////////////////////////////
  344:  
  345:         /// <summary>
  346:         ///
  347:         /// </summary>
  348:         public static void ServiceProvisionedManuallyWithNonStandardHenceNotFunctionalPartyIdNames(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  349:         {
  350:             List<string> list;
  351:  
  352:             list = Ia.Ftn.Cl.Models.Data.Nokia.Ims.ServiceProvisionedManuallyWithNonStandardHenceNotFunctionalPartyIdNames;
  353:  
  354:             if (list.Count > 0)
  355:             {
  356:                 //stringBuilder = new StringBuilder(list.Count * 64);
  357:  
  358:                 listViewModel.ListLiteral = string.Join(" ", list.ToArray());
  359:  
  360:                 listViewModel.CountLabel = "List count: " + list.Count;
  361:             }
  362:             else listViewModel.CountLabel = "List count is zero.";
  363:         }
  364:  
  365:         ////////////////////////////////////////////////////////////////////////////
  366:  
  367:         /// <summary>
  368:         ///
  369:         /// </summary>
  370:         public static void AgcfGatewayRecordWithNoNddNokiaSwitchOntInNonSipOltAndNullOrEmptyAgcfEndpointList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  371:         {
  372:             StringBuilder stringBuilder;
  373:             List<int> list;
  374:  
  375:             list = Ia.Ftn.Cl.Models.Data.Nokia.Ims.AgcfGatewayRecordWithNoNddNokiaSwitchOntInNonSipOltAndNullOrEmptyAgcfEndpointList().Select(u => u.GwId).ToList();
  376:  
  377:             if (list.Count > 0)
  378:             {
  379:                 stringBuilder = new StringBuilder(list.Count * 64);
  380:  
  381:                 listViewModel.ListLiteral = string.Join(" ", list.ToArray());
  382:  
  383:                 listViewModel.CountLabel = "List count: " + list.Count;
  384:             }
  385:             else listViewModel.CountLabel = "List count is zero.";
  386:         }
  387:  
  388:         ////////////////////////////////////////////////////////////////////////////
  389:  
  390:         /// <summary>
  391:         ///
  392:         /// </summary>
  393:         public static void NddNokiaSwitchOntInNonSipOltWithAccessButNoAgcfGatewayRecordList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  394:         {
  395:             string s;
  396:             StringBuilder stringBuilder;
  397:             List<string> list;
  398:  
  399:             list = Ia.Ftn.Cl.Models.Data.Nokia.Ims.NddNokiaSwitchOntInNonSipOltWithAccessButNoAgcfGatewayRecordList().Select(u => u.Access.Name).ToList();
  400:  
  401:             if (list.Count > 0)
  402:             {
  403:                 stringBuilder = new StringBuilder(list.Count * 64);
  404:  
  405:                 foreach (var u in list)
  406:                 {
  407:                     s = @"<a href=""find.aspx?input=" + u + @""">" + u + "</a>";
  408:                     stringBuilder.Append(s + " ");
  409:                 }
  410:  
  411:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
  412:  
  413:                 listViewModel.CountLabel = "List count: " + list.Count;
  414:             }
  415:             else listViewModel.CountLabel = "List count is zero.";
  416:         }
  417:  
  418:         ////////////////////////////////////////////////////////////////////////////
  419:  
  420:         /// <summary>
  421:         ///
  422:         /// </summary>
  423:         public static void HuaweiAccessesWithNoEmsOntList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  424:         {
  425:             string s;
  426:             StringBuilder stringBuilder;
  427:             List<Ia.Ftn.Cl.Models.Access> list;
  428:  
  429:             list = Ia.Ftn.Cl.Models.Data.Access.HuaweiAccessesWithNoEmsOntList;
  430:  
  431:             if (list.Count > 0)
  432:             {
  433:                 stringBuilder = new StringBuilder(list.Count * 64);
  434:  
  435:                 foreach (var o in list)
  436:                 {
  437:                     s = @"<a href=""find.aspx?input=" + o.Name + @""">" + o.Name + "</a>";
  438:                     stringBuilder.Append(s + " ");
  439:                 }
  440:  
  441:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
  442:  
  443:                 listViewModel.CountLabel = "List count: " + list.Count;
  444:             }
  445:             else listViewModel.CountLabel = "List count is zero.";
  446:         }
  447:  
  448:         ////////////////////////////////////////////////////////////////////////////
  449:  
  450:         /// <summary>
  451:         ///
  452:         /// </summary>
  453:         public static void HuaweiAccessList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  454:         {
  455:             string s, accessName, areaSymbol;
  456:             StringBuilder stringBuilder;
  457:             List<Ia.Ftn.Cl.Models.Access> list;
  458:  
  459:             list = Ia.Ftn.Cl.Models.Data.Access.HuaweiAccessList;
  460:  
  461:             var areaIdToSymbolDictionary = Ia.Ftn.Cl.Models.Data.Service.AreaIdToSymbolDictionary;
  462:  
  463:             if (list.Count > 0)
  464:             {
  465:                 stringBuilder = new StringBuilder(list.Count * 64);
  466:  
  467:                 s = "Access name\tAreaSymbol\tBlock\tStreet\tPremisesOld\tPremisesNew\tPaci\tNote\tCreated\tUpdated";
  468:                 stringBuilder.AppendLine(s + "<br/>");
  469:                 stringBuilder.AppendLine(" ");
  470:  
  471:                 foreach (var o in list)
  472:                 {
  473:                     areaSymbol = areaIdToSymbolDictionary[o.AreaId];
  474:                     accessName = areaSymbol + "." + o.Pon + "." + o.Ont;
  475:                     s = @"<a href=""find.aspx?input=" + accessName + @""">" + accessName + "</a>" + "\t" + areaSymbol + "\t" + o.Block + "\t" + o.Street + "\t" + o.PremisesOld + "\t" + o.PremisesNew + "\t" + o.Paci + "\t" + o.Note + "\t" + o.Created.ToString("yyyy-MM-dd") + "\t" + o.Updated.ToString("yyyy-MM-dd");
  476:                     stringBuilder.AppendLine(s + "<br/>");
  477:                 }
  478:  
  479:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
  480:  
  481:                 listViewModel.CountLabel = "List count: " + list.Count;
  482:             }
  483:             else listViewModel.CountLabel = "List count is zero.";
  484:         }
  485:  
  486:         ////////////////////////////////////////////////////////////////////////////
  487:  
  488:         /// <summary>
  489:         ///
  490:         /// </summary>
  491:         public static void NokiaAccessList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  492:         {
  493:             string s, accessName, areaSymbol;
  494:             StringBuilder stringBuilder;
  495:             List<Ia.Ftn.Cl.Models.Access> list;
  496:  
  497:             list = Ia.Ftn.Cl.Models.Data.Access.HuaweiAccessList;
  498:  
  499:             var areaIdToSymbolDictionary = Ia.Ftn.Cl.Models.Data.Service.AreaIdToSymbolDictionary;
  500:  
  501:             if (list.Count > 0)
  502:             {
  503:                 stringBuilder = new StringBuilder(list.Count * 64);
  504:  
  505:                 s = "Access name\tAreaSymbol\tBlock\tStreet\tPremisesOld\tPremisesNew\tPaci\tNote\tCreated\tUpdated";
  506:                 stringBuilder.AppendLine(s + "<br/>");
  507:                 stringBuilder.AppendLine(" ");
  508:  
  509:                 foreach (var o in list)
  510:                 {
  511:                     areaSymbol = areaIdToSymbolDictionary[o.AreaId];
  512:                     accessName = areaSymbol + "." + o.Pon + "." + o.Ont;
  513:                     s = @"<a href=""find.aspx?input=" + accessName + @""">" + accessName + "</a>" + "\t" + areaSymbol + "\t" + o.Block + "\t" + o.Street + "\t" + o.PremisesOld + "\t" + o.PremisesNew + "\t" + o.Paci + "\t" + o.Note + "\t" + o.Created.ToString("yyyy-MM-dd") + "\t" + o.Updated.ToString("yyyy-MM-dd");
  514:                     stringBuilder.AppendLine(s + "<br/>");
  515:                 }
  516:  
  517:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
  518:  
  519:                 listViewModel.CountLabel = "List count: " + list.Count;
  520:             }
  521:             else listViewModel.CountLabel = "List count is zero.";
  522:         }
  523:  
  524:         ////////////////////////////////////////////////////////////////////////////
  525:  
  526:         /// <summary>
  527:         ///
  528:         /// </summary>
  529:         public static void SubPartiesPrimaryPuidCpeProfileNumberCountDistribution(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  530:         {
  531:             int primaryPuidCpeProfileNumber, count;
  532:             string s;
  533:             StringBuilder stringBuilder;
  534:             Dictionary<int, int> dictionary;
  535:  
  536:             stringBuilder = new StringBuilder();
  537:  
  538:             dictionary = Ia.Ftn.Cl.Models.Data.Nokia.SubParty.PrimaryPuidCpeProfileNumberCountDistributionDictionary;
  539:  
  540:             if (dictionary.Count > 0)
  541:             {
  542:                 s = "PrimaryPUIDCPEProfileNumber\tCount";
  543:  
  544:                 stringBuilder.AppendLine(s);
  545:                 stringBuilder.AppendLine(" ");
  546:  
  547:                 foreach (KeyValuePair<int, int> kvp in dictionary)
  548:                 {
  549:                     primaryPuidCpeProfileNumber = kvp.Key;
  550:                     count = kvp.Value;
  551:  
  552:                     s = primaryPuidCpeProfileNumber + "\t\t\t\t" + count;
  553:  
  554:                     stringBuilder.AppendLine(s + "<br/>");
  555:                 }
  556:  
  557:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
  558:  
  559:                 listViewModel.CountLabel = string.Empty;
  560:             }
  561:             else listViewModel.CountLabel = string.Empty;
  562:         }
  563:  
  564:         ////////////////////////////////////////////////////////////////////////////
  565:  
  566:         /// <summary>
  567:         ///
  568:         /// </summary>
  569:         public static void SubPartiesSipNumberInGroupOfPrimaryExchange(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  570:         {
  571:             int tecCount, skbCount, otherCount;
  572:             string displayName, assocOtasRealm;
  573:             StringBuilder stringBuilder, tecStringBuilder, skbStringBuilder, otherStringBuilder;
  574:             Dictionary<string, string> dictionary;
  575:  
  576:             tecCount = skbCount = otherCount = 0;
  577:  
  578:             stringBuilder = new StringBuilder();
  579:             skbStringBuilder = new StringBuilder();
  580:             tecStringBuilder = new StringBuilder();
  581:             otherStringBuilder = new StringBuilder();
  582:  
  583:             dictionary = Ia.Ftn.Cl.Models.Data.Nokia.SubParty.SipNumberWithAssocOtasRealmList;
  584:  
  585:             if (dictionary.Count > 0)
  586:             {
  587:                 tecStringBuilder.AppendLine("TEC switch: "); // see below
  588:                 skbStringBuilder.AppendLine("SKB switch: "); // see below
  589:                 otherStringBuilder.AppendLine("Other switch: "); // see below
  590:  
  591:                 foreach (KeyValuePair<string, string> kvp in dictionary)
  592:                 {
  593:                     displayName = kvp.Key;
  594:                     assocOtasRealm = kvp.Value;
  595:  
  596:                     if (assocOtasRealm.Contains("tecics01"))
  597:                     {
  598:                         tecCount++;
  599:                         tecStringBuilder.Append(displayName + ", ");
  600:                     }
  601:                     else if (assocOtasRealm.Contains("skbics01"))
  602:                     {
  603:                         skbCount++;
  604:                         skbStringBuilder.Append(displayName + ", ");
  605:                     }
  606:                     else
  607:                     {
  608:                         otherCount++;
  609:                         otherStringBuilder.Append(displayName + ", ");
  610:                     }
  611:                 }
  612:  
  613:                 tecStringBuilder.Replace("TEC switch: ", "TEC switch (" + tecCount + "): ");
  614:                 skbStringBuilder.Replace("SKB switch: ", "SKB switch (" + skbCount + "): ");
  615:                 otherStringBuilder.Replace("Other switch: ", "Other switch (" + otherCount + "): ");
  616:  
  617:                 stringBuilder.AppendLine("<p>");
  618:                 stringBuilder.Append(tecStringBuilder.ToString().Trim());
  619:                 stringBuilder.AppendLine("</p>");
  620:  
  621:                 stringBuilder.AppendLine("<p>");
  622:                 stringBuilder.Append(skbStringBuilder.ToString().Trim());
  623:                 stringBuilder.AppendLine("</p>");
  624:  
  625:                 stringBuilder.AppendLine("<p>");
  626:                 stringBuilder.Append(otherStringBuilder.ToString().Trim());
  627:                 stringBuilder.AppendLine("</p>");
  628:  
  629:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
  630:  
  631:                 listViewModel.CountLabel = string.Empty;
  632:             }
  633:             else listViewModel.CountLabel = string.Empty;
  634:         }
  635:  
  636:         ////////////////////////////////////////////////////////////////////////////
  637:  
  638:         /// <summary>
  639:         ///
  640:         /// </summary>
  641:         public static void DistributionOfOntTypesOfProvisionedAndReadyForServiceNokiaAndHuaweiOnts(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  642:         {
  643:             int familyTypeId, count;
  644:             string s, equipmentId;
  645:             StringBuilder stringBuilder;
  646:             Dictionary<int, int> ontDictionary;
  647:             Dictionary<string, int> emsOntDictionary;
  648:  
  649:             stringBuilder = new StringBuilder();
  650:  
  651:             ontDictionary = Ia.Ftn.Cl.Models.Data.Nokia.Ont.DistributionOfFamilyTypeIdInOntWhereSerialIsAssignedAndAccessIsNotNullDictionary;
  652:             emsOntDictionary = Ia.Ftn.Cl.Models.Data.Huawei.Ont.DistributionOfEquipmentIdInEmsOntWhereAccessIsNotNullDictionary;
  653:  
  654:             listViewModel.CountLabel = string.Empty;
  655:  
  656:             if (ontDictionary.Count > 0)
  657:             {
  658:                 stringBuilder.AppendLine("Nokia:<br/>");
  659:                 stringBuilder.AppendLine("FamilyType\tCount<br/>");
  660:                 stringBuilder.AppendLine("&nbsp;<br/>");
  661:  
  662:                 foreach (KeyValuePair<int, int> kvp in ontDictionary)
  663:                 {
  664:                     familyTypeId = kvp.Key;
  665:                     count = kvp.Value;
  666:  
  667:                     s = Ia.Ftn.Cl.Models.Business.Nokia.Ont.FamilyTypeStringFromFamilyTypeId(familyTypeId) + "\t\t" + count + "<br/>";
  668:  
  669:                     stringBuilder.AppendLine(s);
  670:                 }
  671:  
  672:                 stringBuilder.AppendLine("&nbsp;<br/>");
  673:                 stringBuilder.AppendLine("&nbsp;<br/>");
  674:             }
  675:  
  676:             if (emsOntDictionary.Count > 0)
  677:             {
  678:                 stringBuilder.AppendLine("Huawei:<br/>");
  679:                 stringBuilder.AppendLine("EquipmentId\tCount<br/>");
  680:                 stringBuilder.AppendLine("&nbsp;<br/>");
  681:  
  682:                 foreach (KeyValuePair<string, int> kvp in emsOntDictionary)
  683:                 {
  684:                     equipmentId = kvp.Key;
  685:                     count = kvp.Value;
  686:  
  687:                     s = equipmentId + "\t" + count + "<br/>";
  688:  
  689:                     stringBuilder.AppendLine(s);
  690:                 }
  691:             }
  692:  
  693:             listViewModel.ListLiteral = stringBuilder.ToString().Trim();
  694:         }
  695:  
  696:         ////////////////////////////////////////////////////////////////////////////
  697:  
  698:         /// <summary>
  699:         ///
  700:         /// </summary>
  701:         public static void ServiceInAllowedToBeMigratedOltList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  702:         {
  703:             string s;
  704:             StringBuilder stringBuilder;
  705:  
  706:             var dictionary = Ia.Ftn.Cl.Models.Data.Service.ImsServiceToOntRouterVendorInAllowedToBeMigratedOltDictionary;
  707:  
  708:             if (dictionary.Count > 0)
  709:             {
  710:                 stringBuilder = new StringBuilder(dictionary.Count * 64);
  711:  
  712:                 stringBuilder.AppendLine("Services: ");
  713:  
  714:                 foreach (KeyValuePair<string, Ia.Ftn.Cl.Models.Business.NetworkDesignDocument.Vendor> kvp in dictionary)
  715:                 {
  716:                     s = @"<a href=""find.aspx?input=" + kvp.Key + @""">" + kvp.Key + "</a>";
  717:                     stringBuilder.Append(s + " ");
  718:                 }
  719:  
  720:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
  721:  
  722:                 listViewModel.CountLabel = "List count: " + dictionary.Count;
  723:             }
  724:             else listViewModel.CountLabel = "List count is zero.";
  725:         }
  726:  
  727:         ////////////////////////////////////////////////////////////////////////////
  728:  
  729:         /// <summary>
  730:         ///
  731:         /// </summary>
  732:         public static void HuaweiRedundantDevList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  733:         {
  734:             int did;
  735:             string s, dev, accessName;
  736:             StringBuilder stringBuilder;
  737:             List<Ia.Ftn.Cl.Models.Huawei.EmsDev> list;
  738:  
  739:             list = Ia.Ftn.Cl.Models.Data.Huawei.Dev.RedundantDevList();
  740:  
  741:             if (list.Count > 0)
  742:             {
  743:                 stringBuilder = new StringBuilder(list.Count * 64);
  744:  
  745:                 s = "DID\tDEV\tAccess name";
  746:                 stringBuilder.AppendLine(s);
  747:                 stringBuilder.AppendLine(" ");
  748:  
  749:                 foreach (var d in list)
  750:                 {
  751:                     did = d.DID;
  752:                     dev = d.DEV;
  753:                     accessName = (d.Access != null) ? d.Access.Name : string.Empty;
  754:  
  755:                     s = did + "\t" + dev + "\t" + @"<a href=""find.aspx?input=" + accessName + @""">" + accessName + "</a>";
  756:  
  757:                     stringBuilder.AppendLine(s);
  758:                 }
  759:  
  760:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
  761:  
  762:                 listViewModel.CountLabel = "List count: " + list.Count;
  763:             }
  764:             else listViewModel.CountLabel = "List count is zero.";
  765:         }
  766:  
  767:         ////////////////////////////////////////////////////////////////////////////
  768:         ////////////////////////////////////////////////////////////////////////////
  769:  
  770:         /// <summary>
  771:         ///
  772:         /// </summary>
  773:         public static void ListOfAccessNameAndOntPositionAndVaprofAndFamilyTypeAndSipInfoTelAndVoipPstnUserPnAndVagProtocolTypeAndAgcfGatewayRecordIpAndServiceAndPortAndPrimaryPuidcpeProfileNumberForSdqAndAdsAndSaaAndLab(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  774:         {
  775:             StringBuilder stringBuilder;
  776:             List<string> oltSymbolList;
  777:  
  778:             oltSymbolList = new List<string> { "SDQ", "SAA", "ADS", "LAB" };
  779:  
  780:             var list = Ia.Ftn.Cl.Models.Data.Default.AccessIdNddOntEmsOntiIdDevFnSnPnVaprofEquipmentIdFamilTypeSipInfoTelVoipPstnUserPnVagProtocolTypeServicePortAgcfGatewayRecordIpSubpartyPuidceProfileNumberForOltSymbolListList(oltSymbolList);
  781:  
  782:             if (list.Count > 0)
  783:             {
  784:                 stringBuilder = new StringBuilder(list.Count * 200);
  785:  
  786:                 stringBuilder.AppendLine("Access name" + "\t" + "ONT Position" + "\t" + "VAPROF" + "\t" + "FamilyType" + "\t" + "SipInfoTel" + "\t" + "VoipPstnUserPn" + "\t" + "VagProtocolType" + "\t" + "AgcfGatewayRecordIp" + "\t" + "Service" + "\t" + "Port" + "\t" + "PrimaryPuidcpeProfileNumber");
  787:  
  788:                 stringBuilder.AppendLine(" ");
  789:  
  790:                 foreach (var u in list.OrderBy(uu => uu.AccessId))
  791:                 {
  792:                     stringBuilder.AppendLine(u.Ont.Access.Name + "\t" + u.DevFnSnPnOntId + "\t" + u.Vaprof + "\t" + u.EmsOntFamilyType.ToString() + "\t" + u.EmsOntSipInfoTel + "\t" + u.EmsVoipPstnUserPn + "\t" + u.EmsVagProtocolType + "\t" + u.AgcfGatewayRecordIp + "\t" + u.Service + "\t" + u.Port + "\t" + u.PrimaryPuidcpeProfileNumber);
  793:                 }
  794:  
  795:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
  796:  
  797:                 listViewModel.CountLabel = "List count: " + list.Count;
  798:             }
  799:             else listViewModel.CountLabel = "List count is zero.";
  800:         }
  801:  
  802:         /*
  803:         ////////////////////////////////////////////////////////////////////////////
  804: 
  805:         /// <summary>
  806:         ///
  807:         /// </summary>
  808:         public static void ListOfAccessNameAndOntPositionAndVaprofForSdqAndAdsAndSaaAndLab(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  809:         {
  810:             StringBuilder stringBuilder;
  811:             List<string> oltSymbolList;
  812: 
  813:             oltSymbolList = new List<string> { "SDQ", "SAA", "ADS", "LAB" };
  814: 
  815:             var list = Ia.Ftn.Cl.Models.Data.Default.AccessIdNddOntDevFnSnPnOntIdVaprofForOltSymbolListList(oltSymbolList);
  816: 
  817:             if (list.Count > 0)
  818:             {
  819:                 stringBuilder = new StringBuilder(list.Count * 200);
  820: 
  821:                 stringBuilder = new StringBuilder();
  822: 
  823:                 stringBuilder.AppendLine("Access name" + "\t" + "ONT Position" + "\t" + "VAPROF");
  824: 
  825:                 stringBuilder.AppendLine(" ");
  826: 
  827:                 foreach (var u in list.OrderBy(uu => uu.AccessId))
  828:                 {
  829:                     stringBuilder.AppendLine(u.Ont.Access.Name + "\t" + u.DevFnSnPnOntId + "\t" + u.Vaprof);
  830:                 }
  831: 
  832:                 scriptLiteral.Text = stringBuilder.ToString().Trim();
  833: 
  834:                 listViewModel.CountLabel = "List count: " + list.Count;
  835:             }
  836:             else listViewModel.CountLabel = "List count is zero.";
  837:         }
  838: 
  839:         ////////////////////////////////////////////////////////////////////////////
  840: 
  841:         /// <summary>
  842:         ///
  843:         /// </summary>
  844:         public static void ListOfServiceAndAccessNameWherePrimaryPuidcpeProfileNumberIsNot10ForSdqAndAdsAndSaaAndLab(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  845:         {
  846:             StringBuilder stringBuilder;
  847:             List<string> oltSymbolList;
  848: 
  849:             oltSymbolList = new List<string> { "SDQ", "SAA", "ADS", "LAB" };
  850: 
  851:             var list = Ia.Ftn.Cl.Models.Data.Default.ServiceAndAccessNameWherePrimaryPuidcpeProfileNumberIsNot10ForOltSymbolListList(oltSymbolList);
  852: 
  853:             if (list.Count > 0)
  854:             {
  855:                 stringBuilder = new StringBuilder(list.Count * 200);
  856: 
  857:                 stringBuilder = new StringBuilder();
  858: 
  859:                 stringBuilder.AppendLine("Service" + "\t" + "Access name");
  860: 
  861:                 stringBuilder.AppendLine(" ");
  862: 
  863:                 foreach (var u in list.OrderBy(uu => uu.Service))
  864:                 {
  865:                     stringBuilder.AppendLine(u.Service + "\t" + u.AccessName);
  866:                 }
  867: 
  868:                 scriptLiteral.Text = stringBuilder.ToString().Trim();
  869: 
  870:                 listViewModel.CountLabel = "List count: " + list.Count;
  871:             }
  872:             else listViewModel.CountLabel = "List count is zero.";
  873:         }
  874: 
  875:         ////////////////////////////////////////////////////////////////////////////
  876: 
  877:         /// <summary>
  878:         ///
  879:         /// </summary>
  880:         public static void ListOfAccessNameWhereVaprofIsNotAluSipBForSdqAndAdsAndSaaAndLab(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  881:         {
  882:             StringBuilder stringBuilder;
  883:             List<string> oltSymbolList;
  884: 
  885:             oltSymbolList = new List<string> { "SDQ", "SAA", "ADS", "LAB" };
  886: 
  887:             var list = Ia.Ftn.Cl.Models.Data.Default.AccessNameWhereVaprofIsNotAluSipBForOltSymbolListList(oltSymbolList);
  888: 
  889:             if (list.Count > 0)
  890:             {
  891:                 stringBuilder = new StringBuilder(list.Count * 200);
  892: 
  893:                 stringBuilder = new StringBuilder();
  894: 
  895:                 stringBuilder.AppendLine("Access name");
  896: 
  897:                 stringBuilder.AppendLine(" ");
  898: 
  899:                 foreach (var u in list.OrderBy(uu => uu))
  900:                 {
  901:                     stringBuilder.AppendLine(u);
  902:                 }
  903: 
  904:                 scriptLiteral.Text = stringBuilder.ToString().Trim();
  905: 
  906:                 listViewModel.CountLabel = "List count: " + list.Count;
  907:             }
  908:             else listViewModel.CountLabel = "List count is zero.";
  909:         }
  910: 
  911:         ////////////////////////////////////////////////////////////////////////////
  912: 
  913:         /// <summary>
  914:         ///
  915:         /// </summary>
  916:         public static void ListOfServiceAndAccessNameWherePrimaryPuidcpeProfileNumberIsNot10AndEmsOntVaprofIsAluSipBForSdqAndAdsAndSaaAndLab(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  917:         {
  918:             StringBuilder stringBuilder;
  919:             List<string> oltSymbolList;
  920: 
  921:             oltSymbolList = new List<string> { "SDQ", "SAA", "ADS", "LAB" };
  922: 
  923:             var list = Ia.Ftn.Cl.Models.Data.Default.ServiceAndAccessNameWherePrimaryPuidcpeProfileNumberIsNot10AndEmsOntVaprofIsAluSipBForOltSymbolListList(oltSymbolList);
  924: 
  925:             if (list.Count > 0)
  926:             {
  927:                 stringBuilder = new StringBuilder(list.Count * 200);
  928: 
  929:                 stringBuilder = new StringBuilder();
  930: 
  931:                 stringBuilder.AppendLine("Service" + "\t" + "Access name");
  932: 
  933:                 stringBuilder.AppendLine(" ");
  934: 
  935:                 foreach (var u in list.OrderBy(uu => uu.Service))
  936:                 {
  937:                     stringBuilder.AppendLine(u.Service + "\t" + u.AccessName);
  938:                 }
  939: 
  940:                 scriptLiteral.Text = stringBuilder.ToString().Trim();
  941: 
  942:                 listViewModel.CountLabel = "List count: " + list.Count;
  943:             }
  944:             else listViewModel.CountLabel = "List count is zero.";
  945:         }
  946: 
  947:         ////////////////////////////////////////////////////////////////////////////
  948:         */
  949:  
  950:         ////////////////////////////////////////////////////////////////////////////
  951:  
  952:         /// <summary>
  953:         ///
  954:         /// </summary>
  955:         public static void AxeSubscriberList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  956:         {
  957:             StringBuilder stringBuilder;
  958:  
  959:             var list = Ia.Ftn.Cl.Models.Data.Ericsson.Subscriber.ListWithoutContent();
  960:  
  961:             if (list.Count > 0)
  962:             {
  963:                 stringBuilder = new StringBuilder(list.Count * 200);
  964:  
  965:                 stringBuilder.AppendLine("SNB\tDEV\tDETY\tSUT\tSCL\tMIS\tCOS");
  966:  
  967:                 stringBuilder.AppendLine("<br/>");
  968:  
  969:                 foreach (var l in list)
  970:                 {
  971:                     stringBuilder.AppendLine(l.SNB + "\t" + l.DEV + "\t" + l.DETY + "\t" + l.SUT + "\t" + l.SCL + "\t" + l.MIS + "\t" + l.COS + "<br/>");
  972:                 }
  973:  
  974:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
  975:  
  976:                 listViewModel.CountLabel = "List count: " + list.Count;
  977:             }
  978:             else listViewModel.CountLabel = "List count is zero.";
  979:         }
  980:  
  981:         ////////////////////////////////////////////////////////////////////////////
  982:  
  983:         /// <summary>
  984:         ///
  985:         /// </summary>
  986:         public static void EwsdSubscriberList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
  987:         {
  988:             StringBuilder stringBuilder;
  989:  
  990:             var list = Ia.Ftn.Cl.Models.Data.Siemens.Subscriber.ListWithoutContent();
  991:  
  992:             if (list.Count > 0)
  993:             {
  994:                 stringBuilder = new StringBuilder(list.Count * 200);
  995:  
  996:                 stringBuilder.AppendLine("DN\tLAC\tEQN\tCAT\tLTT\tOPTRCL\tSUBTRCL\tNUMCAL\tORIG1\tTRARSTR\tLNATT\tDIV\tCOS\tADDINF\tNUMBCH\tCTDIVI\tBLK" + "<br/>");
  997:  
  998:                 /*
  999:                  */
 1000:                 stringBuilder.AppendLine(" " + "<br/>");
 1001:  
 1002:                 foreach (var l in list)
 1003:                 {
 1004:                     stringBuilder.AppendLine(l.DN + "\t" + l.LAC + "\t" + l.EQN + "\t" + l.CAT + "\t" + l.LTT + "\t" + l.OPTRCL + "\t" + l.SUBTRCL + "\t" + l.NUMCAL + "\t" + l.ORIG1 + "\t" + l.TRARSTR + "\t" + l.LNATT + "\t" + l.DIV + "\t" + l.COS + "\t" + l.ADDINF + "\t" + l.NUMBCH + "\t" + l.CTDIVI + "\t" + l.BLK + "<br/>");
 1005:                 }
 1006:  
 1007:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1008:  
 1009:                 listViewModel.CountLabel = "List count: " + list.Count;
 1010:             }
 1011:             else listViewModel.CountLabel = "List count is zero.";
 1012:         }
 1013:  
 1014:         ////////////////////////////////////////////////////////////////////////////
 1015:  
 1016:         /// <summary>
 1017:         ///
 1018:         /// </summary>
 1019:         public static void ServiceRequestDbBoxNameToServiceList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1020:         {
 1021:             string s;
 1022:             StringBuilder stringBuilder;
 1023:  
 1024:             var dictionary = Ia.Ftn.Cl.Models.Data.ServiceRequest.DbNameToServiceListDictionary;
 1025:  
 1026:             if (dictionary.Count > 0)
 1027:             {
 1028:                 stringBuilder = new StringBuilder(dictionary.Count * 64);
 1029:  
 1030:                 foreach (KeyValuePair<string, List<string>> kvp in dictionary)
 1031:                 {
 1032:                     s = kvp.Key + ": " + string.Join(",", kvp.Value);
 1033:                     //s = @"<a href=""find.aspx?input=" + kvp.Key + @""">" + kvp.Key + "</a>";
 1034:                     stringBuilder.AppendLine(s + "<br/>");
 1035:                 }
 1036:  
 1037:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1038:  
 1039:                 listViewModel.CountLabel = "List count: " + dictionary.Count;
 1040:             }
 1041:             else listViewModel.CountLabel = "List count is zero.";
 1042:         }
 1043:  
 1044:         ////////////////////////////////////////////////////////////////////////////
 1045:  
 1046:         /// <summary>
 1047:         ///
 1048:         /// </summary>
 1049:         public static void ServiceCountWithinAccessList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1050:         {
 1051:             string s;
 1052:             StringBuilder stringBuilder;
 1053:  
 1054:             var dictionary = Ia.Ftn.Cl.Models.Data.Service2.AccessNameToSeviceCountDictionary();
 1055:  
 1056:             if (dictionary.Count > 0)
 1057:             {
 1058:                 stringBuilder = new StringBuilder(dictionary.Count * 64);
 1059:  
 1060:                 foreach (KeyValuePair<string, int> kvp in dictionary.OrderBy(u => u.Key))
 1061:                 {
 1062:                     s = kvp.Key + ": " + string.Join(",", kvp.Value);
 1063:                     //s = @"<a href=""find.aspx?input=" + kvp.Key + @""">" + kvp.Key + "</a>";
 1064:                     stringBuilder.AppendLine(s);
 1065:                 }
 1066:  
 1067:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1068:  
 1069:                 listViewModel.CountLabel = "List count: " + dictionary.Count;
 1070:             }
 1071:             else listViewModel.CountLabel = "List count is zero.";
 1072:         }
 1073:  
 1074:         ////////////////////////////////////////////////////////////////////////////
 1075:  
 1076:         /// <summary>
 1077:         ///
 1078:         /// </summary>
 1079:         public static void ServiceWithinEmsOntSipInfoWhereEmsOntResultCodeOntIsOfflineOrDeviceOfflineErrorAndServiceWithinEmsVoipPstnUserWhereEmsDevResultCodeDeviceOfflineErrorList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1080:         {
 1081:             string s;
 1082:             StringBuilder stringBuilder;
 1083:  
 1084:             var emsOntIsOfflineList = Ia.Ftn.Cl.Models.Data.Huawei.OntSipInfo.ServiceWithinEmsOntSipInfoWhereEmsOntResultCodeOntIsOfflineOrDeviceOfflineErrorList();
 1085:             var emsDevDeviceOfflineError = Ia.Ftn.Cl.Models.Data.Huawei.VoipPstnUser.ServiceWithinEmsVoipPstnUserWhereEmsDevResultCodeDeviceOfflineError();
 1086:  
 1087:             var list = emsOntIsOfflineList.Union(emsDevDeviceOfflineError).ToList();
 1088:  
 1089:             if (list.Count > 0)
 1090:             {
 1091:                 stringBuilder = new StringBuilder(list.Count * 32);
 1092:  
 1093:                 foreach (var service in list)
 1094:                 {
 1095:                     s = @"<a href=""find.aspx?input=" + service + @""">" + service + "</a>";
 1096:                     stringBuilder.AppendLine(s);
 1097:                 }
 1098:  
 1099:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1100:  
 1101:                 listViewModel.CountLabel = "List count: " + list.Count;
 1102:             }
 1103:             else listViewModel.CountLabel = "List count is zero.";
 1104:         }
 1105:  
 1106:         ////////////////////////////////////////////////////////////////////////////
 1107:  
 1108:         /// <summary>
 1109:         ///
 1110:         /// </summary>
 1111:         public static void AccessNameWithinEmsOntSipInfoWhereEmsOntResultCodeOntIsOfflineOrDeviceOfflineErrorAndAccessNameWithinEmsVoipPstnUserWhereEmsDevResultCodeDeviceOfflineErrorList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1112:         {
 1113:             string s;
 1114:             StringBuilder stringBuilder;
 1115:  
 1116:             var emsOntIsOfflineList = Ia.Ftn.Cl.Models.Data.Huawei.OntSipInfo.AccessNameWithinEmsOntSipInfoWhereEmsOntResultCodeOntIsOfflineOrDeviceOfflineErrorList();
 1117:             var emsDevDeviceOfflineError = Ia.Ftn.Cl.Models.Data.Huawei.VoipPstnUser.AccessNameWithinEmsVoipPstnUserWhereEmsDevResultCodeDeviceOfflineError();
 1118:  
 1119:             var list = emsOntIsOfflineList.Union(emsDevDeviceOfflineError).ToList();
 1120:  
 1121:             if (list.Count > 0)
 1122:             {
 1123:                 stringBuilder = new StringBuilder(list.Count * 32);
 1124:  
 1125:                 foreach (var accessName in list)
 1126:                 {
 1127:                     s = @"<a href=""find.aspx?input=" + accessName + @""">" + accessName + "</a>";
 1128:                     stringBuilder.AppendLine(s);
 1129:                 }
 1130:  
 1131:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1132:  
 1133:                 listViewModel.CountLabel = "List count: " + list.Count;
 1134:             }
 1135:             else listViewModel.CountLabel = "List count is zero.";
 1136:         }
 1137:  
 1138:         ////////////////////////////////////////////////////////////////////////////
 1139:  
 1140:         /// <summary>
 1141:         ///
 1142:         /// </summary>
 1143:         public static void DuplicateEmsOntSipInfoSipUserNameAndEmsVoipPstnUserMduDnServiceWithCountryCodeOrMsanDnServiceImpuAidServiceList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1144:         {
 1145:             string s;
 1146:             StringBuilder stringBuilder;
 1147:  
 1148:             var list = Ia.Ftn.Cl.Models.Data.Huawei.Default.DuplicateEmsOntSipInfoSipUserNameAndEmsVoipPstnUserMduDnServiceWithCountryCodeOrMsanDnServiceImpuAidServiceList();
 1149:  
 1150:             if (list.Count > 0)
 1151:             {
 1152:                 stringBuilder = new StringBuilder(list.Count * 32);
 1153:  
 1154:                 foreach (var service in list)
 1155:                 {
 1156:                     s = @"<a href=""find.aspx?input=" + service + @""">" + service + "</a>";
 1157:                     stringBuilder.AppendLine(s);
 1158:                 }
 1159:  
 1160:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1161:  
 1162:                 listViewModel.CountLabel = "List count: " + list.Count;
 1163:             }
 1164:             else listViewModel.CountLabel = "List count is zero.";
 1165:         }
 1166:  
 1167:         ////////////////////////////////////////////////////////////////////////////
 1168:  
 1169:         /// <summary>
 1170:         ///
 1171:         /// </summary>
 1172:         public static void NumbersWithinEmsOntSipInfoAndEmsVoipPstnUserThatDoNotBelongToListOfAllPossibleNetworkNumbers(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1173:         {
 1174:             string s;
 1175:             StringBuilder stringBuilder;
 1176:  
 1177:             var list = Ia.Ftn.Cl.Models.Data.Service.NumbersWithinEmsOntSipInfoAndEmsVoipPstnUserThatDoNotBelongToListOfAllPossibleNetworkNumbers();
 1178:  
 1179:             if (list.Count > 0)
 1180:             {
 1181:                 stringBuilder = new StringBuilder(list.Count * 32);
 1182:  
 1183:                 foreach (var service in list)
 1184:                 {
 1185:                     s = @"<a href=""find.aspx?input=" + service + @""">" + service + "</a>";
 1186:                     stringBuilder.AppendLine(s);
 1187:                 }
 1188:  
 1189:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1190:  
 1191:                 listViewModel.CountLabel = "List count: " + list.Count;
 1192:             }
 1193:             else listViewModel.CountLabel = "List count is zero.";
 1194:         }
 1195:  
 1196:         ////////////////////////////////////////////////////////////////////////////
 1197:  
 1198:         /// <summary>
 1199:         ///
 1200:         /// </summary>
 1201:         public static void DistributionOfNokiaSwitchRouterNumbersWithinHuaweiAccessNetwork(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1202:         {
 1203:             string s;
 1204:             StringBuilder stringBuilder;
 1205:  
 1206:             var dictionary = Ia.Ftn.Cl.Models.Data.Default.RouterNameToServiceCountInNokiaRouterHuaweiAccessOltDictionary();
 1207:  
 1208:             if (dictionary.Count > 0)
 1209:             {
 1210:                 stringBuilder = new StringBuilder();
 1211:  
 1212:                 foreach (var kvp in dictionary)
 1213:                 {
 1214:                     s = kvp.Key + "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + kvp.Value + "<br/>";
 1215:  
 1216:                     stringBuilder.AppendLine(s);
 1217:                 }
 1218:  
 1219:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1220:  
 1221:                 listViewModel.CountLabel = "Service count: " + dictionary.Sum(u => u.Value);
 1222:             }
 1223:             else listViewModel.CountLabel = "Service count is zero.";
 1224:         }
 1225:  
 1226:         ////////////////////////////////////////////////////////////////////////////
 1227:  
 1228:         /// <summary>
 1229:         ///
 1230:         /// </summary>
 1231:         public static void MsanServicesThatHaveProvisionedImsServiceExceptWhereEmsOntSipInfoEmsOntIsOfflineAndExceptWhereEmsVoipPstnUserEmsDevHasDeviceOfflineErrorAndIgnoringNonSipNokiaOntList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1232:         {
 1233:             string s;
 1234:             StringBuilder stringBuilder;
 1235:  
 1236:             var list = Ia.Ftn.Cl.Models.Business.Provision.MsanServicesThatHaveProvisionedImsServiceExceptWhereEmsOntSipInfoEmsOntIsOfflineOrDeviceOfflineErrorAndExceptWhereEmsVoipPstnUserEmsDevHasDeviceOfflineErrorAndIgnoringNonSipNokiaOntList();
 1237:  
 1238:             list.Sort();
 1239:  
 1240:             if (list.Count > 0)
 1241:             {
 1242:                 stringBuilder = new StringBuilder(list.Count * 32);
 1243:  
 1244:                 foreach (var service in list)
 1245:                 {
 1246:                     s = @"<a href=""find.aspx?input=" + service + @""">" + service + "</a>";
 1247:                     stringBuilder.AppendLine(s);
 1248:                 }
 1249:  
 1250:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1251:  
 1252:                 listViewModel.CountLabel = "List count: " + list.Count;
 1253:             }
 1254:             else listViewModel.CountLabel = "List count is zero.";
 1255:         }
 1256:  
 1257:         ////////////////////////////////////////////////////////////////////////////
 1258:  
 1259:         /// <summary>
 1260:         ///
 1261:         /// </summary>
 1262:         public static void MsanServiceInVoipPstnUserThatHaveNoEquivalentInServiceList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1263:         {
 1264:             string s;
 1265:             StringBuilder stringBuilder;
 1266:  
 1267:             var list = Ia.Ftn.Cl.Models.Business.Provision.MsanServiceInVoipPstnUserThatHaveNoEquivalentInServiceList();
 1268:  
 1269:             list.Sort();
 1270:  
 1271:             if (list.Count > 0)
 1272:             {
 1273:                 stringBuilder = new StringBuilder(list.Count * 32);
 1274:  
 1275:                 foreach (var service in list)
 1276:                 {
 1277:                     s = @"<a href=""find.aspx?input=" + service + @""">" + service + "</a>";
 1278:                     stringBuilder.AppendLine(s);
 1279:                 }
 1280:  
 1281:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1282:  
 1283:                 listViewModel.CountLabel = "List count: " + list.Count;
 1284:             }
 1285:             else listViewModel.CountLabel = "List count is zero.";
 1286:         }
 1287:  
 1288:         ////////////////////////////////////////////////////////////////////////////
 1289:  
 1290:         /// <summary>
 1291:         ///
 1292:         /// </summary>
 1293:         public static void MsanServicesWithinNceThatDoNotBelongToMsanDomainListDefinedInTheNetworkDesignDocumentList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1294:         {
 1295:             string s;
 1296:             StringBuilder stringBuilder;
 1297:  
 1298:             var msanServiceList = Ia.Ftn.Cl.Models.Data.Huawei.VoipPstnUser.MsanServiceList;
 1299:             var msanDomainList = Ia.Ftn.Cl.Models.Data.Service.MsanDomainList;
 1300:  
 1301:             var list = new List<string>();
 1302:  
 1303:             foreach (var msanService in msanServiceList)
 1304:             {
 1305:                 if (!msanDomainList.Any(u => msanService.StartsWith(u.ToString())))
 1306:                 {
 1307:                     list.Add(msanService);
 1308:                 }
 1309:             }
 1310:  
 1311:             list.Sort();
 1312:  
 1313:             if (list.Count > 0)
 1314:             {
 1315:                 stringBuilder = new StringBuilder(list.Count * 32);
 1316:  
 1317:                 foreach (var service in list)
 1318:                 {
 1319:                     s = @"<a href=""find.aspx?input=" + service + @""">" + service + "</a>";
 1320:                     stringBuilder.AppendLine(s);
 1321:                 }
 1322:  
 1323:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1324:  
 1325:                 listViewModel.CountLabel = "List count: " + list.Count;
 1326:             }
 1327:             else listViewModel.CountLabel = "List count is zero.";
 1328:         }
 1329:  
 1330:         ////////////////////////////////////////////////////////////////////////////
 1331:  
 1332:         /// <summary>
 1333:         ///
 1334:         /// </summary>
 1335:         public static void MduList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1336:         {
 1337:             string s;
 1338:             StringBuilder stringBuilder;
 1339:  
 1340:             var list = Ia.Ftn.Cl.Models.Data.Access.MduList();
 1341:  
 1342:             list = list.OrderBy(u => u.Name).ToList();
 1343:  
 1344:             if (list.Count > 0)
 1345:             {
 1346:                 stringBuilder = new StringBuilder(list.Count * 32);
 1347:  
 1348:                 foreach (var mdu in list)
 1349:                 {
 1350:                     s = @"<a href=""find.aspx?input=" + mdu.Name + @""">" + mdu.Name + "</a>";
 1351:  
 1352:                     stringBuilder.AppendLine(s + ",");
 1353:                 }
 1354:  
 1355:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1356:  
 1357:                 listViewModel.CountLabel = "List count: " + list.Count;
 1358:             }
 1359:             else listViewModel.CountLabel = "List count is zero.";
 1360:         }
 1361:  
 1362:         ////////////////////////////////////////////////////////////////////////////
 1363:  
 1364:         /// <summary>
 1365:         ///
 1366:         /// </summary>
 1367:         public static void ChangedServiceToChangedToServiceDictionary(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1368:         {
 1369:             string s;
 1370:  
 1371:             var dictionary = Ia.Ftn.Cl.Models.Data.ServiceRequest.ChangedServiceNumberToChangedToServiceNumberListDictionary();
 1372:  
 1373:             var stringBuilder = new StringBuilder();
 1374:  
 1375:             foreach (var kvp in dictionary)
 1376:             {
 1377:                 var changed = kvp.Key;
 1378:                 var changedToList = string.Join(", ", kvp.Value.ToArray().OrderBy(u => u.ToString()));
 1379:  
 1380:                 s = @"[<a href=""find.aspx?input=" + changed + @""">" + changed + "</a>: " + changedToList + "]";
 1381:  
 1382:                 stringBuilder.AppendLine(s + ", ");
 1383:             }
 1384:  
 1385:             listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1386:  
 1387:             listViewModel.CountLabel = "List count: " + dictionary.Count;
 1388:         }
 1389:  
 1390:         ////////////////////////////////////////////////////////////////////////////
 1391:  
 1392:         /// <summary>
 1393:         ///
 1394:         /// </summary>
 1395:         public static void ProvisionedImsServiceWithNullAccessNotInPstnNorInNceOntSipInfoNorVoipPstnUserNorMsanWithinMsanDomainListList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1396:         {
 1397:             string s;
 1398:             StringBuilder stringBuilder;
 1399:  
 1400:             var list = Ia.Ftn.Cl.Models.Data.Provision.ProvisionedImsServiceWithNullAccessNotInPstnNorInNceOntSipInfoNorVoipPstnUserNorMsanWithinMsanDomainListList(true);
 1401:  
 1402:             list.Sort();
 1403:  
 1404:             if (list.Count > 0)
 1405:             {
 1406:                 stringBuilder = new StringBuilder(list.Count * 32);
 1407:  
 1408:                 foreach (var service in list)
 1409:                 {
 1410:                     s = @"<a href=""find.aspx?input=" + service + @""">" + service + "</a>";
 1411:                     stringBuilder.AppendLine(s);
 1412:                 }
 1413:  
 1414:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1415:  
 1416:                 listViewModel.CountLabel = "List count: " + list.Count;
 1417:             }
 1418:             else listViewModel.CountLabel = "List count is zero.";
 1419:         }
 1420:  
 1421:         ////////////////////////////////////////////////////////////////////////////
 1422:  
 1423:         /// <summary>
 1424:         ///
 1425:         /// </summary>
 1426:         public static void ServiceRequestServiceServicesThatDoNotExistInNeitherServiceRequestsNorServiceRequestHistoriesList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1427:         {
 1428:             string s;
 1429:             StringBuilder stringBuilder;
 1430:  
 1431:             var list = Ia.Ftn.Cl.Models.Data.ServiceRequestService.ServiceRequestServiceServicesThatDoNotExistInNeitherServiceRequestsNorServiceRequestHistoriesList();
 1432:  
 1433:             list.Sort();
 1434:  
 1435:             if (list.Count > 0)
 1436:             {
 1437:                 stringBuilder = new StringBuilder(list.Count * 32);
 1438:  
 1439:                 foreach (var service in list)
 1440:                 {
 1441:                     s = @"<a href=""find.aspx?input=" + service + @""">" + service + "</a>";
 1442:                     stringBuilder.AppendLine(s);
 1443:                 }
 1444:  
 1445:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1446:  
 1447:                 listViewModel.CountLabel = "List count: " + list.Count;
 1448:             }
 1449:             else listViewModel.CountLabel = "List count is zero.";
 1450:         }
 1451:  
 1452:         ////////////////////////////////////////////////////////////////////////////
 1453:  
 1454:         /// <summary>
 1455:         ///
 1456:         /// </summary>
 1457:         public static void ServiceImsServicesThatDoNotExistInServiceRequestServicesList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1458:         {
 1459:             string s;
 1460:             StringBuilder stringBuilder;
 1461:  
 1462:             var list = Ia.Ftn.Cl.Models.Data.Service2.ServiceImsServicesThatDoNotExistInServiceRequestServicesList();
 1463:  
 1464:             list.Sort();
 1465:  
 1466:             if (list.Count > 0)
 1467:             {
 1468:                 stringBuilder = new StringBuilder(list.Count * 32);
 1469:  
 1470:                 foreach (var service in list)
 1471:                 {
 1472:                     s = @"<a href=""find.aspx?input=" + service + @""">" + service + "</a>";
 1473:                     stringBuilder.AppendLine(s);
 1474:                 }
 1475:  
 1476:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1477:  
 1478:                 listViewModel.CountLabel = "List count: " + list.Count;
 1479:             }
 1480:             else listViewModel.CountLabel = "List count is zero.";
 1481:         }
 1482:  
 1483:         ////////////////////////////////////////////////////////////////////////////
 1484:  
 1485:         /// <summary>
 1486:         ///
 1487:         /// </summary>
 1488:         public static void AxeSubscribersThatAreRoutedToNokiaImsButAreStillInServiceInAxeSwitchList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1489:         {
 1490:             string s;
 1491:             StringBuilder stringBuilder;
 1492:  
 1493:             // See Nokia IMS router at Ia.Ftn.Cl.Models.Business.Ericsson.Subscriber.RouteName();
 1494:  
 1495:             var list = Ia.Ftn.Cl.Models.Data.Ericsson.Subscriber.SnbWhereSclHasIcs3AndSutNotNcList();
 1496:  
 1497:             list.Sort();
 1498:  
 1499:             if (list.Count > 0)
 1500:             {
 1501:                 stringBuilder = new StringBuilder(list.Count * 32);
 1502:  
 1503:                 foreach (var service in list)
 1504:                 {
 1505:                     s = @"<a href=""find.aspx?input=" + service + @""">" + service + "</a>";
 1506:                     stringBuilder.AppendLine(s);
 1507:                 }
 1508:  
 1509:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1510:  
 1511:                 listViewModel.CountLabel = "List count: " + list.Count;
 1512:             }
 1513:             else listViewModel.CountLabel = "List count is zero.";
 1514:         }
 1515:  
 1516:         ////////////////////////////////////////////////////////////////////////////
 1517:  
 1518:         /// <summary>
 1519:         ///
 1520:         /// </summary>
 1521:         public static void AxeSubscribersWithATypeOfServiceSuspensionList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1522:         {
 1523:             string s;
 1524:             StringBuilder stringBuilder;
 1525:  
 1526:             var list = Ia.Ftn.Cl.Models.Data.Ericsson.Subscriber.SnbWhereSclHasTbiOrTboOrBicAndSutNotNcList();
 1527:  
 1528:             list.Sort();
 1529:  
 1530:             if (list.Count > 0)
 1531:             {
 1532:                 stringBuilder = new StringBuilder(list.Count * 32);
 1533:  
 1534:                 foreach (var service in list)
 1535:                 {
 1536:                     s = @"<a href=""find.aspx?input=" + service + @""">" + service + "</a>";
 1537:                     stringBuilder.AppendLine(s);
 1538:                 }
 1539:  
 1540:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1541:  
 1542:                 listViewModel.CountLabel = "List count: " + list.Count;
 1543:             }
 1544:             else listViewModel.CountLabel = "List count is zero.";
 1545:         }
 1546:  
 1547:         ////////////////////////////////////////////////////////////////////////////
 1548:  
 1549:         /// <summary>
 1550:         ///
 1551:         /// </summary>
 1552:         public static void EwsdSubscribersWithATypeOfServiceSuspensionList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1553:         {
 1554:             string s;
 1555:             StringBuilder stringBuilder;
 1556:  
 1557:             var list = Ia.Ftn.Cl.Models.Data.Siemens.Subscriber.DnWhereBlkIsNotEmptyList();
 1558:  
 1559:             list.Sort();
 1560:  
 1561:             if (list.Count > 0)
 1562:             {
 1563:                 stringBuilder = new StringBuilder(list.Count * 32);
 1564:  
 1565:                 foreach (var service in list)
 1566:                 {
 1567:                     s = @"<a href=""find.aspx?input=" + service + @""">" + service + "</a>";
 1568:                     stringBuilder.AppendLine(s);
 1569:                 }
 1570:  
 1571:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1572:  
 1573:                 listViewModel.CountLabel = "List count: " + list.Count;
 1574:             }
 1575:             else listViewModel.CountLabel = "List count is zero.";
 1576:         }
 1577:  
 1578:         ////////////////////////////////////////////////////////////////////////////
 1579:  
 1580:         /// <summary>
 1581:         ///
 1582:         /// </summary>
 1583:         public static void DistributionOfServicesWithinNokiaOlts(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1584:         {
 1585:             string s;
 1586:  
 1587:             var dictionary = Ia.Ftn.Cl.Models.Data.Default.NokiaOltToServiceCountDictionary();
 1588:  
 1589:             var stringBuilder = new StringBuilder();
 1590:  
 1591:             var totalCount = 0;
 1592:  
 1593:             foreach (var kvp in dictionary)
 1594:             {
 1595:                 var name = kvp.Key;
 1596:                 var count = kvp.Value;
 1597:  
 1598:                 totalCount += count;
 1599:  
 1600:                 s = name + ": " + count + "<br/>";
 1601:  
 1602:                 stringBuilder.AppendLine(s);
 1603:             }
 1604:  
 1605:             listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1606:  
 1607:             listViewModel.CountLabel = "List count: " + totalCount;
 1608:         }
 1609:  
 1610:         ////////////////////////////////////////////////////////////////////////////
 1611:  
 1612:         /// <summary>
 1613:         ///
 1614:         /// </summary>
 1615:         public static void DistributionOfServicesWithinHuaweiOlts(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1616:         {
 1617:             string s;
 1618:  
 1619:             var dictionary = Ia.Ftn.Cl.Models.Data.Default.HuaweiOltToServiceCountDictionary();
 1620:  
 1621:             var stringBuilder = new StringBuilder();
 1622:  
 1623:             var totalCount = 0;
 1624:  
 1625:             foreach (var kvp in dictionary)
 1626:             {
 1627:                 var name = kvp.Key;
 1628:                 var count = kvp.Value;
 1629:  
 1630:                 totalCount += count;
 1631:  
 1632:                 s = name + ": " + count + "<br/>";
 1633:  
 1634:                 stringBuilder.AppendLine(s);
 1635:             }
 1636:  
 1637:             listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1638:  
 1639:             listViewModel.CountLabel = "List count: " + totalCount;
 1640:         }
 1641:  
 1642:         ////////////////////////////////////////////////////////////////////////////
 1643:  
 1644:         /// <summary>
 1645:         ///
 1646:         /// </summary>
 1647:         public static void SynchronizationBetweenServiceRequestOntDetailAndCustomerDepartmentDatabaseListsOfEntriesToCreateAndDeleteInCustomerDatabase(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1648:         {
 1649:             string s;
 1650:  
 1651:             Ia.Ftn.Cl.Models.Data.Service.DifferenceBetweenServiceAndServiceRequestOntDetailsOfTheCustomerDepartmentDatabase(out List<Ia.Ftn.Cl.Models.Business.ServiceServiceRequestOnt> insertList, out List<Ia.Ftn.Cl.Models.Business.ServiceServiceRequestOnt> deleteList);
 1652:  
 1653:             var stringBuilder = new StringBuilder();
 1654:  
 1655:             stringBuilder.AppendLine("Services to insert: ");
 1656:  
 1657:             foreach (var ssro in insertList)
 1658:             {
 1659:                 s = @"<a href=""find.aspx?input=" + ssro.Service + @""">" + ssro.Service + "</a>";
 1660:  
 1661:                 stringBuilder.AppendLine(s);
 1662:             }
 1663:  
 1664:             stringBuilder.AppendLine("<br/>");
 1665:             stringBuilder.AppendLine("<br/>");
 1666:  
 1667:             stringBuilder.AppendLine("Services to delete: ");
 1668:  
 1669:             foreach (var ssro in deleteList)
 1670:             {
 1671:                 s = @"<a href=""find.aspx?input=" + ssro.Service + @""">" + ssro.Service + "</a>";
 1672:  
 1673:                 stringBuilder.AppendLine(s);
 1674:             }
 1675:  
 1676:             listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1677:  
 1678:             listViewModel.CountLabel = "List count: " + (insertList.Count + deleteList.Count);
 1679:         }
 1680:  
 1681:         ////////////////////////////////////////////////////////////////////////////
 1682:  
 1683:         /// <summary>
 1684:         ///
 1685:         /// </summary>
 1686:         public static void InconsistentRecordsWhereEmsOntIsNullAndDnIsImpuAidHasPlusFormatOrEmsOntIsNotNullAndDnIsInServiceWithCountryCodeNoPlusFormatList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1687:         {
 1688:             string s;
 1689:  
 1690:             var list = Ia.Ftn.Cl.Models.Data.Huawei.VoipPstnUser.InconsistentRecordsWhereEmsOntIsNullAndDnIsImpuAidHasPlusFormatOrEmsOntIsNotNullAndDnIsInServiceWithCountryCodeNoPlusFormatList();
 1691:  
 1692:             list.Sort();
 1693:  
 1694:             if (list.Count > 0)
 1695:             {
 1696:                 var stringBuilder = new StringBuilder(list.Count * 32);
 1697:  
 1698:                 foreach (var service in list)
 1699:                 {
 1700:                     s = @"<a href=""find.aspx?input=" + service + @""">" + service + "</a>";
 1701:                     stringBuilder.AppendLine(s);
 1702:                 }
 1703:  
 1704:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1705:  
 1706:                 listViewModel.CountLabel = "List count: " + list.Count;
 1707:             }
 1708:             else listViewModel.CountLabel = "List count is zero.";
 1709:         }
 1710:  
 1711:         ////////////////////////////////////////////////////////////////////////////
 1712:  
 1713:         /// <summary>
 1714:         ///
 1715:         /// </summary>
 1716:         public static void PbxNumberListButton(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1717:         {
 1718:             List<string> list;
 1719:  
 1720:             list = Ia.Ftn.Cl.Models.Data.Service.ServicePbxList;
 1721:  
 1722:             if (list.Count > 0)
 1723:             {
 1724:                 //stringBuilder = new StringBuilder(list.Count * 64);
 1725:  
 1726:                 listViewModel.ListLiteral = string.Join(" ", list.ToArray());
 1727:  
 1728:                 listViewModel.CountLabel = "List count: " + list.Count;
 1729:             }
 1730:             else listViewModel.CountLabel = "List count is zero.";
 1731:         }
 1732:  
 1733:         ////////////////////////////////////////////////////////////////////////////
 1734:  
 1735:         /// <summary>
 1736:         ///
 1737:         /// </summary>
 1738:         public static void SeviceRequestPbxServiceKeyToPbxServiceBranchListDictionary(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1739:         {
 1740:             string s;
 1741:  
 1742:             var dictionary = Ia.Ftn.Cl.Models.Data.ServiceRequest.PbxServiceKeyToPbxServiceBranchListDictionary();
 1743:  
 1744:             var stringBuilder = new StringBuilder();
 1745:  
 1746:             foreach (var kvp in dictionary)
 1747:             {
 1748:                 var key = kvp.Key;
 1749:                 var branchList = string.Join(", ", kvp.Value.ToArray().OrderBy(u => u.ToString()));
 1750:  
 1751:                 s = @"<a href=""find.aspx?input=" + key + @""">" + key + "</a>: " + branchList;
 1752:  
 1753:                 stringBuilder.AppendLine(s + "<br/>");
 1754:             }
 1755:  
 1756:             listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1757:  
 1758:             listViewModel.CountLabel = "List count: " + dictionary.Count;
 1759:         }
 1760:  
 1761:         ////////////////////////////////////////////////////////////////////////////
 1762:  
 1763:         /// <summary>
 1764:         ///
 1765:         /// </summary>
 1766:         public static void UnrecognizedEmsDevAndEmsOntList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1767:         {
 1768:             string s;
 1769:  
 1770:             Ia.Ftn.Cl.Models.Data.Huawei.Default.UnrecognizedEmsDevAndEmsOntList(out List<string> unrecognizedDevList, out List<string> unrecognizedOntList);
 1771:  
 1772:             var stringBuilder = new StringBuilder();
 1773:  
 1774:             s = "Unrecognized EmsDev list:<br/>" + string.Join("<br/>", unrecognizedDevList);
 1775:             stringBuilder.AppendLine(s + "<br/><br/>");
 1776:  
 1777:             s = "Unrecognized EmsOnt list:<br/>" + string.Join("<br/>", unrecognizedOntList);
 1778:             stringBuilder.AppendLine(s + "<br/>");
 1779:  
 1780:             listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1781:  
 1782:             listViewModel.CountLabel = "";
 1783:         }
 1784:  
 1785:         ////////////////////////////////////////////////////////////////////////////
 1786:  
 1787:         /// <summary>
 1788:         ///
 1789:         /// </summary>
 1790:         public static void ServicesThatAppearMostInReportsWithAppearanceCountList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1791:         {
 1792:             string s;
 1793:  
 1794:             var dictionary = Ia.Ftn.Cl.Models.Data.Report.ReportServiceToCountTopNDictionary(100);
 1795:  
 1796:             var stringBuilder = new StringBuilder();
 1797:  
 1798:             foreach (var kvp in dictionary)
 1799:             {
 1800:                 var service = kvp.Key;
 1801:                 var count = kvp.Value;
 1802:  
 1803:                 s = @"<a href=""find.aspx?input=" + service + @""">" + service + "</a> (" + count + ")";
 1804:  
 1805:                 stringBuilder.AppendLine(s + ", ");
 1806:             }
 1807:  
 1808:             listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1809:  
 1810:             listViewModel.CountLabel = "List count: " + dictionary.Count;
 1811:         }
 1812:  
 1813:         ////////////////////////////////////////////////////////////////////////////
 1814:  
 1815:         /// <summary>
 1816:         ///
 1817:         /// </summary>
 1818:         public static void SoftXAsbrServiceNotWithinSoftXDomainList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1819:         {
 1820:             string s;
 1821:  
 1822:             var list = Ia.Ftn.Cl.Models.Data.Huawei.Asbr.ServiceNotWithinSoftXDomainList();
 1823:  
 1824:             list.Sort();
 1825:  
 1826:             if (list.Count > 0)
 1827:             {
 1828:                 var stringBuilder = new StringBuilder(list.Count * 32);
 1829:  
 1830:                 foreach (var service in list)
 1831:                 {
 1832:                     s = @"<a href=""find.aspx?input=" + service + @""">" + service + "</a>";
 1833:                     stringBuilder.AppendLine(s);
 1834:                 }
 1835:  
 1836:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1837:  
 1838:                 listViewModel.CountLabel = "List count: " + list.Count;
 1839:             }
 1840:             else listViewModel.CountLabel = "List count is zero.";
 1841:         }
 1842:  
 1843:         ////////////////////////////////////////////////////////////////////////////
 1844:  
 1845:         /// <summary>
 1846:         ///
 1847:         /// </summary>
 1848:         public static void NpSpsFnrSeruattrServiceNotWithinSpsDomainList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1849:         {
 1850:             string s;
 1851:  
 1852:             var list = Ia.Ftn.Cl.Models.Data.Huawei.Seruattr.ServiceNotWithinSpsDomainList();
 1853:  
 1854:             list.Sort();
 1855:  
 1856:             if (list.Count > 0)
 1857:             {
 1858:                 var stringBuilder = new StringBuilder(list.Count * 32);
 1859:  
 1860:                 foreach (var service in list)
 1861:                 {
 1862:                     s = @"<a href=""find.aspx?input=" + service + @""">" + service + "</a>";
 1863:                     stringBuilder.AppendLine(s);
 1864:                 }
 1865:  
 1866:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1867:  
 1868:                 listViewModel.CountLabel = "List count: " + list.Count;
 1869:             }
 1870:             else listViewModel.CountLabel = "List count is zero.";
 1871:         }
 1872:  
 1873:         ////////////////////////////////////////////////////////////////////////////
 1874:  
 1875:         /// <summary>
 1876:         ///
 1877:         /// </summary>
 1878:         public static void SiemensEwsdSubscriberServiceNotWithinEwsdPstnDomainList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1879:         {
 1880:             string s;
 1881:  
 1882:             var list = Ia.Ftn.Cl.Models.Data.Siemens.Subscriber.ServiceNotWithinEwsdPstnDomainList();
 1883:  
 1884:             list.Sort();
 1885:  
 1886:             if (list.Count > 0)
 1887:             {
 1888:                 var stringBuilder = new StringBuilder(list.Count * 32);
 1889:  
 1890:                 foreach (var service in list)
 1891:                 {
 1892:                     s = @"<a href=""find.aspx?input=" + service + @""">" + service + "</a>";
 1893:                     stringBuilder.AppendLine(s);
 1894:                 }
 1895:  
 1896:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1897:  
 1898:                 listViewModel.CountLabel = "List count: " + list.Count;
 1899:             }
 1900:             else listViewModel.CountLabel = "List count is zero.";
 1901:         }
 1902:  
 1903:         ////////////////////////////////////////////////////////////////////////////
 1904:  
 1905:         /// <summary>
 1906:         ///
 1907:         /// </summary>
 1908:         public static void EricssonAxeSubscriberServiceNotWithinAxePstnDomainList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1909:         {
 1910:             string s;
 1911:  
 1912:             var list = Ia.Ftn.Cl.Models.Data.Ericsson.Subscriber.ServiceNotWithinAxePstnDomainList();
 1913:  
 1914:             list.Sort();
 1915:  
 1916:             if (list.Count > 0)
 1917:             {
 1918:                 var stringBuilder = new StringBuilder(list.Count * 32);
 1919:  
 1920:                 foreach (var service in list)
 1921:                 {
 1922:                     s = @"<a href=""find.aspx?input=" + service + @""">" + service + "</a>";
 1923:                     stringBuilder.AppendLine(s);
 1924:                 }
 1925:  
 1926:                 listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1927:  
 1928:                 listViewModel.CountLabel = "List count: " + list.Count;
 1929:             }
 1930:             else listViewModel.CountLabel = "List count is zero.";
 1931:         }
 1932:  
 1933:         ////////////////////////////////////////////////////////////////////////////
 1934:  
 1935:         /// <summary>
 1936:         ///
 1937:         /// </summary>
 1938:         public static void DistributionOfServicesWithinMsanDevicesList(ref Ia.Ftn.Wa.Models.Maintenance.ListViewModel listViewModel)
 1939:         {
 1940:             string s;
 1941:  
 1942:             var dictionary = Ia.Ftn.Cl.Models.Data.Huawei.Default.MsanDevDevToDnCountDictionary;
 1943:  
 1944:             var stringBuilder = new StringBuilder();
 1945:  
 1946:             foreach (var kvp in dictionary)
 1947:             {
 1948:                 var msanDeviceName = kvp.Key;
 1949:                 var count = kvp.Value;
 1950:  
 1951:                 s = msanDeviceName + " (" + count + ")";
 1952:  
 1953:                 stringBuilder.AppendLine(s + "<br/>");
 1954:             }
 1955:  
 1956:             listViewModel.ListLiteral = stringBuilder.ToString().Trim();
 1957:  
 1958:             listViewModel.CountLabel = "List count: " + dictionary.Count;
 1959:         }
 1960:  
 1961:         ////////////////////////////////////////////////////////////////////////////
 1962:         ////////////////////////////////////////////////////////////////////////////
 1963:     }
 1964:  
 1965:     ////////////////////////////////////////////////////////////////////////////
 1966:     ////////////////////////////////////////////////////////////////////////////
 1967: }