)>}]
شركة التطبيقات المتكاملة لتصميم وبرمجة البرمجيات الخاصة ش.ش.و.
Integrated Applications Programming Company
Skip Navigation LinksHome » Code Library » Default

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

Default support class for Optical Fiber Network (OFN) ui model.

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