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

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

Default support class for Fixed Telecommunications Network (FTN) ui model.

    1: using Ia.Cl.Models;
    2: using Microsoft.AspNetCore.Identity;
    3: using System;
    4: using System.Collections.Generic;
    5: using System.Configuration;
    6: using System.Linq;
    7: using System.Net;
    8: using System.Text;
    9: using System.Text.RegularExpressions;
   10:  
   11: namespace Ia.Ftn.Cl.Models.Ui
   12: {
   13:     ////////////////////////////////////////////////////////////////////////////
   14:  
   15:     /// <summary publish="true">
   16:     /// Default support class for Fixed Telecommunications Network (FTN) ui model.
   17:     /// </summary>
   18:     /// 
   19:     /// <remarks> 
   20:     /// Copyright © 2006-2022 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
   21:     /// </remarks> 
   22:     public class Default
   23:     {
   24:         private static List<string> lightBackgroundColorList, darkBackgroundColorList;
   25:         private static List<ColorAndItsSuitableBackground> colorAndItsSuitableBackgroundList;
   26:  
   27:         /// <summary/>
   28:         public enum ViewButtonColumnType
   29:         {
   30:             /// <summary/>
   31:             NoButtons,
   32:  
   33:             /// <summary/>
   34:             HistoryButton,
   35:  
   36:             /// <summary/>
   37:             DeleteAndDeleteOffButton,
   38:  
   39:             /// <summary/>
   40:             DeleteAndDeleteOffAndDeleteChildOffAndHistoryButtons,
   41:  
   42:             /// <summary/>
   43:             DeleteAndDeleteOffAndDeleteChildOffButtons,
   44:  
   45:             /// <summary/>
   46:             DeleteAndEditAndCancelAndUpdateButtons
   47:         }
   48:  
   49:         ////////////////////////////////////////////////////////////////////////////
   50:  
   51:         /// <summary>
   52:         ///
   53:         /// </summary>
   54:         public static string MailTop()
   55:         {
   56:             var siteName = Ia.Cl.Models.ApplicationConfiguration.GetSetting("AppSettings:SiteName");
   57:             var companyName = Ia.Cl.Models.ApplicationConfiguration.GetSetting("AppSettings:CompanyName");
   58:  
   59:             return @"
   60: <!DOCTYPE html>
   61: <html xmlns=""http://www.w3.org/1999/xhtml"" >
   62: <head>
   63: <title>" + siteName + @": " + companyName + @"</title>
   64: <style>
   65: html { direction:ltr; }
   66: body { background:#fff;margin:5px;padding:0px;color:DarkBlue; }
   67: body,td,th,a,input.button_ia,input,textarea,option,select,pre { font:9pt normal #000066 ""Tahoma"";font-family:Tahoma;text-decoration:none; }
   68: a:link { color:#0000ff;text-decoration:none; }
   69: a:visited { color:#0000ff;text-decoration:none; }
   70: a:hover { color:#ff8888;text-decoration:none; }
   71: hr { color:rgb(204,204,204); }
   72: p { line-height:18px;margin-top:9px;margin-bottom:9px; }
   73: table.form { }
   74: table.form td { }
   75: </style>
   76: </head>
   77: <body>
   78: <p>
   79: <b>" + siteName + @"</b>: 
   80: <b>" + companyName + @"</b>
   81: </p>
   82: ";
   83:         }
   84:  
   85:         ////////////////////////////////////////////////////////////////////////////
   86:  
   87:         /// <summary>
   88:         ///
   89:         /// </summary>
   90:         public static string PlainMailTop()
   91:         {
   92:             var siteName = Ia.Cl.Models.ApplicationConfiguration.GetSetting("AppSettings:SiteName");
   93:             var companyName = Ia.Cl.Models.ApplicationConfiguration.GetSetting("AppSettings:CompanyName");
   94:  
   95:             return siteName + "\t\r\n" + companyName + @"
   96:  
   97: ";
   98:             // above: "\t\r\n" is very important to produce good email format
   99:         }
  100:  
  101:         ////////////////////////////////////////////////////////////////////////////
  102:  
  103:         /// <summary>
  104:         ///
  105:         /// </summary>
  106:         public static string MailBottom()
  107:         {
  108:             return @"
  109: </body>
  110: </html>
  111: ";
  112:         }
  113:  
  114:         ////////////////////////////////////////////////////////////////////////////
  115:  
  116:         /// <summary>
  117:         ///
  118:         /// </summary>
  119:         public static string PlainMailBottom()
  120:         {
  121:             return string.Empty;
  122:         }
  123:  
  124:         ////////////////////////////////////////////////////////////////////////////
  125:         ////////////////////////////////////////////////////////////////////////////
  126:  
  127:         /// <summary>
  128:         ///
  129:         /// </summary>
  130:         public static string DisplayDisabledTextIfTrue(bool isDisabled)
  131:         {
  132:             string text;
  133:  
  134:             if (isDisabled) text = "disabled";
  135:             else text = string.Empty;
  136:  
  137:             return text;
  138:         }
  139:  
  140:         ////////////////////////////////////////////////////////////////////////////
  141:         ////////////////////////////////////////////////////////////////////////////
  142:  
  143:         /// <summary>
  144:         ///
  145:         /// </summary>
  146:         public struct ColorAndItsSuitableBackground
  147:         {
  148:             public string Name, Background;
  149:  
  150:             public ColorAndItsSuitableBackground(string name, string background)
  151:             {
  152:                 Name = name;
  153:                 Background = background;
  154:             }
  155:         }
  156:  
  157:         ////////////////////////////////////////////////////////////////////////////
  158:  
  159:         /// <summary>
  160:         ///
  161:         /// </summary>
  162:         public static List<string> LightBackgroundColorList
  163:         {
  164:             get
  165:             {
  166:                 //if (lightBackgroundColorList == null || lightBackgroundColorList.Count == 0)
  167:                 //{
  168:                 lightBackgroundColorList = new List<string>(200);
  169:  
  170:                 foreach (ColorAndItsSuitableBackground c in ColorAndItsSuitableBackgroundList)
  171:                 {
  172:                     if (c.Background == "light") lightBackgroundColorList.Add(c.Name);
  173:                 }
  174:                 //}
  175:  
  176:                 return lightBackgroundColorList;
  177:             }
  178:         }
  179:  
  180:         ////////////////////////////////////////////////////////////////////////////
  181:  
  182:         /// <summary>
  183:         ///
  184:         /// </summary>
  185:         public static List<string> DarkBackgroundColorList
  186:         {
  187:             get
  188:             {
  189:                 //if (darkBackgroundColorList == null || darkBackgroundColorList.Count == 0)
  190:                 //{
  191:                 darkBackgroundColorList = new List<string>(200);
  192:  
  193:                 foreach (ColorAndItsSuitableBackground c in ColorAndItsSuitableBackgroundList)
  194:                 {
  195:                     if (c.Background == "dark") darkBackgroundColorList.Add(c.Name);
  196:                 }
  197:                 //}
  198:  
  199:                 return darkBackgroundColorList;
  200:             }
  201:         }
  202:  
  203:         ////////////////////////////////////////////////////////////////////////////
  204:  
  205:         /// <summary>
  206:         ///
  207:         /// </summary>
  208:         public static List<ColorAndItsSuitableBackground> ColorAndItsSuitableBackgroundList
  209:         {
  210:             get
  211:             {
  212:                 //if (colorAndSuitableBackgroundList == null || colorAndSuitableBackgroundList.Count == 0)
  213:                 //{
  214:                 colorAndItsSuitableBackgroundList = new List<ColorAndItsSuitableBackground>(200)
  215:                         {
  216:                             new ColorAndItsSuitableBackground("AliceBlue", "dark"),
  217:                             new ColorAndItsSuitableBackground("AliceBlue", "dark"),
  218:                             new ColorAndItsSuitableBackground("AntiqueWhite", "dark"),
  219:                             new ColorAndItsSuitableBackground("Aqua", "dark"),
  220:                             new ColorAndItsSuitableBackground("Aquamarine", "dark"),
  221:                             new ColorAndItsSuitableBackground("Azure", "dark"),
  222:                             new ColorAndItsSuitableBackground("Beige", "dark"),
  223:                             new ColorAndItsSuitableBackground("Bisque", "dark"),
  224:                             new ColorAndItsSuitableBackground("Black", "light"),
  225:                             new ColorAndItsSuitableBackground("BlanchedAlmond", "dark"),
  226:                             new ColorAndItsSuitableBackground("Blue", "light"),
  227:                             new ColorAndItsSuitableBackground("BlueViolet", "light"),
  228:                             new ColorAndItsSuitableBackground("Brown", "light"),
  229:                             new ColorAndItsSuitableBackground("BurlyWood", "dark"),
  230:                             new ColorAndItsSuitableBackground("CadetBlue", "light"),
  231:                             new ColorAndItsSuitableBackground("Chartreuse", "dark"),
  232:                             new ColorAndItsSuitableBackground("Chocolate", "light"),
  233:                             new ColorAndItsSuitableBackground("Coral", "dark"),
  234:                             new ColorAndItsSuitableBackground("CornFlowerBlue", "dark"),
  235:                             new ColorAndItsSuitableBackground("Cornsilk", "dark"),
  236:                             new ColorAndItsSuitableBackground("Crimson", "light"),
  237:                             new ColorAndItsSuitableBackground("Cyan", "dark"),
  238:                             new ColorAndItsSuitableBackground("DarkBlue", "light"),
  239:                             new ColorAndItsSuitableBackground("DarkCyan", "light"),
  240:                             new ColorAndItsSuitableBackground("DarkGoldenrod", "light"),
  241:                             new ColorAndItsSuitableBackground("DarkGray", "dark"),
  242:                             new ColorAndItsSuitableBackground("DarkGreen", "light"),
  243:                             new ColorAndItsSuitableBackground("DarkKhaki", "dark"),
  244:                             new ColorAndItsSuitableBackground("DarkMagenta", "light"),
  245:                             new ColorAndItsSuitableBackground("DarkOliveGreen", "light"),
  246:                             new ColorAndItsSuitableBackground("DarkOrange", "dark"),
  247:                             new ColorAndItsSuitableBackground("DarkOrchid", "light"),
  248:                             new ColorAndItsSuitableBackground("DarkRed", "light"),
  249:                             new ColorAndItsSuitableBackground("DarkSalmon", "dark"),
  250:                             new ColorAndItsSuitableBackground("DarkSeaGreen", "dark"),
  251:                             new ColorAndItsSuitableBackground("DarkSlateBlue", "light"),
  252:                             new ColorAndItsSuitableBackground("DarkSlateGray", "light"),
  253:                             new ColorAndItsSuitableBackground("DarkTurquoise", "light"),
  254:                             new ColorAndItsSuitableBackground("DarkViolet", "light"),
  255:                             new ColorAndItsSuitableBackground("DeepPink", "light"),
  256:                             new ColorAndItsSuitableBackground("DeepSkyBlue", "light"),
  257:                             new ColorAndItsSuitableBackground("DimGray", "light"),
  258:                             new ColorAndItsSuitableBackground("DodgerBlue", "light"),
  259:                             new ColorAndItsSuitableBackground("Firebrick", "light"),
  260:                             new ColorAndItsSuitableBackground("FloralWhite", "dark"),
  261:                             new ColorAndItsSuitableBackground("ForestGreen", "light"),
  262:                             new ColorAndItsSuitableBackground("Fuchsia", "dark"),
  263:                             new ColorAndItsSuitableBackground("Gainsboro", "dark"),
  264:                             new ColorAndItsSuitableBackground("GhostWhite", "dark"),
  265:                             new ColorAndItsSuitableBackground("Gold", "dark"),
  266:                             new ColorAndItsSuitableBackground("Goldenrod", "dark"),
  267:                             new ColorAndItsSuitableBackground("Gray", "light"),
  268:                             new ColorAndItsSuitableBackground("Green", "light"),
  269:                             new ColorAndItsSuitableBackground("GreenYellow", "dark"),
  270:                             new ColorAndItsSuitableBackground("Honeydew", "dark"),
  271:                             new ColorAndItsSuitableBackground("HotPink", "dark"),
  272:                             new ColorAndItsSuitableBackground("IndianRed", "light"),
  273:                             new ColorAndItsSuitableBackground("Indigo", "light"),
  274:                             new ColorAndItsSuitableBackground("Ivory", "dark"),
  275:                             new ColorAndItsSuitableBackground("Khaki", "dark"),
  276:                             new ColorAndItsSuitableBackground("Lavender", "dark"),
  277:                             new ColorAndItsSuitableBackground("LavenderBlush", "dark"),
  278:                             new ColorAndItsSuitableBackground("LawnGreen", "dark"),
  279:                             new ColorAndItsSuitableBackground("LemonChiffon", "dark"),
  280:                             new ColorAndItsSuitableBackground("LightBlue", "dark"),
  281:                             new ColorAndItsSuitableBackground("LightCoral", "dark"),
  282:                             new ColorAndItsSuitableBackground("LightCyan", "dark"),
  283:                             new ColorAndItsSuitableBackground("LightGoldenRodYellow", "dark"),
  284:                             new ColorAndItsSuitableBackground("LightGray", "dark"),
  285:                             new ColorAndItsSuitableBackground("LightGreen", "dark"),
  286:                             new ColorAndItsSuitableBackground("LightPink", "dark"),
  287:                             new ColorAndItsSuitableBackground("LightSalmon", "dark"),
  288:                             new ColorAndItsSuitableBackground("LightSeaGreen", "light"),
  289:                             new ColorAndItsSuitableBackground("LightSkyBlue", "dark"),
  290:                             new ColorAndItsSuitableBackground("LightSlateGray", "light"),
  291:                             new ColorAndItsSuitableBackground("LightSteelBlue", "dark"),
  292:                             new ColorAndItsSuitableBackground("LightYellow", "dark"),
  293:                             new ColorAndItsSuitableBackground("Lime", "dark"),
  294:                             new ColorAndItsSuitableBackground("LimeGreen", "dark"),
  295:                             new ColorAndItsSuitableBackground("Linen", "dark"),
  296:                             new ColorAndItsSuitableBackground("Magenta", "dark"),
  297:                             new ColorAndItsSuitableBackground("Maroon", "light"),
  298:                             new ColorAndItsSuitableBackground("MediumAquamarine", "dark"),
  299:                             new ColorAndItsSuitableBackground("MediumBlue", "light"),
  300:                             new ColorAndItsSuitableBackground("MediumOrchid", "dark"),
  301:                             new ColorAndItsSuitableBackground("MediumPurple", "dark"),
  302:                             new ColorAndItsSuitableBackground("MediumSeaGreen", "light"),
  303:                             new ColorAndItsSuitableBackground("MediumSlateBlue", "light"),
  304:                             new ColorAndItsSuitableBackground("MediumSpringGreen", "light"),
  305:                             new ColorAndItsSuitableBackground("MediumTurquoise", "dark"),
  306:                             new ColorAndItsSuitableBackground("MediumVioletRed", "light"),
  307:                             new ColorAndItsSuitableBackground("MidnightBlue", "light"),
  308:                             new ColorAndItsSuitableBackground("MintCream", "dark"),
  309:                             new ColorAndItsSuitableBackground("MistyRose", "dark"),
  310:                             new ColorAndItsSuitableBackground("Moccasin", "dark"),
  311:                             new ColorAndItsSuitableBackground("NavajoWhite", "dark"),
  312:                             new ColorAndItsSuitableBackground("Navy", "light"),
  313:                             new ColorAndItsSuitableBackground("OldLace", "dark"),
  314:                             new ColorAndItsSuitableBackground("Olive", "light"),
  315:                             new ColorAndItsSuitableBackground("OliveDrab", "light"),
  316:                             new ColorAndItsSuitableBackground("Orange", "dark"),
  317:                             new ColorAndItsSuitableBackground("OrangeRed", "light"),
  318:                             new ColorAndItsSuitableBackground("Orchid", "dark"),
  319:                             new ColorAndItsSuitableBackground("PaleGoldenrod", "dark"),
  320:                             new ColorAndItsSuitableBackground("PaleGreen", "dark"),
  321:                             new ColorAndItsSuitableBackground("PaleTurquoise", "dark"),
  322:                             new ColorAndItsSuitableBackground("PaleVioletRed", "dark"),
  323:                             new ColorAndItsSuitableBackground("PapayaWhip", "dark"),
  324:                             new ColorAndItsSuitableBackground("PeachPuff", "dark"),
  325:                             new ColorAndItsSuitableBackground("Peru", "light"),
  326:                             new ColorAndItsSuitableBackground("Pink", "dark"),
  327:                             new ColorAndItsSuitableBackground("Plum", "dark"),
  328:                             new ColorAndItsSuitableBackground("PowderBlue", "dark"),
  329:                             new ColorAndItsSuitableBackground("Purple", "light"),
  330:                             new ColorAndItsSuitableBackground("Red", "light"),
  331:                             new ColorAndItsSuitableBackground("RosyBrown", "dark"),
  332:                             new ColorAndItsSuitableBackground("RoyalBlue", "light"),
  333:                             new ColorAndItsSuitableBackground("SaddleBrown", "light"),
  334:                             new ColorAndItsSuitableBackground("Salmon", "dark"),
  335:                             new ColorAndItsSuitableBackground("SandyBrown", "dark"),
  336:                             new ColorAndItsSuitableBackground("SeaGreen", "light"),
  337:                             new ColorAndItsSuitableBackground("SeaShell", "dark"),
  338:                             new ColorAndItsSuitableBackground("Sienna", "light"),
  339:                             new ColorAndItsSuitableBackground("Silver", "dark"),
  340:                             new ColorAndItsSuitableBackground("SkyBlue", "dark"),
  341:                             new ColorAndItsSuitableBackground("SlateBlue", "light"),
  342:                             new ColorAndItsSuitableBackground("SlateGray", "light"),
  343:                             new ColorAndItsSuitableBackground("Snow", "dark"),
  344:                             new ColorAndItsSuitableBackground("SpringGreen", "dark"),
  345:                             new ColorAndItsSuitableBackground("SteelBlue", "light"),
  346:                             new ColorAndItsSuitableBackground("Tan", "dark"),
  347:                             new ColorAndItsSuitableBackground("Teal", "light"),
  348:                             new ColorAndItsSuitableBackground("Thistle", "dark"),
  349:                             new ColorAndItsSuitableBackground("Tomato", "dark"),
  350:                             //colorAndSuitableBackgroundList.Add(new ColorAndSuitableBackground("Transparent", "light"));
  351:                             new ColorAndItsSuitableBackground("Turquoise", "dark"),
  352:                             new ColorAndItsSuitableBackground("Violet", "dark"),
  353:                             new ColorAndItsSuitableBackground("Wheat", "dark"),
  354:                             new ColorAndItsSuitableBackground("White", "dark"),
  355:                             new ColorAndItsSuitableBackground("WhiteSmoke", "dark"),
  356:                             new ColorAndItsSuitableBackground("Yellow", "dark"),
  357:                             new ColorAndItsSuitableBackground("YellowGreen", "light")
  358:                         };
  359:                 //}
  360:  
  361:                 return colorAndItsSuitableBackgroundList.ToList();
  362:             }
  363:         }
  364:  
  365:         ////////////////////////////////////////////////////////////////////////////   
  366:  
  367:         /// <summary>
  368:         ///
  369:         /// </summary>
  370:         public static void RemoveAllComments(ref StringBuilder sb)
  371:         {
  372:             string s;
  373:  
  374:             s = Regex.Replace(sb.ToString(), @"#.+", string.Empty);
  375:  
  376:             s = Regex.Replace(s, @"[\r\n]{2,}", "\r\n");
  377:  
  378:             sb = new StringBuilder(s);
  379:         }
  380:  
  381:         ////////////////////////////////////////////////////////////////////////////   
  382:  
  383:         /// <summary>
  384:         ///
  385:         /// </summary>
  386:         public static void ConvertArrayListContentToString(List<string> list, ref StringBuilder sb, ref string result)
  387:         {
  388:             if (list != null && list.Count > 0)
  389:             {
  390:                 sb = new StringBuilder(list.Count * 1000);
  391:  
  392:                 foreach (string u in list) sb.Append(u + "\n");
  393:  
  394:                 result = string.Empty;
  395:             }
  396:             else
  397:             {
  398:                 sb = new StringBuilder(1);
  399:  
  400:                 result = "Success: No records were found. ";
  401:             }
  402:         }
  403:  
  404:         ////////////////////////////////////////////////////////////////////////////   
  405:  
  406:         /// <summary>
  407:         ///
  408:         /// </summary>
  409:         public static void ConvertListContentToString(List<string> list, ref StringBuilder sb, ref string result)
  410:         {
  411:             if (list != null && list.Count > 0)
  412:             {
  413:                 sb = new StringBuilder(list.Count * 1000);
  414:  
  415:                 foreach (string u in list) sb.Append(u + "\n");
  416:  
  417:                 result = string.Empty;
  418:             }
  419:             else
  420:             {
  421:                 sb = new StringBuilder(1);
  422:  
  423:                 result = "Success: No records were found. ";
  424:             }
  425:         }
  426:  
  427:         ////////////////////////////////////////////////////////////////////////////
  428:         ////////////////////////////////////////////////////////////////////////////
  429:  
  430:         /// <summary>
  431:         ///
  432:         /// </summary>
  433:         public static string View(object item, string name)
  434:         {
  435:             ViewButtonColumnType buttonColumnType;
  436:  
  437:             buttonColumnType = ViewButtonColumnType.NoButtons;
  438:  
  439:             return View(item, name, buttonColumnType, null);
  440:         }
  441:  
  442:         ////////////////////////////////////////////////////////////////////////////
  443:  
  444:         /// <summary>
  445:         ///
  446:         /// </summary>
  447:         public static string View(object item, ViewButtonColumnType buttonColumnType)
  448:         {
  449:             return View(item, null, buttonColumnType, null);
  450:         }
  451:  
  452:         ////////////////////////////////////////////////////////////////////////////
  453:  
  454:         /// <summary>
  455:         ///
  456:         /// </summary>
  457:         public static string View(object item, ViewButtonColumnType buttonColumnType, Ia.Ftn.Cl.Models.StaffIdentityUser currentStaffIdentityUser)
  458:         {
  459:             return View(item, null, buttonColumnType, currentStaffIdentityUser);
  460:         }
  461:  
  462:         ////////////////////////////////////////////////////////////////////////////
  463:  
  464:         /// <summary>
  465:         ///
  466:         /// </summary>
  467:         public static string View(object item, Ia.Ftn.Cl.Models.StaffIdentityUser currentStaffIdentityUser)
  468:         {
  469:             ViewButtonColumnType buttonColumnType;
  470:  
  471:             // below: default is no buttons
  472:             buttonColumnType = ViewButtonColumnType.NoButtons;
  473:  
  474:             return View(item, null, buttonColumnType, currentStaffIdentityUser);
  475:         }
  476:  
  477:         ////////////////////////////////////////////////////////////////////////////
  478:  
  479:         /// <summary>
  480:         ///
  481:         /// </summary>
  482:         public static string View(object item, string name, Ia.Ftn.Cl.Models.StaffIdentityUser currentStaffIdentityUser)
  483:         {
  484:             ViewButtonColumnType buttonColumnType;
  485:  
  486:             // below: default is no buttons
  487:             buttonColumnType = ViewButtonColumnType.NoButtons;
  488:  
  489:             return View(item, name, buttonColumnType, currentStaffIdentityUser);
  490:         }
  491:  
  492:         ////////////////////////////////////////////////////////////////////////////
  493:  
  494:         /// <summary>
  495:         ///
  496:         /// </summary>
  497:         public static string View(object item, string name, ViewButtonColumnType buttonColumnType)
  498:         {
  499:             return View(item, name, buttonColumnType, null);
  500:         }
  501:  
  502:         ////////////////////////////////////////////////////////////////////////////
  503:         ////////////////////////////////////////////////////////////////////////////
  504:  
  505:         /// <summary>
  506:         ///
  507:         /// </summary>
  508:         public static string View(object item, string propertyName, ViewButtonColumnType buttonColumnType, Ia.Ftn.Cl.Models.StaffIdentityUser currentStaffIdentityUser)
  509:         {
  510:             bool itemKnown;
  511:             int areaId;
  512:             string itemFullName, s, text, labelText, hyperLinkText, hyperLinkNavigateUrl, hyperLinkTargetBlank, textBoxText, ImageUrl, ImageToolTip, firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket, arabicNameBracketParentArabicNameBracket;
  513:             string userId;//, _userId;
  514:             List<Ia.Ftn.Cl.Models.StaffIdentityUser> userList;
  515:  
  516:             labelText = string.Empty;
  517:             hyperLinkText = string.Empty;
  518:             hyperLinkNavigateUrl = string.Empty;
  519:             hyperLinkTargetBlank = string.Empty;
  520:             textBoxText = string.Empty;
  521:  
  522:             ImageUrl = string.Empty;
  523:             ImageToolTip = string.Empty;
  524:  
  525:  
  526:             // below: initialize according to ID of parent
  527:             Ia.Ftn.Cl.Models.Report report;
  528:             Ia.Ftn.Cl.Models.ReportHistory reportHistory;
  529:             Ia.Ftn.Cl.Models.ServiceRequest serviceRequest;
  530:             Ia.Ftn.Cl.Models.ServiceRequestHistory serviceRequestHistory;
  531:             Ia.Ftn.Cl.Models.ServiceRequestOnt serviceRequestOnt;
  532:             Ia.Ftn.Cl.Models.ServiceRequestOntDetail serviceRequestOntDetail;
  533:             Ia.Ftn.Cl.Models.ServiceRequestAdministrativeIssue serviceRequestAdministrativeIssue;
  534:             Ia.Ftn.Cl.Models.Ui.Huawei.Sbr sbr;
  535:             Ia.Ftn.Cl.Models.Huawei.Owsbr owsbr;
  536:             Ia.Ftn.Cl.Models.Huawei.Seruattr seruattr;
  537:             Ia.Ftn.Cl.Models.Ericsson.AxeSubscriber axeSubscriber;
  538:             Ia.Ftn.Cl.Models.Siemens.EwsdSubscriber ewsdSubscriber;
  539:             Ia.Ftn.Cl.Models.Business.NetworkDesignDocument.Ont nddOnt;
  540:             Ia.Ftn.Cl.Models.Ont ont;
  541:             Ia.Ftn.Cl.Models.OntOntPots ontOntPots;
  542:             Ia.Ftn.Cl.Models.Ui.ServiceRequestService serviceRequestService;
  543:             Ia.Ftn.Cl.Models.Access access;
  544:             Ia.Ftn.Cl.Models.Ui.Service2 service2;
  545:             Ia.Ftn.Cl.Models.Ui.Nokia.AgcfGatewayRecord agcfGatewayRecord;
  546:             Ia.Ftn.Cl.Models.Ui.Nokia.AgcfEndpoint agcfEndpoint;
  547:             Ia.Ftn.Cl.Models.Huawei.Mgw mgw;
  548:             Ia.Ftn.Cl.Models.Huawei.Asbr asbr;
  549:             Ia.Ftn.Cl.Models.Ui.Nokia.SubParty subParty;
  550:             Ia.Ftn.Cl.Models.Ui.Nokia.Subscriber subscriber;
  551:             Ia.Ftn.Cl.Models.OntServiceVoip ontServiceVoip;
  552:             Ia.Ftn.Cl.Models.Huawei.EmsDev emsDev;
  553:             Ia.Ftn.Cl.Models.Huawei.EmsBoard emsBoard;
  554:             Ia.Ftn.Cl.Models.Huawei.EmsPort emsPort;
  555:             Ia.Ftn.Cl.Models.Ui.Huawei.EmsOnt emsOnt;
  556:             Ia.Ftn.Cl.Models.Huawei.EmsOntSipInfo emsOntSipInfo;
  557:             Ia.Ftn.Cl.Models.Huawei.EmsVoipPstnUser emsVoipPstnUser;
  558:             Ia.Ftn.Cl.Models.Huawei.EmsVag emsVag;
  559:             Ia.Ftn.Cl.Models.StaffIdentityUser staffIdentityUser;
  560:             Ia.Ftn.Cl.Models.Contact contact;
  561:             Ia.Ftn.Cl.Models.ServiceExemption serviceExemption;
  562:             Ia.Ftn.Cl.Models.Ui.ReportAccessServiceRequest reportAccessServiceRequest;
  563:             Ia.Ftn.Cl.Models.Business.Service.KuwaitFtnArea kuwaitFtnArea;
  564:             Ia.Ftn.Cl.Models.Business.NetworkDesignDocument.Vendor vendor;
  565:             Ia.Ftn.Cl.Models.Ui.Maintenance.AccessFamilyTypeAreaBlock accessFamilyTypeInAreaBlock;
  566:             Ia.Ftn.Cl.Models.Event @event;
  567:             Ia.Ftn.Cl.Models.Business.ServiceNddOntAccessName serviceAccessName;
  568:             Ia.Ftn.Cl.Models.Business.ServiceNddOntAccessNameAddress serviceAccessNameAddress;
  569:             Ia.Ftn.Cl.Models.Business.Huawei.Dev.MsanDev.Lic msanDevLic;
  570:  
  571:             areaId = 0;
  572:             userId = string.Empty;
  573:             itemFullName = item.GetType().FullName;
  574:  
  575:             //if (e.Row.RowType == DataControlRowType.Header || e.Row.RowType == DataControlRowType.Footer || e.Row.RowType == DataControlRowType.DataRow)
  576:             //{
  577:             report = null;
  578:             reportHistory = null;
  579:             serviceRequest = null;
  580:             serviceRequestHistory = null;
  581:             serviceRequestOnt = null;
  582:             serviceRequestOntDetail = null;
  583:             serviceRequestAdministrativeIssue = null;
  584:             sbr = null;
  585:             owsbr = null;
  586:             seruattr = null;
  587:             axeSubscriber = null;
  588:             ewsdSubscriber = null;
  589:             agcfGatewayRecord = null;
  590:             agcfEndpoint = null;
  591:             mgw = null;
  592:             asbr = null;
  593:             subParty = null;
  594:             subscriber = null;
  595:             nddOnt = null;
  596:             ont = null;
  597:             serviceRequestService = null;
  598:             access = null;
  599:             ontOntPots = null;
  600:             ontServiceVoip = null;
  601:             emsDev = null;
  602:             emsBoard = null;
  603:             emsPort = null;
  604:             emsOnt = null;
  605:             emsOntSipInfo = null;
  606:             emsVoipPstnUser = null;
  607:             emsVag = null;
  608:             service2 = null;
  609:             staffIdentityUser = null;
  610:             contact = null;
  611:             serviceExemption = null;
  612:             reportAccessServiceRequest = null;
  613:             kuwaitFtnArea = null;
  614:             vendor = null;
  615:             accessFamilyTypeInAreaBlock = null;
  616:             @event = null;
  617:             serviceAccessName = null;
  618:             serviceAccessNameAddress = null;
  619:             msanDevLic = null;
  620:  
  621:             itemKnown = true;
  622:  
  623:             switch (itemFullName)
  624:             {
  625:                 case "Ia.Ftn.Cl.Models.Report":
  626:                     {
  627:                         report = item as Ia.Ftn.Cl.Models.Report;
  628:                         break;
  629:                     }
  630:                 case "Ia.Ftn.Cl.Models.ReportHistory":
  631:                     {
  632:                         reportHistory = item as Ia.Ftn.Cl.Models.ReportHistory;
  633:                         break;
  634:                     }
  635:                 case "Ia.Ftn.Cl.Models.Ui.ReportAccessServiceRequest":
  636:                     {
  637:                         reportAccessServiceRequest = item as Ia.Ftn.Cl.Models.Ui.ReportAccessServiceRequest;
  638:                         break;
  639:                     }
  640:                 case "Ia.Ftn.Cl.Models.ServiceRequest":
  641:                     {
  642:                         serviceRequest = item as Ia.Ftn.Cl.Models.ServiceRequest;
  643:                         break;
  644:                     }
  645:                 case "Ia.Ftn.Cl.Models.ServiceRequestHistory":
  646:                     {
  647:                         serviceRequestHistory = item as Ia.Ftn.Cl.Models.ServiceRequestHistory;
  648:                         break;
  649:                     }
  650:                 case "Ia.Ftn.Cl.Models.ServiceRequestOnt":
  651:                     {
  652:                         serviceRequestOnt = item as Ia.Ftn.Cl.Models.ServiceRequestOnt;
  653:                         break;
  654:                     }
  655:                 case "Ia.Ftn.Cl.Models.ServiceRequestOntDetail":
  656:                     {
  657:                         serviceRequestOntDetail = item as Ia.Ftn.Cl.Models.ServiceRequestOntDetail;
  658:                         break;
  659:                     }
  660:                 case "Ia.Ftn.Cl.Models.ServiceRequestAdministrativeIssue":
  661:                     {
  662:                         serviceRequestAdministrativeIssue = item as Ia.Ftn.Cl.Models.ServiceRequestAdministrativeIssue;
  663:                         break;
  664:                     }
  665:                 case "Ia.Ftn.Cl.Models.Ui.Huawei.Sbr":
  666:                     {
  667:                         sbr = item as Ia.Ftn.Cl.Models.Ui.Huawei.Sbr;
  668:                         break;
  669:                     }
  670:                 case "Ia.Ftn.Cl.Models.Huawei.Owsbr":
  671:                     {
  672:                         owsbr = item as Ia.Ftn.Cl.Models.Huawei.Owsbr;
  673:                         break;
  674:                     }
  675:                 case "Ia.Ftn.Cl.Models.Huawei.Seruattr":
  676:                     {
  677:                         seruattr = item as Ia.Ftn.Cl.Models.Huawei.Seruattr;
  678:                         break;
  679:                     }
  680:                 case "Ia.Ftn.Cl.Models.Ericsson.AxeSubscriber":
  681:                     {
  682:                         axeSubscriber = item as Ia.Ftn.Cl.Models.Ericsson.AxeSubscriber;
  683:                         break;
  684:                     }
  685:                 case "Ia.Ftn.Cl.Models.Siemens.EwsdSubscriber":
  686:                     {
  687:                         ewsdSubscriber = item as Ia.Ftn.Cl.Models.Siemens.EwsdSubscriber;
  688:                         break;
  689:                     }
  690:                 case "Ia.Ftn.Cl.Models.Ui.Nokia.AgcfGatewayRecord":
  691:                     {
  692:                         agcfGatewayRecord = item as Ia.Ftn.Cl.Models.Ui.Nokia.AgcfGatewayRecord;
  693:                         break;
  694:                     }
  695:                 case "Ia.Ftn.Cl.Models.Ui.Nokia.AgcfEndpoint":
  696:                     {
  697:                         agcfEndpoint = item as Ia.Ftn.Cl.Models.Ui.Nokia.AgcfEndpoint;
  698:                         break;
  699:                     }
  700:                 case "Ia.Ftn.Cl.Models.Huawei.Mgw":
  701:                     {
  702:                         mgw = item as Ia.Ftn.Cl.Models.Huawei.Mgw;
  703:                         break;
  704:                     }
  705:                 case "Ia.Ftn.Cl.Models.Huawei.Asbr":
  706:                     {
  707:                         asbr = item as Ia.Ftn.Cl.Models.Huawei.Asbr;
  708:                         break;
  709:                     }
  710:                 case "Ia.Ftn.Cl.Models.Ui.Nokia.SubParty":
  711:                     {
  712:                         subParty = item as Ia.Ftn.Cl.Models.Ui.Nokia.SubParty;
  713:                         break;
  714:                     }
  715:                 case "Ia.Ftn.Cl.Models.Ui.Nokia.Subscriber":
  716:                     {
  717:                         subscriber = item as Ia.Ftn.Cl.Models.Ui.Nokia.Subscriber;
  718:                         break;
  719:                     }
  720:                 case "Ia.Ftn.Cl.Models.Business.NetworkDesignDocument+Ont": // "...+Ont"
  721:                     {
  722:                         nddOnt = item as Ia.Ftn.Cl.Models.Business.NetworkDesignDocument.Ont;
  723:                         break;
  724:                     }
  725:                 case "Ia.Ftn.Cl.Models.Ont":
  726:                     {
  727:                         ont = item as Ia.Ftn.Cl.Models.Ont;
  728:                         break;
  729:                     }
  730:                 case "Ia.Ftn.Cl.Models.OntOntPots":
  731:                     {
  732:                         ontOntPots = item as Ia.Ftn.Cl.Models.OntOntPots;
  733:                         break;
  734:                     }
  735:                 case "Ia.Ftn.Cl.Models.Ui.ServiceRequestService":
  736:                     {
  737:                         serviceRequestService = item as Ia.Ftn.Cl.Models.Ui.ServiceRequestService;
  738:                         break;
  739:                     }
  740:                 case "Ia.Ftn.Cl.Models.Access":
  741:                     {
  742:                         access = item as Ia.Ftn.Cl.Models.Access;
  743:                         break;
  744:                     }
  745:                 case "Ia.Ftn.Cl.Models.Ui.Service2":
  746:                     {
  747:                         service2 = item as Ia.Ftn.Cl.Models.Ui.Service2;
  748:                         break;
  749:                     }
  750:                 case "Ia.Ftn.Cl.Models.OntServiceVoip":
  751:                     {
  752:                         ontServiceVoip = item as Ia.Ftn.Cl.Models.OntServiceVoip;
  753:                         break;
  754:                     }
  755:                 case "Ia.Ftn.Cl.Models.Huawei.EmsDev":
  756:                     {
  757:                         emsDev = item as Ia.Ftn.Cl.Models.Huawei.EmsDev;
  758:                         break;
  759:                     }
  760:                 case "Ia.Ftn.Cl.Models.Huawei.EmsBoard":
  761:                     {
  762:                         emsBoard = item as Ia.Ftn.Cl.Models.Huawei.EmsBoard;
  763:                         break;
  764:                     }
  765:                 case "Ia.Ftn.Cl.Models.Huawei.EmsPort":
  766:                     {
  767:                         emsPort = item as Ia.Ftn.Cl.Models.Huawei.EmsPort;
  768:                         break;
  769:                     }
  770:                 case "Ia.Ftn.Cl.Models.Ui.Huawei.EmsOnt":
  771:                     {
  772:                         emsOnt = item as Ia.Ftn.Cl.Models.Ui.Huawei.EmsOnt;
  773:                         break;
  774:                     }
  775:                 case "Ia.Ftn.Cl.Models.Huawei.EmsOntSipInfo":
  776:                     {
  777:                         emsOntSipInfo = item as Ia.Ftn.Cl.Models.Huawei.EmsOntSipInfo;
  778:                         break;
  779:                     }
  780:                 case "Ia.Ftn.Cl.Models.Huawei.EmsVoipPstnUser":
  781:                     {
  782:                         emsVoipPstnUser = item as Ia.Ftn.Cl.Models.Huawei.EmsVoipPstnUser;
  783:                         break;
  784:                     }
  785:                 case "Ia.Ftn.Cl.Models.Huawei.EmsVag":
  786:                     {
  787:                         emsVag = item as Ia.Ftn.Cl.Models.Huawei.EmsVag;
  788:                         break;
  789:                     }
  790:                 case "Ia.Ftn.Cl.Models.StaffIdentityUser":
  791:                     {
  792:                         staffIdentityUser = item as Ia.Ftn.Cl.Models.StaffIdentityUser;
  793:                         break;
  794:                     }
  795:                 case "Ia.Ftn.Cl.Models.Contact":
  796:                     {
  797:                         contact = item as Ia.Ftn.Cl.Models.Contact;
  798:                         break;
  799:                     }
  800:                 case "Ia.Ftn.Cl.Models.Ui.Maintenance.AccessFamilyTypeAreaBlock":
  801:                     {
  802:                         accessFamilyTypeInAreaBlock = item as Ia.Ftn.Cl.Models.Ui.Maintenance.AccessFamilyTypeAreaBlock;
  803:                         break;
  804:                     }
  805:                 case "Ia.Ftn.Cl.Models.Event":
  806:                     {
  807:                         @event = item as Ia.Ftn.Cl.Models.Event;
  808:                         break;
  809:                     }
  810:                 case "Ia.Ftn.Cl.Models.Business.Service.KuwaitFtnArea":
  811:                     {
  812:                         kuwaitFtnArea = item as Ia.Ftn.Cl.Models.Business.Service.KuwaitFtnArea;
  813:                         break;
  814:                     }
  815:                 case "Ia.Ftn.Cl.Models.ServiceExemption":
  816:                     {
  817:                         serviceExemption = item as Ia.Ftn.Cl.Models.ServiceExemption;
  818:                         break;
  819:                     }
  820:                 case "Ia.Ftn.Cl.Models.Business.ServiceNddOntAccessName":
  821:                     {
  822:                         serviceAccessName = item as Ia.Ftn.Cl.Models.Business.ServiceNddOntAccessName;
  823:                         break;
  824:                     }
  825:                 case "Ia.Ftn.Cl.Models.Business.ServiceNddOntAccessNameAddress":
  826:                     {
  827:                         serviceAccessNameAddress = item as Ia.Ftn.Cl.Models.Business.ServiceNddOntAccessNameAddress;
  828:                         break;
  829:                     }
  830:                 case "Ia.Ftn.Cl.Models.Business.Huawei.Dev.MsanDev.Lic":
  831:                     {
  832:                         msanDevLic = item as Ia.Ftn.Cl.Models.Business.Huawei.Dev.MsanDev.Lic;
  833:                         break;
  834:                     }
  835:                 default:
  836:                     {
  837:                         itemKnown = false;
  838:                         break;
  839:                     }
  840:             }
  841:  
  842:  
  843:             if (itemKnown)
  844:             {
  845:  
  846:                 /*
  847: if (report != null)
  848: {
  849:     if (staffIdentityUser != null)
  850:     {
  851:         if (Ia.Ftn.Cl.Models.Data.Report.ReportResponsibilityByStaffGuidDictionary.ContainsKey(staffIdentityUser.StaffIdentityUser.Id))
  852:         {
  853:             if (Ia.Ftn.Cl.Models.Data.Report.ReportResponsibilityByStaffGuidDictionary[staffIdentityUser.StaffIdentityUser.Id].Any(u => u == report.Id))
  854:             {
  855:                 //e.Row.CssClass = "selected-row-style";
  856:             }
  857:             else { }
  858:         }
  859:         else { }
  860:     }
  861:     else { }
  862: }
  863: else { }
  864: */
  865:  
  866:                 try
  867:                 {
  868:                     if (!string.IsNullOrEmpty(propertyName))
  869:                     {
  870:                         switch (propertyName) //l.ID)
  871:                         {
  872:                             case "reportServiceLabel":
  873:                                 {
  874:                                     s = Ia.Ftn.Cl.Models.Business.Service.ServiceName(report.Service, report.ServiceType);
  875:                                     labelText = s;
  876:                                     break;
  877:                                 }
  878:                             case "reportStatusLabel": labelText = Ia.Ftn.Cl.Models.Data.Report.StatusColoredDictionary[report.Status].ToString(); break;
  879:                             case "reportSeverityLabel": labelText = Ia.Ftn.Cl.Models.Data.Report.SeverityColoredDictionary[report.Severity].ToString(); break;
  880:                             case "reportCategoryLabel": labelText = Ia.Ftn.Cl.Models.Data.Report.CategoryDictionary[report.Category].ToString(); break;
  881:                             case "reportAreaLabel": labelText = Ia.Ftn.Cl.Models.Data.Report.CategoryAreaColoredDictionary[report.Area].ToString(); break;
  882:                             case "reportPriorityLabel": labelText = Ia.Ftn.Cl.Models.Data.Report.PriorityColoredDictionary[report.Priority].ToString(); break;
  883:                             case "reportDetailLabel":
  884:                                 {
  885:                                     labelText = Ia.Cl.Models.Html.Decode(report.Detail);
  886:  
  887:                                     SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(); //ref e, ref l);
  888:  
  889:                                     break;
  890:                                 }
  891:                             case "reportLastHistoricResolutionLabel":
  892:                                 {
  893:                                     labelText = (report.LastReportHistory != null) ? Ia.Ftn.Cl.Models.Data.Report.ResolutionIdToEnglishArabicColoredNameDictionary[report.LastReportHistory.Resolution].ToString() : string.Empty;
  894:  
  895:                                     break;
  896:                                 }
  897:                             case "reportLastHistoricEstimateLabel": labelText = (report.LastReportHistory != null) ? labelText = Ia.Ftn.Cl.Models.Data.Report.EstimateEnglishAndArabicColoredDictionary[report.LastReportHistory.Estimate].ToString() : string.Empty; break;
  898:                             case "reportLastHistoricStaffLabel":
  899:                                 {
  900:                                     //labelText = (report.LastReportHistory != null) ? labelText = (from _s in Ia.Ftn.Cl.Models.Data.StaffIdentityUser.List() where _s.Id == report.LastReportHistory.StaffIdentityUser.Id select _s.FirstAndMiddleName).SingleOrDefault() : string.Empty;
  901:  
  902:                                     SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(); //ref e, ref l);
  903:  
  904:                                     break;
  905:                                 }
  906:                             case "reportLastHistoricUpdatedLabel":
  907:                                 {
  908:                                     var dateTime = (report.LastReportHistory != null) ? report.LastReportHistory.Updated : report.Updated;
  909:  
  910:                                     labelText = dateTime.ToString("yyyy-MM-dd hh:mm");
  911:  
  912:                                     break;
  913:                                 }
  914:                             case "reportLastReportAndHistoricStaffFrameworkLabel":
  915:                                 {
  916:                                     if (report.LastReportHistory != null)
  917:                                     {
  918:                                         if (!string.IsNullOrEmpty(report.LastReportHistory.FrameworkId))
  919:                                         {
  920:                                             arabicNameBracketParentArabicNameBracket = (from f in Ia.Ftn.Cl.Models.Data.Administration.FrameworkList
  921:                                                                                         where f.Id == report.LastReportHistory.FrameworkId
  922:                                                                                         select f.ArabicNameBracketParentArabicNameBracket).SingleOrDefault();
  923:  
  924:                                             labelText = arabicNameBracketParentArabicNameBracket;
  925:                                         }
  926:                                         else if (report.LastReportHistory.StaffIdentityUser != null)
  927:                                         {
  928:                                             firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket = (from _s in Ia.Ftn.Cl.Models.Data.StaffIdentityUser.List()
  929:                                                                                                                                where _s.Id == report.LastReportHistory.StaffIdentityUser.Id
  930:                                                                                                                                select _s.FirstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket).SingleOrDefault();
  931:  
  932:                                             labelText = firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket;
  933:                                         }
  934:                                     }
  935:                                     else
  936:                                     {
  937:                                         if (!string.IsNullOrEmpty(report.FrameworkId))
  938:                                         {
  939:                                             arabicNameBracketParentArabicNameBracket = (from f in Ia.Ftn.Cl.Models.Data.Administration.FrameworkList
  940:                                                                                         where f.Id == report.FrameworkId
  941:                                                                                         select f.ArabicNameBracketParentArabicNameBracket).SingleOrDefault();
  942:  
  943:                                             labelText = arabicNameBracketParentArabicNameBracket;
  944:                                         }
  945:                                         else
  946:                                         {
  947:                                             firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket = (from _s in Ia.Ftn.Cl.Models.Data.StaffIdentityUser.List()
  948:                                                                                                                                where _s.Id == report.StaffIdentityUser.Id
  949:                                                                                                                                select _s.FirstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket).SingleOrDefault();
  950:  
  951:                                             labelText = firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket;
  952:                                         }
  953:                                     }
  954:  
  955:                                     SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(); //ref e, ref l);
  956:  
  957:                                     break;
  958:                                 }
  959:                             case "reportContactLabel":
  960:                                 {
  961:                                     labelText = Ia.Cl.Models.Html.Decode(report.Contact);
  962:  
  963:                                     SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(); //ref e, ref l);
  964:  
  965:                                     break;
  966:                                 }
  967:                             case "reportNoteLabel":
  968:                                 {
  969:                                     labelText = Ia.Cl.Models.Html.Decode(report.Note);
  970:  
  971:                                     SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(); //ref e, ref l);
  972:  
  973:                                     break;
  974:                                 }
  975:  
  976:  
  977:                             case "reportHistoryLastDetailOrReportDetailLabel":
  978:                                 {
  979:                                     labelText = report.LastReportHistory != null ? Ia.Cl.Models.Html.Decode(report.LastReportHistory.Detail) : Ia.Cl.Models.Html.Decode(report.Detail);
  980:  
  981:                                     SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(); //ref e, ref l);
  982:  
  983:                                     break;
  984:                                 }
  985:  
  986:                             case "reportStatusLastHistoricResolutionLabel":
  987:                                 {
  988:                                     s = Ia.Ftn.Cl.Models.Data.Report.StatusColoredDictionary[report.Status].ToString();
  989:  
  990:                                     if (report.LastReportHistory != null) s += "/" + Ia.Ftn.Cl.Models.Data.Report.ResolutionIdToEnglishArabicColoredNameDictionary[report.LastReportHistory.Resolution].ToString();
  991:  
  992:                                     labelText = s;
  993:  
  994:                                     break;
  995:                                 }
  996:  
  997:                             case "reportHistoryLastHistoricalIndicationActionResolutionLabel":
  998:                                 {
  999:                                     if (report.LastReportHistory != null)
 1000:                                     {
 1001:                                         s = Ia.Ftn.Cl.Models.Data.Report.IndicationColoredDictionary[report.LastReportHistory.Indication].ToString()
 1002:                                             + "/" + Ia.Ftn.Cl.Models.Data.Report.ActionColoredDictionary[report.LastReportHistory.Action].ToString()
 1003:                                             + "/" + Ia.Ftn.Cl.Models.Data.Report.ResolutionIdToColoredNameDictionary[report.LastReportHistory.Resolution].ToString();
 1004:                                     }
 1005:                                     else s = string.Empty;
 1006:  
 1007:                                     labelText = s;
 1008:  
 1009:                                     break;
 1010:                                 }
 1011:  
 1012:                             case "reportAccessServiceRequestLastHistoricResolutionLabel": labelText = (reportAccessServiceRequest.Report.LastReportHistory != null) ? Ia.Ftn.Cl.Models.Data.Report.ResolutionIdToEnglishArabicColoredNameDictionary[reportAccessServiceRequest.Report.LastReportHistory.Resolution].ToString() : string.Empty; break;
 1013:                             case "reportAccessServiceRequestServiceFlatTermIdLabel": labelText = "?"; break;
 1014:                             case "reportAccessServiceRequestLastHistoricActionLabel": labelText = (reportAccessServiceRequest.Report.LastReportHistory != null) ? Ia.Ftn.Cl.Models.Data.Report.ActionColoredDictionary[reportAccessServiceRequest.Report.LastReportHistory.Action].ToString() : string.Empty; break;
 1015:                             case "reportAccessServiceRequestServiceTypeLabel": labelText = reportAccessServiceRequest.Report.ServiceType.ToString(); break;
 1016:                             case "reportAccessServiceRequestContactLabel": labelText = Ia.Cl.Models.Html.Decode(reportAccessServiceRequest.Report.Contact); break;
 1017:  
 1018:                             case "reportAccessServiceRequestAddressLabel":
 1019:                                 {
 1020:                                     if (reportAccessServiceRequest.Access != null)
 1021:                                     {
 1022:                                         labelText = Ia.Cl.Models.Html.Decode(reportAccessServiceRequest.Access.Address);
 1023:                                     }
 1024:  
 1025:                                     break;
 1026:                                 }
 1027:  
 1028:                             case "reportAccessServiceRequestDetailLabel": labelText = (reportAccessServiceRequest.Report.LastReportHistory != null) ? Ia.Cl.Models.Html.Decode(reportAccessServiceRequest.Report.LastReportHistory.Detail) : string.Empty; break;
 1029:                             case "reportAccessServiceRequestNoteLabel": labelText = (reportAccessServiceRequest.Report.LastReportHistory != null) ? Ia.Cl.Models.Html.Decode(reportAccessServiceRequest.Report.LastReportHistory.Note) : string.Empty; break;
 1030:                             case "reportAccessServiceRequestStaffFrameworkLabel":
 1031:                                 {
 1032:                                     if (reportAccessServiceRequest.Report.LastReportHistory != null)
 1033:                                     {
 1034:                                         if (Ia.Ftn.Cl.Models.Business.Administration.IsFrameworkId(reportAccessServiceRequest.Report.LastReportHistory.StaffIdentityUser.Id))
 1035:                                         {
 1036:                                             labelText = (from f in Ia.Ftn.Cl.Models.Data.Administration.FrameworkList where f.Id == reportAccessServiceRequest.Report.LastReportHistory.StaffIdentityUser.Id select f.ArabicName).SingleOrDefault();
 1037:                                         }
 1038:                                         //else labelText = (from _s in Ia.Ftn.Cl.Models.Data.StaffIdentityUser.List() where _s.Id == reportAccessServiceRequest.Report.LastReportHistory.StaffIdentityUser.Id select _s.FirstAndMiddleName).SingleOrDefault();
 1039:  
 1040:                                         if (!string.IsNullOrEmpty(reportAccessServiceRequest.Report.LastReportHistory.FrameworkId))
 1041:                                         {
 1042:                                             labelText = (from f in Ia.Ftn.Cl.Models.Data.Administration.FrameworkList
 1043:                                                          where f.Id == reportAccessServiceRequest.Report.LastReportHistory.FrameworkId
 1044:                                                          select f.ArabicName).SingleOrDefault();
 1045:                                         }
 1046:                                         else if (reportAccessServiceRequest.Report.LastReportHistory != null)
 1047:                                         {
 1048:                                             labelText = (from _s in Ia.Ftn.Cl.Models.Data.StaffIdentityUser.List()
 1049:                                                          where _s.Id == reportAccessServiceRequest.Report.LastReportHistory.StaffIdentityUser.Id
 1050:                                                          select _s.FirstAndMiddleName).SingleOrDefault();
 1051:                                         }
 1052:                                     }
 1053:                                     else
 1054:                                     {
 1055:                                         labelText = string.Empty;
 1056:                                     }
 1057:  
 1058:                                     break;
 1059:                                 }
 1060:  
 1061:                             case "reportHistoryLastNoteOrReportNoteLabel":
 1062:                                 {
 1063:                                     labelText = report.LastReportHistory != null ? Ia.Cl.Models.Html.Decode(report.LastReportHistory.Note) : Ia.Cl.Models.Html.Decode(report.Note);
 1064:  
 1065:                                     SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(); //ref e, ref l);
 1066:  
 1067:                                     break;
 1068:                                 }
 1069:                             case "reportHistoryIndicationLabel":
 1070:                                 {
 1071:                                     labelText = Ia.Ftn.Cl.Models.Data.Report.IndicationColoredDictionary.ContainsKey(reportHistory.Indication) ? Ia.Ftn.Cl.Models.Data.Report.IndicationColoredDictionary[reportHistory.Indication].ToString() : string.Empty;
 1072:  
 1073:                                     break;
 1074:                                 }
 1075:                             case "reportHistoryAreaLabel":
 1076:                                 {
 1077:                                     if (Ia.Ftn.Cl.Models.Data.Report.CategoryAreaColoredDictionary.ContainsKey(reportHistory.Area))
 1078:                                     {
 1079:                                         labelText = Ia.Ftn.Cl.Models.Data.Report.CategoryAreaColoredDictionary[reportHistory.Area].ToString();
 1080:                                     }
 1081:                                     else labelText = "Error: Area '" + reportHistory.Area + "' not found. ";
 1082:  
 1083:                                     break;
 1084:                                 };
 1085:                             case "reportHistoryActionLabel":
 1086:                                 {
 1087:                                     labelText = Ia.Ftn.Cl.Models.Data.Report.ActionColoredDictionary.ContainsKey(reportHistory.Action) ? Ia.Ftn.Cl.Models.Data.Report.ActionColoredDictionary[reportHistory.Action].ToString() : string.Empty;
 1088:  
 1089:                                     break;
 1090:                                 }
 1091:                             case "reportHistoryResolutionLabel":
 1092:                                 {
 1093:                                     labelText = Ia.Ftn.Cl.Models.Data.Report.ResolutionIdToEnglishArabicColoredNameDictionary.ContainsKey(reportHistory.Resolution) ? Ia.Ftn.Cl.Models.Data.Report.ResolutionIdToEnglishArabicColoredNameDictionary[reportHistory.Resolution].ToString() : string.Empty;
 1094:  
 1095:                                     break;
 1096:                                 }
 1097:                             case "reportHistoryEstimateLabel": labelText = Ia.Ftn.Cl.Models.Data.Report.EstimateEnglishAndArabicColoredDictionary[reportHistory.Estimate].ToString(); break;
 1098:                             case "reportHistoryDetailLabel":
 1099:                                 {
 1100:                                     labelText = Ia.Cl.Models.Html.Decode(reportHistory.Detail);
 1101:  
 1102:                                     SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(); //ref e, ref l);
 1103:  
 1104:                                     break;
 1105:                                 }
 1106:                             case "reportHistoryNoteLabel":
 1107:                                 {
 1108:                                     labelText = Ia.Cl.Models.Html.Decode(reportHistory.Note);
 1109:  
 1110:                                     SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(); //ref e, ref l);
 1111:  
 1112:                                     break;
 1113:                                 }
 1114:                             case "reportHistoryStaffFrameworkLabel":
 1115:                                 {
 1116:                                     if (!string.IsNullOrEmpty(reportHistory.FrameworkId))
 1117:                                     {
 1118:                                         arabicNameBracketParentArabicNameBracket = (from f in Ia.Ftn.Cl.Models.Data.Administration.FrameworkList
 1119:                                                                                     where f.Id == reportHistory.FrameworkId
 1120:                                                                                     select f.ArabicNameBracketParentArabicNameBracket).SingleOrDefault();
 1121:  
 1122:                                         labelText = arabicNameBracketParentArabicNameBracket;
 1123:                                     }
 1124:                                     else if (reportHistory.StaffIdentityUser != null)
 1125:                                     {
 1126:                                         firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket = (from _s in Ia.Ftn.Cl.Models.Data.StaffIdentityUser.List()
 1127:                                                                                                                            where _s.Id == reportHistory.StaffIdentityUser.Id
 1128:                                                                                                                            select _s.FirstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket).SingleOrDefault();
 1129:  
 1130:                                         labelText = firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket;
 1131:                                     }
 1132:  
 1133:                                     SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(); //ref e, ref l);
 1134:  
 1135:                                     break;
 1136:                                 }
 1137:                             case "seruattrRouteNameLabel": labelText = Ia.Ftn.Cl.Models.Business.Huawei.Seruattr.RnidxRouteName[seruattr.RNIDX2]; break;
 1138:                             case "axeSubscriberRouteNameLabel": labelText = Ia.Ftn.Cl.Models.Business.Ericsson.Subscriber.RouteName(axeSubscriber.SCL); break;
 1139:                             case "serviceRequestStatusLabel": labelText = Ia.Ftn.Cl.Models.Data.ServiceRequest.StatusSortedList[serviceRequest.Status].ToString(); break;
 1140:                             case "serviceRequestCustomerCategoryIdLabel": labelText = Ia.Ftn.Cl.Models.Data.ServiceRequest.CustomerCategorySortedList[serviceRequest.CustomerCategoryId].ToString(); break;
 1141:                             case "serviceRequestServiceIdLabel":
 1142:                                 {
 1143:                                     if (Ia.Ftn.Cl.Models.Data.ServiceRequest.ServiceSortedList.ContainsKey(serviceRequest.ServiceId))
 1144:                                     {
 1145:                                         labelText = Ia.Ftn.Cl.Models.Data.ServiceRequest.ServiceSortedList[serviceRequest.ServiceId].ToString();
 1146:                                     }
 1147:                                     else labelText = "Error: Service '" + serviceRequest.ServiceId + "' not found. ";
 1148:  
 1149:                                     break;
 1150:                                 };
 1151:  
 1152:                             case "serviceRequestHistoryStatusLabel": labelText = Ia.Ftn.Cl.Models.Data.ServiceRequest.SystemCode[serviceRequestHistory.Status].ToString(); break;
 1153:                             case "serviceRequestHistoryEndDateTimeLabel":
 1154:                                 {
 1155:                                     if (serviceRequestHistory.EndDateTime == Ia.Ftn.Cl.Models.Business.Administration.SqlFriendlyJanuary1st1753NullDateTime)
 1156:                                     {
 1157:                                         labelText = string.Empty;
 1158:                                     }
 1159:                                     else labelText = serviceRequestHistory.EndDateTime.ToString("yyyy-MM-dd");
 1160:  
 1161:                                     break;
 1162:                                 };
 1163:                             case "serviceRequestHistoryServiceIdLabel":
 1164:                                 {
 1165:                                     if (Ia.Ftn.Cl.Models.Data.ServiceRequest.ServiceSortedList.ContainsKey(serviceRequestHistory.ServiceId))
 1166:                                     {
 1167:                                         labelText = Ia.Ftn.Cl.Models.Data.ServiceRequest.ServiceSortedList[serviceRequestHistory.ServiceId].ToString();
 1168:                                     }
 1169:                                     else labelText = "Error: Service '" + serviceRequestHistory.ServiceId + "' not found. ";
 1170:  
 1171:                                     break;
 1172:                                 };
 1173:                             case "serviceRequestHistoryServiceCategoryIdLabel": labelText = Ia.Ftn.Cl.Models.Data.ServiceRequest.ServiceCategorySortedList[serviceRequestHistory.ServiceCategoryId].ToString(); break;
 1174:  
 1175:                             case "serviceRequestServiceCategoryIdLabel": labelText = Ia.Ftn.Cl.Models.Data.ServiceRequest.ServiceCategorySortedList[serviceRequest.ServiceCategoryId].ToString(); break;
 1176:                             case "serviceRequestCustomerNameLabel": labelText = serviceRequest.CustomerName; break;
 1177:  
 1178:                             case "serviceRequestServiceServiceTypeLabel": labelText = Ia.Ftn.Cl.Models.Data.Service.ServiceType(serviceRequestService.ServiceType).ColoredNameArabicName; break;
 1179:  
 1180:                             case "serviceRequestServiceTypeLabel": labelText = "??"; break;
 1181:                             case "serviceRequestServiceProvisionedLabel": labelText = Ia.Cl.Models.Default.YesNo(serviceRequestService.Provisioned); break;
 1182:                             case "serviceRequestServiceProvisionedArabicLabel": labelText = Ia.Cl.Models.Default.YesNoInArabic(serviceRequestService.Provisioned); break;
 1183:                             case "serviceRequestServiceCallWaitingLabel": labelText = Ia.Cl.Models.Default.YesNo(serviceRequestService.CallWaiting); break;
 1184:                             case "serviceRequestServiceCallForwardingLabel": labelText = Ia.Cl.Models.Default.YesNo(serviceRequestService.CallForwarding); break;
 1185:                             case "serviceRequestServiceAlarmCallLabel": labelText = Ia.Cl.Models.Default.YesNo(serviceRequestService.AlarmCall); break;
 1186:                             case "serviceRequestServiceInternationalCallingUserControlledLabel": labelText = Ia.Cl.Models.Default.YesNo(serviceRequestService.InternationalCallingUserControlled); break;
 1187:                             case "serviceRequestServiceInternationalCallingLabel": labelText = Ia.Cl.Models.Default.YesNo(serviceRequestService.InternationalCalling); break;
 1188:                             case "serviceRequestServiceCallerIdLabel": labelText = Ia.Cl.Models.Default.YesNo(serviceRequestService.CallerId); break;
 1189:                             case "serviceRequestServiceConferenceCallLabel": labelText = Ia.Cl.Models.Default.YesNo(serviceRequestService.ConferenceCall); break;
 1190:                             case "serviceRequestServiceAbbriviatedCallingLabel": labelText = Ia.Cl.Models.Default.YesNo(serviceRequestService.AbbriviatedCalling); break;
 1191:                             case "serviceRequestServiceCallBarringLabel": labelText = Ia.Cl.Models.Default.YesNo(serviceRequestService.CallBarring); break;
 1192:  
 1193:                             case "accessAreaLabel": labelText = (from kna in Ia.Ftn.Cl.Models.Data.Service.KuwaitFtnAreaList where kna.Id == access.AreaId select kna.ArabicName).SingleOrDefault(); break;
 1194:                             case "accessOltLabel": labelText = (from o in Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.OltList where o.Id == access.Olt select o.AmsName).SingleOrDefault(); break;
 1195:                             case "accessBlockLabel": labelText = access.Block.ToString(); break;
 1196:                             case "accessStreetLabel": labelText = access.Street; break;
 1197:                             case "accessPremisesOldLabel": labelText = access.PremisesOld; break;
 1198:                             case "accessPremisesNewLabel": labelText = access.PremisesNew; break;
 1199:                             case "accessNoteLabel": labelText = access.Note; break;
 1200:                             //case "accessStaffNameLabel": labelText = (from _s in Ia.Ftn.Cl.Models.Data.StaffIdentityUser.List() where _s.Id == access.StaffIdentityUser.Id select _s.FirstAndMiddleName).SingleOrDefault(); break;
 1201:                             case "accessOntFamilyTypeCapacityLabel":
 1202:                                 {
 1203:                                     // temp: later quickly find vendor from accessId
 1204:                                     if (access.Onts != null && access.Onts.Count > 0)
 1205:                                     {
 1206:                                         labelText = Ia.Ftn.Cl.Models.Data.Nokia.Ont.FamilyTypeStringFromId(access.Onts.FirstOrDefault().FamilyTypeId);
 1207:  
 1208:                                         labelText += " (" + Ia.Ftn.Cl.Models.Business.Nokia.Ont.PossibleNumberOfTdForOntFamilyType(access.Onts.FirstOrDefault().FamilyTypeId) + ")";
 1209:                                     }
 1210:                                     else if (access.EmsOnts != null && access.EmsOnts.Count > 0)
 1211:                                     {
 1212:                                         labelText = access.EmsOnts.FirstOrDefault().FamilyType.ToString().ToUpper();
 1213:  
 1214:                                         labelText += " (" + access.EmsOnts.FirstOrDefault().EquipmentType.TelPorts + ")";
 1215:                                     }
 1216:                                     else labelText = string.Empty;
 1217:  
 1218:                                     break;
 1219:                                 }
 1220:  
 1221:                             case "accessFamilyTypeInAreaBlockLabel": labelText = (from kna in Ia.Ftn.Cl.Models.Data.Service.KuwaitFtnAreaList where kna.Id == accessFamilyTypeInAreaBlock.AreaId select kna.NameArabicName).SingleOrDefault(); break;
 1222:  
 1223:                             case "service2ServiceTypeLabel": labelText = Ia.Ftn.Cl.Models.Data.Service.ServiceType(service2.ServiceType).ColoredNameArabicName; break;
 1224:                             case "service2PortLabel":
 1225:                                 {
 1226:                                     if (service2.Port != Ia.Ftn.Cl.Models.Business.Default.PortUndefinedOrInvalidOrUnknown)
 1227:                                     {
 1228:                                         labelText = service2.Port.ToString();
 1229:                                     }
 1230:  
 1231:                                     break;
 1232:                                 }
 1233:                             case "service2CallWaitingLabel": labelText = Ia.Cl.Models.Default.YesNo(service2.CallWaiting); break;
 1234:                             case "service2CallForwardingLabel": labelText = Ia.Cl.Models.Default.YesNo(service2.CallForwarding); break;
 1235:                             case "service2AlarmCallLabel": labelText = Ia.Cl.Models.Default.YesNo(service2.AlarmCall); break;
 1236:                             case "service2InternationalCallingUserControlledLabel": labelText = Ia.Cl.Models.Default.YesNo(service2.InternationalCallingUserControlled); break;
 1237:                             case "service2InternationalCallingLabel": labelText = Ia.Cl.Models.Default.YesNo(service2.InternationalCalling); break;
 1238:                             case "service2CallerIdLabel": labelText = Ia.Cl.Models.Default.YesNo(service2.CallerId); break;
 1239:                             case "service2ConferenceCallLabel": labelText = Ia.Cl.Models.Default.YesNo(service2.ConferenceCall); break;
 1240:                             case "service2AbbriviatedCallingLabel": labelText = Ia.Cl.Models.Default.YesNo(service2.AbbriviatedCalling); break;
 1241:                             case "service2CallBarringLabel": labelText = Ia.Cl.Models.Default.YesNo(service2.CallBarring); break;
 1242:                             case "service2ServiceSuspensionLabel": labelText = Ia.Cl.Models.Default.YesNo(service2.ServiceSuspension); break;
 1243:  
 1244:                             case "serviceRequestAdministrativeIssueTypeNameArabicNameLabel": labelText = Ia.Ftn.Cl.Models.Business.ServiceRequestAdministrativeIssue.ColoredTypeCode(serviceRequestAdministrativeIssue.Type); break;
 1245:  
 1246:                             case "isPrimaryAgcfGatewayRecordLabel": labelText = Ia.Cl.Models.Default.YesNo(agcfGatewayRecord.IsPrimary); break;
 1247:  
 1248:                             case "ontFamilyTypeLabel": labelText = Ia.Ftn.Cl.Models.Data.Nokia.Ont.FamilyTypeStringFromId(ont.FamilyTypeId); break;
 1249:                             case "ontStateIdLabel": labelText = Ia.Ftn.Cl.Models.Data.Nokia.Ams.ColoredBellcoreStateFromId(ont.StateId); break;
 1250:                             case "ontServiceVoipStateIdLabel": labelText = Ia.Ftn.Cl.Models.Data.Nokia.Ams.ColoredBellcoreStateFromId(ontServiceVoip.StateId); break;
 1251:                             case "ontServiceVoipMgcIpLabel": labelText = ontServiceVoip.MgcIp; break;
 1252:                             case "ontOntPotsStateIdLabel": labelText = Ia.Ftn.Cl.Models.Data.Nokia.Ams.ColoredBellcoreStateFromId(ontOntPots.StateId); break;
 1253:                             case "ontVendorLabel": labelText = Ia.Ftn.Cl.Models.Business.NetworkDesignDocument.Vendor.VendorNameFromId(ont.VendorId); break;
 1254:  
 1255:                             case "emsDevStateIdLabel": labelText = Ia.Ftn.Cl.Models.Data.Huawei.Ems.ColoredBellcoreStateFromId(emsDev.StateId); break;
 1256:                             case "emsOntStateIdLabel": labelText = Ia.Ftn.Cl.Models.Data.Huawei.Ems.ColoredBellcoreStateFromId(emsOnt.StateId); break;
 1257:                             case "emsOntSipInfoStateIdLabel": labelText = Ia.Ftn.Cl.Models.Data.Huawei.Ems.ColoredBellcoreStateFromId(emsOntSipInfo.StateId); break;
 1258:                             case "emsOntSipInfoEmsOntAliasLabel": labelText = emsOntSipInfo.EmsOnt.ALIAS.ToString(); break;
 1259:  
 1260:                             //case "emsVoipPstnUserStateIdLabel": text = Ia.Ftn.Cl.Models.Data.Huawei.Ems.ColoredBellcoreStateFromId(emsVoipPstnUser.StateId); break;
 1261:                             //case "emsVagStateIdLabel": text = Ia.Ftn.Cl.Models.Data.Huawei.Ems.ColoredBellcoreStateFromId(emsVag.StateId); break;
 1262:  
 1263:                             case "emsDevTypeLabel": labelText = emsDev.Type.ToString().ToUpper(); break;
 1264:                             case "emsDevResultCodeLabel": labelText = Ia.Ftn.Cl.Models.Client.Huawei.Ems.ColoredResultCodeString(emsDev.ResultCode); break;
 1265:                             case "emsOntResultCodeLabel": labelText = Ia.Ftn.Cl.Models.Client.Huawei.Ems.ColoredResultCodeString(emsOnt.ResultCode); break;
 1266:                             case "emsOntSipInfoResultCodeLabel": labelText = Ia.Ftn.Cl.Models.Client.Huawei.Ems.ColoredResultCodeString(emsOntSipInfo.ResultCode); break;
 1267:  
 1268:                             case "emsVoipPstnUserEmsDevDevLabel": labelText = Ia.Ftn.Cl.Models.Data.Huawei.Dev.EmsDevDevByEmsDevDid(emsVoipPstnUser.DID); break;
 1269:                             //case "emsVoipPstnUserResultCodeLabel": text = Ia.Ftn.Cl.Models.Client.Huawei.Ems.ColoredResultCodeString(emsVoipPstnUser.ResultCode); break;
 1270:                             //case "emsVagResultCodeLabel": text = Ia.Ftn.Cl.Models.Client.Huawei.Ems.ColoredResultCodeString(emsVag.ResultCode); break;
 1271:                             //case "emsVoipPstnUserEmsOntAliasLabel": text = emsVoipPstnUser.EmsOnt.ALIAS; break;
 1272:  
 1273:                             case "impuOwsbrUsCodeLabel": labelText = Ia.Ftn.Cl.Models.Business.Huawei.Owsbr.UsCodeColoredString(owsbr.US); break;
 1274:  
 1275:                             case "userNameLabel": labelText = staffIdentityUser.UserName; break;
 1276:                             case "userEmailLabel": labelText = staffIdentityUser.Email; break;
 1277:                             //case "userIsApprovedLabel": labelText = Ia.Cl.Models.Default.YesNo(staffIdentityUser.IsApproved); break;
 1278:                             //case "userIsOnlineLabel": labelText = Ia.Cl.Models.Default.YesNo(staffIdentityUser.IsOnline); break;
 1279:                             //case "userIsLockedOutLabel": labelText = Ia.Cl.Models.Default.YesNo(staffIdentityUser.IsLockedOut); break;
 1280:  
 1281:                             case "staffIsHeadLabel": labelText = Ia.Cl.Models.Default.YesNoInArabic(staffIdentityUser.IsHead); break;
 1282:                             case "staffFirstNameLabel": labelText = staffIdentityUser.FirstName; break;
 1283:                             case "staffMiddleNameLabel": labelText = staffIdentityUser.MiddleName; break;
 1284:                             case "staffLastNameLabel": labelText = staffIdentityUser.LastName; break;
 1285:                             //case "staffIpPbxExtensionLabel": labelText = staff.IpPbxExtension; break;
 1286:                             //case "staffEmploymentIdLabel": labelText = staff.EmploymentId.ToString(); break;
 1287:                             case "staffFrameworkIdLabel": labelText = (from f in Ia.Ftn.Cl.Models.Data.Administration.FrameworkList where f.Id == staffIdentityUser.FrameworkId select f.FullyQualifiedArabicName).SingleOrDefault(); break;
 1288:                             //case "staffIdentityUserIdLabel": labelText = Ia.Ftn.Cl.Models.Identity.UserNameDictionary[staff.Id]; break;
 1289:                             case "staffUserEmailLabel":
 1290:                                 {
 1291:                                     //userList = Ia.Ftn.Cl.Models.Identity.StaffIdentityUserList();
 1292:  
 1293:                                     //labelText = (from u in userList where u.Id == staff.Id select u.Email).SingleOrDefault();
 1294:                                     break;
 1295:                                 }
 1296:  
 1297:                             case "contactFirstNameLabel": labelText = contact.FirstName; break;
 1298:                             case "contactMiddleNameLabel": labelText = contact.MiddleName; break;
 1299:                             case "contactLastNameLabel": labelText = contact.LastName; break;
 1300:                             case "contactCompanyLabel": labelText = contact.Company; break;
 1301:                             case "contactEmailLabel": labelText = contact.Email; break;
 1302:                             case "contactPhoneLabel": labelText = contact.Phone; break;
 1303:                             case "contactAddressLabel": labelText = contact.Address; break;
 1304:                             case "contactApprovedLabel": labelText = Ia.Cl.Models.Default.YesNoInArabic(contact.IsApproved); break;
 1305:                             case "contactUrlLabel": labelText = contact.Url; break;
 1306:                             case "contactNoteLabel": labelText = contact.Note; break;
 1307:                             case "contactUserIdLabel": labelText = contact.StaffIdentityUser.Id.ToString(); break;
 1308:  
 1309:                             case "reportUserNameLabel": labelText = "?"; break;
 1310:                             case "reportStaffFrameworkLabel":
 1311:                                 {
 1312:                                     if (!string.IsNullOrEmpty(report.FrameworkId))
 1313:                                     {
 1314:                                         arabicNameBracketParentArabicNameBracket = (from f in Ia.Ftn.Cl.Models.Data.Administration.FrameworkList
 1315:                                                                                     where f.Id == report.FrameworkId
 1316:                                                                                     select f.ArabicNameBracketParentArabicNameBracket).SingleOrDefault();
 1317:  
 1318:                                         labelText = arabicNameBracketParentArabicNameBracket;
 1319:                                     }
 1320:                                     else if (report.StaffIdentityUser != null)
 1321:                                     {
 1322:                                         firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket = (from _s in Ia.Ftn.Cl.Models.Data.StaffIdentityUser.List()
 1323:                                                                                                                            where _s.Id == report.StaffIdentityUser.Id
 1324:                                                                                                                            select _s.FirstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket).SingleOrDefault();
 1325:  
 1326:                                         labelText = firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket;
 1327:                                     }
 1328:  
 1329:                                     SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(); //ref e, ref l);
 1330:  
 1331:                                     /*
 1332:                                     if (report.LastReportHistory.StaffIdentityUser.Id == staffIdentityUser.StaffIdentityUser.Id)
 1333:                                     {
 1334:                                         //e.Row.BackColor = System.Drawing.Color.SlateGray;
 1335:                                     }
 1336:                                     */
 1337:  
 1338:                                     break;
 1339:                                 }
 1340:                             case "accessAreaStatisticLabel": labelText = (from kna in Ia.Ftn.Cl.Models.Data.Service.KuwaitFtnAreaList where kna.Id == areaId select kna.ArabicName).SingleOrDefault(); break;
 1341:                             case "subscriberCallWaitingLabel": labelText = Ia.Cl.Models.Default.YesNo(subscriber.CallWaiting); break;
 1342:                             case "subPartyIsSipLabel": labelText = Ia.Cl.Models.Default.YesNo(Ia.Ftn.Cl.Models.Business.Nokia.SubParty.IsSip(subParty.PrimaryPUIDCPEProfileNumber)); break;
 1343:                             case "subPartyServiceSuspensionLabel": labelText = Ia.Cl.Models.Default.YesNo(subParty.ServiceSuspension); break;
 1344:                             case "subscriberCallForwardingLabel": labelText = Ia.Cl.Models.Default.YesNo(subscriber.CallForwarding); break;
 1345:                             case "subscriberAlarmCallLabel": labelText = Ia.Cl.Models.Default.YesNo(subscriber.AlarmCall); break;
 1346:                             case "subscriberInternationalCallingUserControlledLabel": labelText = Ia.Cl.Models.Default.YesNo(subscriber.InternationalCallingUserControlled); break;
 1347:                             case "subscriberInternationalCallingLabel": labelText = Ia.Cl.Models.Default.YesNo(subscriber.InternationalCalling); break;
 1348:                             case "subscriberCallerIdLabel": labelText = Ia.Cl.Models.Default.YesNo(subscriber.CallerId); break;
 1349:                             case "subscriberConferenceCallLabel": labelText = Ia.Cl.Models.Default.YesNo(subscriber.ConferenceCall); break;
 1350:                             case "subscriberAbbriviatedCallingLabel": labelText = Ia.Cl.Models.Default.YesNo(subscriber.AbbriviatedCalling); break;
 1351:                             case "subscriberCallBarringLabel": labelText = "?"; break;
 1352:  
 1353:                             case "nddOntPonPositionLabel": labelText = nddOnt.Pon.Position; break;
 1354:                             case "nddOntPonOltOdfSiteNameLabel": labelText = nddOnt.Pon.PonGroup.Olt.Odf.Router.Site.Name; break;
 1355:                             case "nddOntPonOltOdfSiteNameArabicNameLabel": labelText = nddOnt.Pon.PonGroup.Olt.Odf.Router.Site.Name + " (" + nddOnt.Pon.PonGroup.Olt.Odf.Router.Site.ArabicName + ")"; break;
 1356:                             case "nddOntPonOltAmsNameLabel": labelText = nddOnt.Pon.PonGroup.Olt.AmsName; break;
 1357:                             case "nddOntPonOltAreaLabel": labelText = nddOnt.Pon.PonGroup.Olt.Symbol; break;
 1358:                             case "nddOntPrimarySwitchLabel": labelText = nddOnt.PrimarySwitch; break;
 1359:                             case "nddOntPonOltFieldTypeLabel": labelText = Ia.Ftn.Cl.Models.Business.NetworkDesignDocument.FieldTypeColoredString(nddOnt.Pon.PonGroup.Olt.FieldType); break;
 1360:                             case "nddOntPonOltIsSipLabel": labelText = Ia.Cl.Models.Default.YesNo(nddOnt.Pon.PonGroup.Olt.IsSip); break;
 1361:  
 1362:                             case "nddOntMgcIpLabel": labelText = nddOnt.MgcIp; break;
 1363:                             case "nddOntMgcSecondaryIpLabel": labelText = nddOnt.MgcSecondaryIp; break;
 1364:                             case "nddOntPonOltVlanLabel": labelText = "?"; break; // nddOnt.Pon.PonGroup.Olt.Vlan.ToString(); break;
 1365:                             case "nddOntPonOltNetworkNumberLabel": labelText = nddOnt.Pon.PonGroup.NetworkNumber; break;
 1366:                             case "nddOntPonOltGatewayIpLabel": labelText = nddOnt.Pon.PonGroup.GatewayIp; break;
 1367:                             case "nddOntImsServiceLabel": labelText = nddOnt.ImsService.ToString(); break;
 1368:                             case "nddOntImsFsdbLabel": labelText = nddOnt.ImsFsdb; break;
 1369:  
 1370:                             case "nddOntProposedNameLabel":
 1371:                                 {
 1372:                                     /*
 1373:                                     if (nddOnt.Pon.PonGroup.HasNewProposedPonList)
 1374:                                     {
 1375:                                         text = nddOnt.Access.ProposedName;
 1376:                                     }
 1377:                                     else
 1378:                                     {
 1379:                                         ((GridView)e.Row.Parent.Parent).Columns[5].Visible = false;
 1380:                                         // 5 is position (0 based) of HeaderText="Proposed Name"
 1381:                                     }
 1382:                                     */
 1383:  
 1384:                                     break;
 1385:                                 }
 1386:  
 1387:                             case "nddOntPonOltOdfAccessVendorNameLabel": labelText = nddOnt.Pon.PonGroup.Olt.Odf.Vendor.Name; break;
 1388:                             case "nddOntPonOltOdfRouterSwitchVendorNameLabel": labelText = nddOnt.Pon.PonGroup.Olt.Odf.Router.Vendor.Name; break;
 1389:  
 1390:                             case "serviceExemptionNoteLabel": labelText = serviceExemption.Note; break;
 1391:                             /*
 1392:                         case "serviceExemptionStaffNameLabel":
 1393:                             {
 1394:                                 labelText = (from _s in Ia.Ftn.Cl.Models.Data.StaffIdentityUser.List() 
 1395:                                              where _s.Id == serviceExemption.StaffIdentityUser.Id 
 1396:                                              select _s.FirstAndMiddleName).SingleOrDefault(); 
 1397: 
 1398:                                 break;
 1399:                             }
 1400:                             */
 1401:  
 1402:                             case "serviceRequestAreaLabel": labelText = (from kna in Ia.Ftn.Cl.Models.Data.Service.KuwaitFtnAreaList where kna.Id == serviceRequest.AreaId select kna.ArabicName).SingleOrDefault(); break;
 1403:                             case "serviceRequestOntAreaLabel": labelText = (from kna in Ia.Ftn.Cl.Models.Data.Service.KuwaitFtnAreaList where kna.Symbol == serviceRequestOnt.AreaSymbol select kna.ArabicName).SingleOrDefault(); break;
 1404:  
 1405:                             case "serviceRequestOntDetailServiceTypeLabel": labelText = Ia.Ftn.Cl.Models.Data.ServiceRequest.ServiceSortedList[serviceRequestOntDetail.ServiceType].ToString(); break;
 1406:  
 1407:                             default: break;
 1408:                         }
 1409:  
 1410:  
 1411:                         switch (propertyName) //hl.ID)
 1412:                         {
 1413:                             case "reportServiceHyperLink":
 1414:                                 {
 1415:                                     s = Ia.Ftn.Cl.Models.Business.Service.ServiceName(report.Service, report.ServiceType);
 1416:                                     hyperLinkText = s;
 1417:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(s);
 1418:                                     break;
 1419:                                 }
 1420:                             case "reportAccessServiceRequestServiceHyperLink":
 1421:                                 {
 1422:                                     s = Ia.Ftn.Cl.Models.Business.Service.ServiceName(reportAccessServiceRequest.Report.Service, reportAccessServiceRequest.Report.ServiceType);
 1423:                                     hyperLinkText = s;
 1424:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(s);
 1425:                                     break;
 1426:                                 }
 1427:                             case "serviceRequestNumberSerialHyperLink":
 1428:                                 {
 1429:                                     hyperLinkText = serviceRequest.Number + "/" + serviceRequest.Serial;
 1430:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(serviceRequest.Number.ToString());
 1431:                                     break;
 1432:                                 }
 1433:                             case "serviceRequestCustomerNameHyperLink":
 1434:                                 {
 1435:                                     hyperLinkText = serviceRequest.CustomerName;
 1436:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(serviceRequest.CustomerName);
 1437:                                     break;
 1438:                                 }
 1439:                             case "impuSbrHyperLink":
 1440:                                 {
 1441:                                     hyperLinkText = sbr.IMPU;
 1442:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(sbr.IMPU);
 1443:                                     break;
 1444:                                 }
 1445:                             case "impuOwsbrHyperLink":
 1446:                                 {
 1447:                                     hyperLinkText = owsbr.IMPU;
 1448:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(owsbr.IMPU);
 1449:                                     break;
 1450:                                 }
 1451:                             case "seruattrUsrnumHyperLink":
 1452:                                 {
 1453:                                     hyperLinkText = seruattr.USRNUM;
 1454:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(seruattr.USRNUM);
 1455:                                     break;
 1456:                                 }
 1457:                             case "axeSubscriberSnbHyperLink":
 1458:                                 {
 1459:                                     hyperLinkText = axeSubscriber.SNB.ToString();
 1460:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(axeSubscriber.SNB.ToString());
 1461:                                     break;
 1462:                                 }
 1463:                             case "ewsdSubscriberDnHyperLink":
 1464:                                 {
 1465:                                     hyperLinkText = ewsdSubscriber.DN.ToString();
 1466:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(ewsdSubscriber.DN.ToString());
 1467:                                     break;
 1468:                                 }
 1469:                             case "accessPositionHyperLink":
 1470:                                 {
 1471:                                     hyperLinkText = access.Position;
 1472:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(access.Position);
 1473:  
 1474:                                     break;
 1475:                                 }
 1476:                             case "accessPaciHyperLink":
 1477:                                 {
 1478:                                     hyperLinkText = access.Paci;
 1479:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(access.Paci) + "&inputType=" + Ia.Ftn.Cl.Models.Business.Maintenance.Find.PaciInputTypeString;
 1480:  
 1481:                                     break;
 1482:                                 }
 1483:                             case "ontSerialHyperLink":
 1484:                                 {
 1485:                                     hyperLinkText = ont.Serial;
 1486:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(ont.Serial);
 1487:                                     break;
 1488:                                 }
 1489:                             case "ontResetHyperLink":
 1490:                                 {
 1491:                                     hyperLinkText = "Reset&nbsp;(ريسيت)";
 1492:                                     hyperLinkNavigateUrl = "/maintenance/access?accessName=" + Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.AccessNameByOntId(ont.Id);
 1493:                                     hyperLinkTargetBlank = @"target=""_blank""";
 1494:                                     break;
 1495:                                 }
 1496:                             case "ontAmsEventsHyperLink":
 1497:                                 {
 1498:                                     hyperLinkText = "Events&nbsp;(أحداث)";
 1499:                                     hyperLinkNavigateUrl = "/maintenance/event/ams?accessName=" + Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.AccessNameByOntId(ont.Id);
 1500:                                     hyperLinkTargetBlank = @"target=""_blank""";
 1501:                                     break;
 1502:                                 }
 1503:                             case "emsOntResetHyperLink":
 1504:                                 {
 1505:                                     hyperLinkText = "Reset&nbsp;(ريسيت)";
 1506:                                     hyperLinkNavigateUrl = "/maintenance/access?accessName=" + Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.AccessNameByOntId(emsOnt.Id);
 1507:                                     hyperLinkTargetBlank = @"target=""_blank""";
 1508:                                     break;
 1509:                                 }
 1510:                             case "reportAccessServiceRequestAccessNameHyperLink":
 1511:                                 {
 1512:                                     if (reportAccessServiceRequest.Access != null)
 1513:                                     {
 1514:                                         hyperLinkText = reportAccessServiceRequest.Access.Name;
 1515:                                         hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(reportAccessServiceRequest.Access.Name);
 1516:                                     }
 1517:  
 1518:                                     break;
 1519:                                 }
 1520:                             case "nddOntNameHyperLink":
 1521:                                 {
 1522:                                     hyperLinkText = nddOnt.Access.Name;
 1523:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(nddOnt.Access.Name);
 1524:                                     break;
 1525:                                 }
 1526:                             case "nddOntPonNameHyperLink":
 1527:                                 {
 1528:                                     hyperLinkText = nddOnt.Pon.Name;
 1529:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(nddOnt.Pon.Name);
 1530:                                     break;
 1531:                                 }
 1532:                             case "nddOntPositionHyperLink":
 1533:                                 {
 1534:                                     hyperLinkText = nddOnt.Position;
 1535:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(nddOnt.Position);
 1536:                                     break;
 1537:                                 }
 1538:                             case "nddOntIpHyperLink":
 1539:                                 {
 1540:                                     hyperLinkText = nddOnt.Ip;
 1541:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(nddOnt.Ip);
 1542:                                     break;
 1543:                                 }
 1544:                             case "serviceRequestServiceServiceHyperLink":
 1545:                                 {
 1546:                                     s = Ia.Ftn.Cl.Models.Business.Service.ServiceName(serviceRequestService.Service, serviceRequestService.ServiceType);
 1547:  
 1548:                                     hyperLinkText = s;
 1549:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(s);
 1550:                                     break;
 1551:                                 }
 1552:                             case "serviceRequestServiceAccessNameHyperLink":
 1553:                                 {
 1554:                                     if (serviceRequestService.Access != null)
 1555:                                     {
 1556:                                         hyperLinkText = serviceRequestService.Access.Name;
 1557:                                         hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(serviceRequestService.Access.Name);
 1558:                                     }
 1559:                                     break;
 1560:                                 }
 1561:                             case "serviceRequestServiceReferenceHyperLink":
 1562:                                 {
 1563:                                     var accessName = serviceRequestService.Access != null ? serviceRequestService.Access.Name : string.Empty;
 1564:  
 1565:                                     hyperLinkText = "Reference&nbsp;(ربط)";
 1566:                                     hyperLinkNavigateUrl = "/provision/service-request-service-access?service=" + serviceRequestService.Service + "&accessName=" + accessName;
 1567:                                     hyperLinkTargetBlank = @"target=""_blank""";
 1568:  
 1569:                                     break;
 1570:                                 }
 1571:                             case "serviceRequestNumberHyperLink":
 1572:                                 {
 1573:                                     hyperLinkText = serviceRequest.Number.ToString();
 1574:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(serviceRequest.Number.ToString());
 1575:                                     break;
 1576:                                 }
 1577:                             case "serviceRequestCustomerIdHyperLink":
 1578:                                 {
 1579:                                     hyperLinkText = serviceRequest.CustomerId.ToString();
 1580:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(serviceRequest.CustomerId.ToString()) + "&inputType=" + Ia.Ftn.Cl.Models.Business.Maintenance.Find.ServiceRequestCustomerIdInputTypeString;
 1581:                                     break;
 1582:                                 }
 1583:                             case "serviceRequestHistoryNumberHyperLink":
 1584:                                 {
 1585:                                     hyperLinkText = serviceRequestHistory.Number.ToString();
 1586:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(serviceRequestHistory.Number.ToString());
 1587:                                     break;
 1588:                                 }
 1589:                             case "accessOdfHyperLink":
 1590:                                 {
 1591:                                     hyperLinkText = access.Odf;
 1592:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(access.Odf);
 1593:                                     break;
 1594:                                 }
 1595:                             case "accessNameHyperLink":
 1596:                                 {
 1597:                                     hyperLinkText = access.Name;
 1598:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(access.Name);
 1599:                                     break;
 1600:                                 }
 1601:                             case "accessBlockHyperLink":
 1602:                                 {
 1603:                                     string areaSymbol;
 1604:  
 1605:                                     //if (int.TryParse(access.Block, out int i))
 1606:                                     //{
 1607:                                     hyperLinkText = access.Block;
 1608:                                     areaSymbol = (from kna in Ia.Ftn.Cl.Models.Data.Service.KuwaitFtnAreaList where kna.Id == access.AreaId select kna.Symbol).SingleOrDefault();
 1609:  
 1610:                                     if (!string.IsNullOrEmpty(areaSymbol))
 1611:                                     {
 1612:                                         hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(areaSymbol + "," + access.Block);
 1613:                                     }
 1614:                                     else
 1615:                                     {
 1616:  
 1617:                                     }
 1618:                                     //}
 1619:                                     //else
 1620:                                     //{
 1621:  
 1622:                                     //}
 1623:  
 1624:                                     break;
 1625:                                 }
 1626:  
 1627:                             case "service2ServiceHyperLink":
 1628:                                 {
 1629:                                     s = Ia.Ftn.Cl.Models.Business.Service.ServiceName(service2.Service, service2.ServiceType);
 1630:  
 1631:                                     hyperLinkText = s;
 1632:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(s);
 1633:                                     break;
 1634:                                 }
 1635:                             case "service2AccessNameHyperLink":
 1636:                                 {
 1637:                                     if (service2.AccessName != null && service2.Port != Ia.Ftn.Cl.Models.Business.Default.PortUndefinedOrInvalidOrUnknown)
 1638:                                     {
 1639:                                         hyperLinkText = service2.AccessName;
 1640:                                         hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(service2.AccessName);
 1641:                                     }
 1642:                                     break;
 1643:                                 }
 1644:                             case "service2ServiceProvisionHyperLink":
 1645:                                 {
 1646:                                     var accessName = service2.AccessName != null ? service2.AccessName : string.Empty;
 1647:  
 1648:                                     hyperLinkText = "Provision&nbsp;(تشغيل)";
 1649:                                     hyperLinkNavigateUrl = "/provision/service?service=" + service2.Service + "&accessName=" + accessName;
 1650:                                     hyperLinkTargetBlank = @"target=""_blank""";
 1651:  
 1652:                                     break;
 1653:                                 }
 1654:                             case "emsOntSipInfoServiceProvisionHyperLink":
 1655:                                 {
 1656:                                     var service = Ia.Ftn.Cl.Models.Business.NumberFormatConverter.Service(emsOntSipInfo.SIPUSERNAME);
 1657:  
 1658:                                     var accessName = (emsOntSipInfo.EmsOnt != null
 1659:                                         && emsOntSipInfo.EmsOnt.Access != null
 1660:                                         && emsOntSipInfo.EmsOnt.Access.Name != null) ? emsOntSipInfo.EmsOnt.Access.Name : string.Empty;
 1661:  
 1662:                                     var port = emsOntSipInfo.TEL;
 1663:  
 1664:                                     hyperLinkText = "Provision&nbsp;(تشغيل)";
 1665:                                     hyperLinkNavigateUrl = "/provision/access/service?service=" + service + "&accessName=" + accessName + "&port=" + port;
 1666:                                     hyperLinkTargetBlank = @"target=""_blank""";
 1667:  
 1668:                                     break;
 1669:                                 }
 1670:                             case "emsVoipPstnUserLicNameHyperLink":
 1671:                                 {
 1672:                                     if (emsVoipPstnUser.IsMsan)
 1673:                                     {
 1674:                                         var lic = Ia.Ftn.Cl.Models.Data.Huawei.Default.MsanDevLicByEmsVoipPstnUserId(emsVoipPstnUser.Id);
 1675:  
 1676:                                         if (lic != null)
 1677:                                         {
 1678:                                             hyperLinkText = lic.Name;
 1679:                                             hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(lic.Name);
 1680:                                         }
 1681:                                     }
 1682:                                     else HideColumnName(/*e,*/ "Name");
 1683:  
 1684:                                     break;
 1685:                                 }
 1686:                             case "emsVoipPstnUserServiceOrMsanLicProvisionHyperLink":
 1687:                                 {
 1688:                                     int did, port, cabinet, frame, fn, sn, pn;
 1689:                                     string accessName, msanDevId;
 1690:                                     var service = Ia.Ftn.Cl.Models.Business.NumberFormatConverter.Service(emsVoipPstnUser.DN);
 1691:  
 1692:                                     did = emsVoipPstnUser.DID;
 1693:  
 1694:                                     if (emsVoipPstnUser.IsMsan)
 1695:                                     {
 1696:                                         var lic = Ia.Ftn.Cl.Models.Data.Huawei.Default.MsanDevLicByEmsVoipPstnUserId(emsVoipPstnUser.Id);
 1697:  
 1698:                                         if (lic != null)
 1699:                                         {
 1700:                                             msanDevId = lic.MsanDevId;
 1701:                                             cabinet = lic.Cabinet;
 1702:                                             frame = lic.Frame;
 1703:                                             fn = lic.Fn;
 1704:                                             sn = lic.Sn;
 1705:                                             pn = lic.Pn;
 1706:                                         }
 1707:                                         else
 1708:                                         {
 1709:                                             msanDevId = string.Empty;
 1710:                                             cabinet = frame = fn = sn = pn = -1;
 1711:                                         }
 1712:  
 1713:                                         hyperLinkNavigateUrl = "/provision/lic?msanDevId=" + msanDevId
 1714:                                             + "&cabinet=" + cabinet
 1715:                                             + "&frame=" + frame
 1716:                                             + "&fn=" + fn
 1717:                                             + "&sn=" + sn
 1718:                                             + "&pn=" + pn
 1719:                                             + "&service=" + service;
 1720:                                     }
 1721:                                     else
 1722:                                     {
 1723:                                         var didToMduDevDictionary = Ia.Ftn.Cl.Models.Data.Huawei.Default.DidToMduDevDictionary;
 1724:  
 1725:                                         var mduDev = Ia.Ftn.Cl.Models.Data.Huawei.Default.MduDevByDid(did);
 1726:  
 1727:                                         if (mduDev != null)
 1728:                                         {
 1729:                                             accessName = mduDev.AccessName;
 1730:  
 1731:                                             var fnSnPnPort = mduDev.PossibleFnSnPnPortList.Where(f => f.Fn == emsVoipPstnUser.FN && f.Sn == emsVoipPstnUser.SN && f.Pn == emsVoipPstnUser.PN).SingleOrDefault();
 1732:  
 1733:                                             if (fnSnPnPort != null) port = fnSnPnPort.Port;
 1734:                                             else port = Ia.Ftn.Cl.Models.Business.Default.PortUndefinedOrInvalidOrUnknown;
 1735:                                         }
 1736:                                         else
 1737:                                         {
 1738:                                             accessName = string.Empty;
 1739:                                             port = Ia.Ftn.Cl.Models.Business.Default.PortUndefinedOrInvalidOrUnknown;
 1740:                                         }
 1741:  
 1742:                                         hyperLinkText = "Provision&nbsp;(تشغيل)";
 1743:                                         hyperLinkNavigateUrl = "/provision/access/service?service=" + service + "&accessName=" + accessName + "&port=" + port;
 1744:                                         hyperLinkTargetBlank = @"target=""_blank""";
 1745:                                     }
 1746:  
 1747:                                     break;
 1748:                                 }
 1749:                             case "serviceExemptionServiceHyperLink":
 1750:                                 {
 1751:                                     s = Ia.Ftn.Cl.Models.Business.Service.ServiceName(serviceExemption.Service, serviceExemption.ServiceType);
 1752:  
 1753:                                     hyperLinkText = s;
 1754:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(s);
 1755:                                     break;
 1756:                                 }
 1757:                             case "reportHistoryServiceHyperLink":
 1758:                                 {
 1759:                                     s = Ia.Ftn.Cl.Models.Business.Service.ServiceName(reportHistory.Report.Service, reportHistory.Report.ServiceType);
 1760:  
 1761:                                     hyperLinkText = s;
 1762:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(s);
 1763:                                     break;
 1764:                                 }
 1765:                             case "serviceRequestOntDetailServiceHyperLink":
 1766:                                 {
 1767:                                     s = Ia.Ftn.Cl.Models.Business.Service.ServiceName(serviceRequestOntDetail.Service, serviceRequestOntDetail.ServiceType);
 1768:  
 1769:                                     hyperLinkText = s;
 1770:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(s);
 1771:                                     break;
 1772:                                 }
 1773:                             case "serviceRequestOntNameHyperLink":
 1774:                                 {
 1775:                                     hyperLinkText = serviceRequestOnt.Name;
 1776:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(serviceRequestOnt.Name);
 1777:                                     break;
 1778:                                 }
 1779:                             case "serviceRequestOntBlockHyperLink":
 1780:                                 {
 1781:                                     hyperLinkText = serviceRequestOnt.Block;
 1782:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(serviceRequestOnt.AreaSymbol + "," + serviceRequestOnt.Block);
 1783:  
 1784:                                     break;
 1785:                                 }
 1786:                             case "serviceRequestOntPaciHyperLink":
 1787:                                 {
 1788:                                     hyperLinkText = serviceRequestOnt.Paci;
 1789:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(serviceRequestOnt.Paci) + "&inputType=" + Ia.Ftn.Cl.Models.Business.Maintenance.Find.PaciInputTypeString;
 1790:  
 1791:                                     break;
 1792:                                 }
 1793:                             case "serviceRequestAdministrativeIssueServiceHyperLink":
 1794:                                 {
 1795:                                     hyperLinkText = serviceRequestAdministrativeIssue.Service;
 1796:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(serviceRequestAdministrativeIssue.Service);
 1797:                                     break;
 1798:                                 }
 1799:                             case "eventAccessNameHyperLink":
 1800:                                 {
 1801:                                     if (@event.Ont != null)
 1802:                                     {
 1803:                                         var ontId = @event.Ont.Id;
 1804:  
 1805:                                         var accessName = Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.AccessNameByOntId(ontId);
 1806:  
 1807:                                         hyperLinkText = accessName;
 1808:                                         hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(accessName);
 1809:                                     }
 1810:  
 1811:                                     break;
 1812:                                 }
 1813:                             case "gwIdAgcfGatewayRecordHyperLink":
 1814:                                 {
 1815:                                     hyperLinkText = agcfGatewayRecord.GwId.ToString();
 1816:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(agcfGatewayRecord.GwId.ToString());
 1817:                                     break;
 1818:                                 }
 1819:                             case "ip1AgcfGatewayRecordHyperLink":
 1820:                                 {
 1821:                                     hyperLinkText = agcfGatewayRecord.IP1;
 1822:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(agcfGatewayRecord.IP1);
 1823:                                     break;
 1824:                                 }
 1825:                             case "ip2AgcfGatewayRecordHyperLink":
 1826:                                 {
 1827:                                     hyperLinkText = agcfGatewayRecord.IP2;
 1828:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(agcfGatewayRecord.IP2);
 1829:                                     break;
 1830:                                 }
 1831:                             case "gwIdAgcfEndpointHyperLink":
 1832:                                 {
 1833:                                     hyperLinkText = agcfEndpoint.GwId.ToString();
 1834:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(agcfEndpoint.GwId.ToString());
 1835:                                     break;
 1836:                                 }
 1837:  
 1838:                             case "eidMgwHyperLink":
 1839:                                 {
 1840:                                     hyperLinkText = mgw.EID;
 1841:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(mgw.EID);
 1842:                                     break;
 1843:                                 }
 1844:                             case "puiAsbrHyperLink":
 1845:                                 {
 1846:                                     hyperLinkText = asbr.PUI;
 1847:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(asbr.PUI);
 1848:                                     break;
 1849:                                 }
 1850:                             case "eidAsbrHyperLink":
 1851:                                 {
 1852:                                     hyperLinkText = asbr.EID;
 1853:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(asbr.EID);
 1854:                                     break;
 1855:                                 }
 1856:  
 1857:                             case "subPartyDisplayNameHyperLink":
 1858:                                 {
 1859:                                     hyperLinkText = subParty.DisplayName;
 1860:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(subParty.DisplayName);
 1861:                                     break;
 1862:                                 }
 1863:                             case "ontServiceVoipIpHyperLink":
 1864:                                 {
 1865:                                     hyperLinkText = ontServiceVoip.Ip.ToString();
 1866:                                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(ontServiceVoip.Ip);
 1867:                                     break;
 1868:                                 }
 1869:                             case "reportHistoryHyperLink":
 1870:                                 {
 1871:                                     hyperLinkText = @"<img src=""/image/legend/clock.svg"" class=""icon"" alt=""History""/>";
 1872:                                     hyperLinkNavigateUrl = "/maintenance/report/history?reportId=" + report.Id;
 1873:                                     break;
 1874:                                 }
 1875:                             case "serviceServiceAccessNameHyperLink":
 1876:                                 {
 1877:                                     if (serviceAccessName.Service != null)
 1878:                                     {
 1879:                                         hyperLinkText = serviceAccessName.Service;
 1880:                                         hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(serviceAccessName.Service);
 1881:                                     }
 1882:                                     break;
 1883:                                 }
 1884:                             case "accessNameServiceAccessNameHyperLink":
 1885:                                 {
 1886:                                     if (serviceAccessName.AccessName != null)
 1887:                                     {
 1888:                                         hyperLinkText = serviceAccessName.AccessName;
 1889:                                         hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(serviceAccessName.AccessName);
 1890:                                     }
 1891:                                     break;
 1892:                                 }
 1893:                             case "serviceServiceAccessNameAddressHyperLink":
 1894:                                 {
 1895:                                     if (serviceAccessNameAddress.Service != null)
 1896:                                     {
 1897:                                         hyperLinkText = serviceAccessNameAddress.Service;
 1898:                                         hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(serviceAccessNameAddress.Service);
 1899:                                     }
 1900:                                     break;
 1901:                                 }
 1902:                             case "accessNameServiceAccessNameAddressHyperLink":
 1903:                                 {
 1904:                                     if (serviceAccessNameAddress.AccessName != null)
 1905:                                     {
 1906:                                         hyperLinkText = serviceAccessNameAddress.AccessName;
 1907:                                         hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(serviceAccessNameAddress.AccessName);
 1908:                                     }
 1909:                                     break;
 1910:                                 }
 1911:                             case "msanDevLicNameHyperLink":
 1912:                                 {
 1913:                                     if (msanDevLic.Name != null)
 1914:                                     {
 1915:                                         hyperLinkText = msanDevLic.Name;
 1916:                                         hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(msanDevLic.Name);
 1917:                                     }
 1918:                                     break;
 1919:                                 }
 1920:                             case "msanDevLicServiceHyperLink":
 1921:                                 {
 1922:                                     if (msanDevLic.Service != null)
 1923:                                     {
 1924:                                         hyperLinkText = msanDevLic.Service;
 1925:                                         hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(msanDevLic.Service);
 1926:                                     }
 1927:                                     break;
 1928:                                 }
 1929:                             default: break;
 1930:                         }
 1931:  
 1932:  
 1933:                         switch (propertyName) //tb.ID)
 1934:                         {
 1935:                             //case "staffEmploymentIdTextBox": textBoxText = staff.EmploymentId.ToString(); break;
 1936:                             case "staffFirstNameTextBox": textBoxText = staffIdentityUser.FirstName; break;
 1937:                             case "staffMiddleNameTextBox": textBoxText = staffIdentityUser.MiddleName; break;
 1938:                             case "staffLastNameTextBox": textBoxText = staffIdentityUser.LastName; break;
 1939:                             //case "staffIpPbxExtensionTextBox": textBoxText = staff.IpPbxExtension; break;
 1940:  
 1941:                             case "contactFirstNameTextBox": textBoxText = contact.FirstName; break;
 1942:                             case "contactMiddleNameTextBox": textBoxText = contact.MiddleName; break;
 1943:                             case "contactLastNameTextBox": textBoxText = contact.LastName; break;
 1944:                             case "contactCompanyTextBox": textBoxText = contact.Company; break;
 1945:                             case "contactEmailTextBox": textBoxText = contact.Email; break;
 1946:                             case "contactPhoneTextBox": textBoxText = contact.Phone; break;
 1947:                             case "contactAddressTextBox": textBoxText = contact.Address; break;
 1948:                             case "contactUrlTextBox": textBoxText = contact.Url; break;
 1949:                             case "contactNoteTextBox": textBoxText = contact.Note; break;
 1950:  
 1951:                             case "userNameTextBox": textBoxText = staffIdentityUser.UserName; break;
 1952:                             case "userEmailTextBox": textBoxText = staffIdentityUser.Email; break;
 1953:                             case "accessBlockTextBox": textBoxText = access.Block.ToString(); break;
 1954:                             case "accessStreetTextBox": textBoxText = access.Street; break;
 1955:                             case "accessPremisesOldTextBox": textBoxText = access.PremisesOld; break;
 1956:                             case "accessPremisesNewTextBox": textBoxText = access.PremisesNew; break;
 1957:                             case "accessPaciTextBox": textBoxText = access.Paci; break;
 1958:                             case "accessNoteTextBox": textBoxText = access.Note; break;
 1959:  
 1960:                             case "serviceExemptionNoteTextBox": textBoxText = serviceExemption.Note; break;
 1961:  
 1962:                             default: break;
 1963:                         }
 1964:  
 1965:  
 1966:                         switch (propertyName) //ddl.ID)
 1967:                         {
 1968:                             /*
 1969:                             case "staffFrameworkIdDropDownList":
 1970:                                 {
 1971:                                     ddl.DataSource = Ia.Ftn.Cl.Models.Data.Administration.FrameworkList;
 1972:                                     ddl.DataValueField = "Id";
 1973:                                     ddl.DataTextField = "FullyQualifiedArabicName";
 1974:                                     ddl.DataBind();
 1975: 
 1976:                                     ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue(staff.FrameworkId.ToString()));
 1977:                                     break;
 1978:                                 }
 1979: 
 1980:                             case "staffIdentityUserIdDropDownList":
 1981:                                 {
 1982:                                     ddl.Items.Clear();
 1983: 
 1984:                                     userList = Ia.Ftn.Cl.Models.Identity.UserList;
 1985: 
 1986:                                     ddl.DataSource = userList;
 1987:                                     ddl.DataValueField = "ProviderUserKey";
 1988:                                     ddl.DataTextField = "UserName";
 1989:                                     ddl.DataBind();
 1990: 
 1991:                                     ddl.Items.Insert(0, new ListItem("Empty Guid", Guid.Empty.ToString()));
 1992:                                     ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue(staff.Id.ToString()));
 1993:                                     break;
 1994:                                 }
 1995:                             */
 1996:  
 1997:                             default: break;
 1998:                         }
 1999:                         /*
 2000:                     }
 2001:                     else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.CheckBox")
 2002:                     {
 2003:                         CheckBox cb = (CheckBox)control.Controls[0];
 2004:                         switch (name) //cb.ID)
 2005:                         {
 2006:                             case "staffIsHeadCheckBox": cb.Checked = staff.IsHead; break;
 2007:                             case "contactApprovedCheckBox": cb.Checked = contact.IsApproved; break;
 2008:                             default: break;
 2009:                         }
 2010:                     }
 2011:                     else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.Image")
 2012:                     {
 2013:                         Image im = (Image)control.Controls[0];
 2014:                         */
 2015:  
 2016:  
 2017:                         switch (propertyName) //im.ID)
 2018:                         {
 2019:                             case "deleteImage": break;
 2020:                             case "historyImage": break;
 2021:                             case "nddOntPonOltOdfAccessVendorIconImage":
 2022:                                 {
 2023:                                     //vendor = (from o in Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.OntList where o.Id == nddOnt.Id select o.Pon.PonGroup.Olt.Odf.Vendor).SingleOrDefault();
 2024:                                     vendor = nddOnt?.Pon.PonGroup.Olt.Odf.Vendor;
 2025:  
 2026:                                     if (vendor != null)
 2027:                                     {
 2028:                                         ImageUrl = vendor.ImageUrl;
 2029:                                         ImageToolTip = vendor.Name;
 2030:                                     }
 2031:  
 2032:                                     break;
 2033:                                 }
 2034:                             case "nddOntPonOltOdfRouterSwitchVendorIconImage":
 2035:                                 {
 2036:                                     // vendor = (from o in Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.OntList where o.Id == nddOnt.Id select o.Pon.PonGroup.Olt.Odf.Router.Vendor).SingleOrDefault();
 2037:                                     vendor = nddOnt?.Pon.PonGroup.Olt.Odf.Router.Vendor;
 2038:  
 2039:                                     if (vendor != null)
 2040:                                     {
 2041:                                         ImageUrl = vendor.ImageUrl;
 2042:                                         ImageToolTip = vendor.Name;
 2043:                                     }
 2044:  
 2045:                                     break;
 2046:                                 }
 2047:                             case "ontAccessOntPonOltOdfVendorIconImage":
 2048:                                 {
 2049:                                     vendor = (from q in Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.OntList where q.Id == ont.Id select q.Pon.PonGroup.Olt.Odf.Vendor).SingleOrDefault();
 2050:                                     ImageUrl = vendor.ImageUrl;
 2051:                                     ImageToolTip = vendor.Name;
 2052:                                     break;
 2053:                                 }
 2054:                             case "accessOntPonOltOdfVendorIconImage":
 2055:                                 {
 2056:                                     vendor = (from o in Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.OntList where o.Access.Id == access.Id select o.Pon.PonGroup.Olt.Odf.Vendor).SingleOrDefault();
 2057:  
 2058:                                     if (vendor != null)
 2059:                                     {
 2060:                                         ImageUrl = vendor.ImageUrl;
 2061:                                         ImageToolTip = vendor.Name;
 2062:                                     }
 2063:  
 2064:                                     break;
 2065:                                 }
 2066:                             default: break;
 2067:                         }
 2068:                         /*
 2069:                     }
 2070:                     //else if (e.Row.RowType == DataControlRowType.Footer)
 2071:                     //{
 2072:                     //}
 2073:                     else
 2074:                     {
 2075:                     }
 2076:                     */
 2077:                     }
 2078:                     else
 2079:                     {
 2080:                         /*
 2081:                         if (e.Row.RowType == DataControlRowType.Header)
 2082:                         {
 2083:                         }
 2084:                         else if (e.Row.RowType == DataControlRowType.DataRow)
 2085:                         {
 2086:                             foreach (Control control in e.Row.Controls)
 2087:                             {
 2088:                                 try
 2089:                                 {
 2090:                                     if (control.Controls.Count > 0)
 2091:                                     {
 2092:                                         if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.Label")
 2093:                                         {
 2094:                                             Label l = (Label)control.Controls[0];
 2095: 
 2096:                                             switch (l.ID)
 2097:                                             {
 2098:                                                 case "staffUserActivityIsApprovedLabel":
 2099:                                                     {
 2100:                                                         var b = Convert.ToBoolean(DataBinder.Eval(e.Row.DataItem, "IsApproved"));
 2101:                                                         text = Ia.Cl.Models.Default.YesNo(b);
 2102:                                                         break;
 2103:                                                     }
 2104:                                                 case "staffUserActivityIsOnlineLabel":
 2105:                                                     {
 2106:                                                         var b = Convert.ToBoolean(DataBinder.Eval(e.Row.DataItem, "IsOnline"));
 2107:                                                         text = Ia.Cl.Models.Default.YesNo(b);
 2108:                                                         break;
 2109:                                                     }
 2110:                                                 case "staffUserActivityIsLockedOutLabel":
 2111:                                                     {
 2112:                                                         var b = Convert.ToBoolean(DataBinder.Eval(e.Row.DataItem, "IsLockedOut"));
 2113:                                                         text = Ia.Cl.Models.Default.YesNo(b);
 2114:                                                         break;
 2115:                                                     }
 2116:                                                 default: break;
 2117:                                             }
 2118:                                         }
 2119:                                         else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.HyperLink")
 2120:                                         {
 2121:                                             HyperLink hl = (HyperLink)control.Controls[0];
 2122: 
 2123:                                             switch (hl.ID)
 2124:                                             {
 2125:                                                 /*
 2126:                                                 case "reportServiceHyperLink":
 2127:                                                     {
 2128:                                                         s = Ia.Ftn.Cl.Models.Business.Service.ServiceName(report.Service, report.ServiceType);
 2129:                                                         hyperLinkText = s;
 2130:                                                         hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(s);
 2131:                                                         break;
 2132:                                                     }
 2133:                                                 * /
 2134:                                                 default: break;
 2135:                                             }
 2136:                                         }
 2137:                                         else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.TextBox")
 2138:                                         {
 2139:                                             TextBox tb = (TextBox)control.Controls[0];
 2140: 
 2141:                                             switch (tb.ID)
 2142:                                             {
 2143:                                                 //case "staffEmploymentIdTextBox": textBoxText = staff.EmploymentId.ToString(); break;
 2144:                                                 default: break;
 2145:                                             }
 2146:                                         }
 2147:                                         else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.DropDownList")
 2148:                                         {
 2149:                                             DropDownList ddl = (DropDownList)control.Controls[0];
 2150: 
 2151:                                             switch (ddl.ID)
 2152:                                             {
 2153:                                                 /*
 2154:                                                 case "staffFrameworkIdDropDownList":
 2155:                                                     {
 2156:                                                         ddl.DataSource = Ia.Ftn.Cl.Models.Data.Administration.FrameworkList;
 2157:                                                         ddl.DataValueField = "Id";
 2158:                                                         ddl.DataTextField = "FullyQualifiedArabicName";
 2159:                                                         ddl.DataBind();
 2160: 
 2161:                                                         ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue(staff.FrameworkId.ToString()));
 2162:                                                         break;
 2163:                                                     }
 2164:                                                 * /
 2165: 
 2166:                                                 default: break;
 2167:                                             }
 2168:                                         }
 2169:                                         else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.CheckBox")
 2170:                                         {
 2171:                                             /*
 2172:                                             CheckBox cb = (CheckBox)control.Controls[0];
 2173: 
 2174:                                             switch (cb.ID)
 2175:                                             {
 2176:                                                 //case "staffIsHeadCheckBox": cb.Checked = staff.IsHead; break;
 2177:                                                 default: break;
 2178:                                             }
 2179:                                             * /
 2180:                                         }
 2181:                                         else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.Image")
 2182:                                         {
 2183:                                             //Image im = (Image)control.Controls[0];
 2184: 
 2185:                                             switch (im.ID)
 2186:                                             {
 2187:                                                 /*
 2188:                                                 case "nddOntPonOltOdfAccessVendorIconImage":
 2189:                                                     {
 2190:                                                         //vendor = (from o in Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.OntList where o.Id == nddOnt.Id select o.Pon.PonGroup.Olt.Odf.Vendor).SingleOrDefault();
 2191:                                                         vendor = nddOnt?.Pon.PonGroup.Olt.Odf.Vendor;
 2192: 
 2193:                                                         if (vendor != null)
 2194:                                                         {
 2195:                                                             im.ImageUrl = vendor.ImageUrl;
 2196:                                                             im.ToolTip = vendor.Name;
 2197:                                                         }
 2198: 
 2199:                                                         break;
 2200:                                                     }
 2201:                                                 * /
 2202:                                                 default: break;
 2203:                                             }
 2204:                                         }
 2205:                                         else
 2206:                                         {
 2207: 
 2208:                                         }
 2209:                                     }
 2210:                                 }
 2211:                                 catch (Exception)
 2212:                                 {
 2213:                                 }
 2214:                             }
 2215:                         }
 2216:                         //else if (e.Row.RowType == DataControlRowType.Footer)
 2217:                         //{
 2218:                         //}
 2219:                         else
 2220:                         {
 2221:                         }
 2222:                         */
 2223:                     }
 2224:                     //}
 2225:                     //else
 2226:                     //{
 2227:                     //}
 2228:                 }
 2229:                 catch (Exception e)
 2230:                 {
 2231:                     labelText = string.Empty;
 2232:                     hyperLinkText = string.Empty;
 2233:                     hyperLinkNavigateUrl = string.Empty;
 2234:                     hyperLinkTargetBlank = string.Empty;
 2235:                     textBoxText = string.Empty;
 2236:                     ImageUrl = string.Empty;
 2237:                     ImageToolTip = string.Empty;
 2238:                 }
 2239:             }
 2240:             else
 2241:             {
 2242:             }
 2243:  
 2244:             if (!string.IsNullOrEmpty(labelText)) text = labelText;
 2245:             else if (!string.IsNullOrEmpty(hyperLinkText) && !string.IsNullOrEmpty(hyperLinkNavigateUrl))
 2246:             {
 2247:                 text = @"<a href=""" + hyperLinkNavigateUrl + @""" " + hyperLinkTargetBlank + ">" + hyperLinkText + @"</a>";
 2248:             }
 2249:             else if (!string.IsNullOrEmpty(textBoxText)) text = textBoxText;
 2250:             else if (!string.IsNullOrEmpty(ImageUrl) && !string.IsNullOrEmpty(ImageToolTip))
 2251:             {
 2252:                 text = @"<img src=""" + ImageUrl + @""" alt=""" + ImageToolTip + @"""/>";
 2253:             }
 2254:             else text = string.Empty;
 2255:  
 2256:             return text;
 2257:         }
 2258:  
 2259:         ////////////////////////////////////////////////////////////////////////////
 2260:  
 2261:         /// <summary>
 2262:         ///
 2263:         /// </summary>
 2264:         public static void SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(/*ref GridViewRowEventArgs gridViewRowEventArgs, ref Label l*/)
 2265:         {
 2266:             //TableCell tableCell;
 2267:  
 2268:             /*
 2269:             // table cell direction depending on if text has Arabic
 2270:             if (!string.IsNullOrEmpty(text))
 2271:             {
 2272:                 if (Ia.Cl.Models.Language.HasArabicLetter(text))
 2273:                 {
 2274:                     //tableCell = gridViewRowEventArgs.Row.FindControl(l.ID).Parent as TableCell;
 2275:                     //tableCell.HorizontalAlign = HorizontalAlign.Right;
 2276:                     //tableCell.Style[HtmlTextWriterStyle.Direction] = "rtl";
 2277:                 }
 2278:             }
 2279:             */
 2280:         }
 2281:  
 2282:         ////////////////////////////////////////////////////////////////////////////
 2283:  
 2284:         /// <summary>
 2285:         ///
 2286:         /// </summary>
 2287:         private static void HideColumnName(/*GridViewRowEventArgs e,*/ string name)
 2288:         {
 2289:             // https://stackoverflow.com/questions/3819247/gridview-hide-column-by-code
 2290:  
 2291:             //GridView gridView = (GridView)e.Row.Parent.Parent;
 2292:  
 2293:             var index = GetColumnIndexByName(/*gridView,*/ name);
 2294:  
 2295:             if (index >= 0)
 2296:             {
 2297:                 //gridView.Columns[index].Visible = false;
 2298:                 //gridView.HeaderRow.Cells[index].Visible = false;
 2299:             }
 2300:         }
 2301:  
 2302:         ////////////////////////////////////////////////////////////////////////////
 2303:  
 2304:         /// <summary>
 2305:         ///
 2306:         /// </summary>
 2307:         private static int GetColumnIndexByName(/*GridView gridView,*/ string name)
 2308:         {
 2309:             // https://stackoverflow.com/questions/3925183/method-to-find-gridview-column-index-by-name
 2310:  
 2311:             /*
 2312:             foreach (DataControlField col in gridView.Columns)
 2313:             {
 2314:                 if (col.HeaderText.ToLower().Trim() == name.ToLower().Trim())
 2315:                 {
 2316:                     return gridView.Columns.IndexOf(col);
 2317:                 }
 2318:             }
 2319:             */
 2320:  
 2321:             return -1;
 2322:         }
 2323:  
 2324:         ////////////////////////////////////////////////////////////////////////////
 2325:         ////////////////////////////////////////////////////////////////////////////
 2326:  
 2327:         /// <summary>
 2328:         ///
 2329:         /// </summary>
 2330:         public static void DropDownList_DataBound(/*System.Web.UI.Page page,*/ object sender, EventArgs e, Ia.Ftn.Cl.Models.StaffIdentityUser staff)
 2331:         {
 2332:             string kuwaitFtnAreaListString;
 2333:             //DropDownList ddl;
 2334:             List<Ia.Ftn.Cl.Models.Business.Service.KuwaitFtnArea> kuwaitFtnAreaList;
 2335:  
 2336:             //ddl = (DropDownList)sender;
 2337:  
 2338:             /*
 2339:             foreach (ListItem listItem in ddl.Items)
 2340:             {
 2341:                 kuwaitFtnAreaList = (from k in Ia.Ftn.Cl.Models.Data.Service.KuwaitFtnAreaList where k.SiteList != null && k.SiteList.Any(u => u.Id == int.Parse(listItem.Value)) select k).ToList();
 2342: 
 2343:                 if (kuwaitFtnAreaList != null && kuwaitFtnAreaList.Count > 0)
 2344:                 {
 2345:                     kuwaitFtnAreaListString = string.Join(", ", kuwaitFtnAreaList.Select(n => n.ArabicName).ToArray());
 2346:                 }
 2347:                 else kuwaitFtnAreaListString = null;
 2348: 
 2349:                 listItem.Text = kuwaitFtnAreaListString;
 2350:             }
 2351:             */
 2352:         }
 2353:  
 2354:         ////////////////////////////////////////////////////////////////////////////
 2355:  
 2356:         /// <summary>
 2357:         ///
 2358:         /// </summary>
 2359:         public static void DropDownList_DataBound(/*System.Web.UI.Page page,*/ object sender, EventArgs e)
 2360:         {
 2361:             DropDownList_DataBound(/*page,*/ sender, e, null);
 2362:         }
 2363:  
 2364:         ////////////////////////////////////////////////////////////////////////////
 2365:         ////////////////////////////////////////////////////////////////////////////
 2366:  
 2367:         /// <summary>
 2368:         ///
 2369:         /// </summary>
 2370:         public static void DataList_ItemDataBound(/*System.Web.UI.Page page, object sender, DataListItemEventArgs e*/)
 2371:         {
 2372:             bool senderKnown;
 2373:             string senderId;
 2374:             //DataList dataList;
 2375:  
 2376:             senderKnown = true;
 2377:             //dataList = (DataList)sender;
 2378:             //senderId = dataList.ID;
 2379:  
 2380:             string accessName;
 2381:  
 2382:             accessName = null;
 2383:  
 2384:             /*
 2385:             switch (senderId)
 2386:             {
 2387:                 case "accessNameDataList":
 2388:                     {
 2389:                         //access = (e.Item.DataItem as Ia.Ftn.Cl.Models.Access);
 2390:                         accessName = (e.Item.DataItem as string);
 2391:                         break;
 2392:                     }
 2393:                 default:
 2394:                     senderKnown = false;
 2395:                     break;
 2396:             }
 2397:             */
 2398:  
 2399:             senderKnown = true;
 2400:  
 2401:             if (senderKnown)
 2402:             {
 2403:                 /*
 2404:                 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
 2405:                 {
 2406:                     //CheckBox chk = e.Item.FindControl("AApBlue") as CheckBox;
 2407:                     //Label lbl = e.Item.FindControl("Label1") as Label;
 2408: 
 2409:                     //chk.Checked = (lbl.Text == "Y") ? true : false;
 2410: 
 2411:                     HyperLink hl = e.Item.FindControl("accessNameHyperLink") as HyperLink;
 2412: 
 2413:                     hyperLinkText = accessName;
 2414:                     hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(accessName);
 2415:                 }
 2416:                 */
 2417:  
 2418:                 //foreach (DataListItem dataListItem in dataList.Items)
 2419:                 // {
 2420:  
 2421:                 /*
 2422:                 foreach (Control control in dataList.Controls) // dataListItem.Controls)
 2423:                 {
 2424:                     try
 2425:                     {
 2426:                         if (control is Label)
 2427:                         {
 2428:                             // CheckBox cb = (CheckBox)control.Controls[0];
 2429:                             //Label l = (Label)control;
 2430: 
 2431:                             //switch (l.ID)
 2432:                             //{
 2433:                             /*
 2434:                             case "accessAreaLabel": text = (from kna in Ia.Ftn.Cl.Models.Data.Service.KuwaitFtnAreaList where kna.Id == accessName.AreaId select kna.ArabicName).SingleOrDefault(); break;
 2435:                             case "accessOltLabel": text = (from o in Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.OltList where o.Id == accessName.Olt select o.AmsName).SingleOrDefault(); break;
 2436:                             case "accessBlockLabel": text = accessName.Block.ToString(); break;
 2437:                             case "accessStreetLabel": text = accessName.Street; break;
 2438:                             case "accessPremisesOldLabel": text = accessName.PremisesOld; break;
 2439:                             case "accessPremisesNewLabel": text = accessName.PremisesNew; break;
 2440:                             case "accessPaciLabel": text = accessName.Paci; break;
 2441:                             case "accessNoteLabel": text = accessName.Note; break;
 2442:                             case "accessStaffNameLabel": text = (from _s in Ia.Ftn.Cl.Models.Data.StaffIdentityUser.List() where _s.Id == accessName.StaffIdentityUser.Id select _s.FirstName).SingleOrDefault(); break;
 2443:                             */    /*
 2444:                             case "accessOntFamilyTypeCapacityLabel":
 2445:                                 {
 2446:                                     // temp: later quickly find vendor from accessId
 2447:                                     try
 2448:                                     {
 2449:                                         if (access.Onts != null && access.Onts.Count > 0)
 2450:                                         {
 2451:                                             text = Ia.Ftn.Cl.Models.Data.Nokia.Ont.FamilyTypeFromId(access.Onts.FirstOrDefault().FamilyTypeId);
 2452: 
 2453:                                             text += " (" + Ia.Ftn.Cl.Models.Business.Nokia.Ams.PossibleNumberOfTdForOntFamilyType(access.Onts.FirstOrDefault().FamilyTypeId) + ")";
 2454:                                         }
 2455:                                         else text = string.Empty;
 2456:                                     }
 2457:                                     catch (Exception)// ex)
 2458:                                     {
 2459:                                         text = string.Empty;
 2460:                                     }
 2461: 
 2462:                                     break;
 2463:                                 }
 2464: 
 2465:                             case "accessFamilyTypeInAreaBlockLabel": text = (from kna in Ia.Ftn.Cl.Models.Data.Service.KuwaitFtnAreaList where kna.Id == accessFamilyTypeInAreaBlock.AreaId select kna.NameArabicName).SingleOrDefault(); break;
 2466:                             * /
 2467:                             //}
 2468:                         }
 2469:                         else if (control is HyperLink) // .GetType().ToString() == "System.Web.UI.WebControls.HyperLink")
 2470:                         {
 2471:                             HyperLink hl = (HyperLink)control;
 2472: 
 2473:                             switch (hl.ID)
 2474:                             {
 2475:                                 case "accessNameHyperLink":
 2476:                                     {
 2477:                                         hyperLinkText = accessName; //.Name;
 2478:                                         hyperLinkNavigateUrl = Ia.Ftn.Cl.Models.Business.Maintenance.Find.Url(accessName); //.Name;
 2479:                                         break;
 2480:                                     }
 2481:                                 default:
 2482:                                     {
 2483:                                         break;
 2484:                                     }
 2485:                             }
 2486:                         }
 2487:                         else
 2488:                         {
 2489: 
 2490:                         }
 2491:                     }
 2492:                     catch (Exception)
 2493:                     {
 2494: 
 2495:                     }
 2496:                 }
 2497:                 */
 2498:                 //}
 2499:             }
 2500:             else
 2501:             {
 2502:  
 2503:             }
 2504:         }
 2505:  
 2506:         ////////////////////////////////////////////////////////////////////////////
 2507:         ////////////////////////////////////////////////////////////////////////////
 2508:  
 2509:         /// <summary>
 2510:         ///
 2511:         /// </summary>
 2512:         public static void FormView_DataBound(/*System.Web.UI.Page page,*/ object sender, EventArgs e)
 2513:         {
 2514:         }
 2515:  
 2516:         ////////////////////////////////////////////////////////////////////////////
 2517:         ////////////////////////////////////////////////////////////////////////////
 2518:  
 2519:         /// <summary>
 2520:         ///
 2521:         /// </summary>
 2522:         public static void TreeView_TreeNodeDataBound(/*System.Web.UI.Page page, object sender, System.Web.UI.WebControls.TreeNodeEventArgs e*/)
 2523:         {
 2524:             string s;
 2525:  
 2526:             //s = e.Node.Text.Trim();
 2527:  
 2528:             //s = s.Replace("\r\n", "<br/>");
 2529:             //s = Regex.Replace(s, @"\s+", " ");
 2530:  
 2531:             //e.Node.Text = s;
 2532:         }
 2533:  
 2534:         /*
 2535:         ////////////////////////////////////////////////////////////////////////////
 2536:         ////////////////////////////////////////////////////////////////////////////
 2537: 
 2538:         /// <summary>
 2539:         /// https://stackoverflow.com/questions/9715983/how-to-get-the-cell-value-by-column-name-not-by-index-in-gridview-in-asp-net
 2540:         /// </summary>
 2541:         private static int GetColumnIndexByName(GridViewRow row, string columnName)
 2542:         {
 2543:             int columnIndex = 0;
 2544: 
 2545:             foreach (DataControlFieldCell cell in row.Cells)
 2546:             {
 2547:                 if (cell.ContainingField is BoundField)
 2548:                     if (((BoundField)cell.ContainingField).DataField.Equals(columnName))
 2549:                         break;
 2550:                 columnIndex++; // keep adding 1 while we don't have the correct name
 2551:             }
 2552: 
 2553:             return columnIndex;
 2554:         }
 2555:         */
 2556:  
 2557:         ////////////////////////////////////////////////////////////////////////////
 2558:         ////////////////////////////////////////////////////////////////////////////
 2559:     }
 2560:  
 2561:     ////////////////////////////////////////////////////////////////////////////
 2562:     ////////////////////////////////////////////////////////////////////////////
 2563: }