شركة التطبيقات المتكاملة لتصميم النظم البرمجية الخاصة ش.ش.و.

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:                                                          }
                                                    }
                                                    else
                                                    {
                                                        if (Ia.Ngn.Cl.Model.Business.Administration.IsFrameworkGuid(report.UserId))
                                                        {
                                                            arabicNameBracketParentArabicNameBracket = (from f in Ia.Ngn.Cl.Model.Data.Administration.FrameworkList where f.Guid == report.UserId select f.ArabicNameBracketParentArabicNameBracket).SingleOrDefault();
 
                                                            l.Text = arabicNameBracketParentArabicNameBracket;
                                                        }
                                                        else
                                                        {
                                                            firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket = (from _s in Ia.Ngn.Cl.Model.Data.Staff.List where _s.UserId == report.UserId select _s.FirstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket).SingleOrDefault();
 
                                                            l.Text = firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket;
                                                        }
                                                    }
 
                                                    SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(ref e, ref l);
 
                                                    break;
                                                }
                                            case "reportContactLabel":
                                                {
                                                    l.Text = Ia.Cl.Model.Html.Decode(report.Contact);
 
                                                    SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(ref e, ref l);
 
                                                    break;
                                                }
                                            case "reportNoteLabel":
                                                {
                                                    l.Text = Ia.Cl.Model.Html.Decode(report.Note);
 
                                                    SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(ref e, ref l);
 
                                                    break;
                                                }
 
 
                                            case "reportHistoryLastDetailOrReportDetailLabel":
                                                {
                                                    l.Text = report.LastReportHistory != null ? Ia.Cl.Model.Html.Decode(report.LastReportHistory.Detail) : Ia.Cl.Model.Html.Decode(report.Detail);
 
                                                    SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(ref e, ref l);
 
                                                    break;
                                                }
 
                                            case "reportStatusLastHistoricResolutionLabel":
                                                {
                                                    s = Ia.Ngn.Cl.Model.Data.Report.StatusColoredDictionary[report.Status].ToString();
 
                                                    if (report.LastReportHistory != null) s += "/" + Ia.Ngn.Cl.Model.Data.Report.ResolutionIdToEnglishArabicColoredNameDictionary[report.LastReportHistory.Resolution].ToString();
 
                                                    l.Text = s;
 
                                                    break;
                                                }
 
                                            case "reportHistoryLastHistoricalIndicationActionResolutionLabel":
                                                {
                                                    if (report.LastReportHistory != null)
                                                    {
                                                        s = Ia.Ngn.Cl.Model.Data.Report.IndicationColoredDictionary[report.LastReportHistory.Indication].ToString()
                                                            + "/" + Ia.Ngn.Cl.Model.Data.Report.ActionColoredDictionary[report.LastReportHistory.Action].ToString()
                                                            + "/" + Ia.Ngn.Cl.Model.Data.Report.ResolutionIdToColoredNameDictionary[report.LastReportHistory.Resolution].ToString();
                                                    }
                                                    else s = string.Empty;
 
                                                    l.Text = s;
 
                                                    break;
                                                }
 
                                            case "reportAccessServiceRequestLastHistoricResolutionLabel": l.Text = (reportAccessServiceRequest.Report.LastReportHistory != null) ? Ia.Ngn.Cl.Model.Data.Report.ResolutionIdToEnglishArabicColoredNameDictionary[reportAccessServiceRequest.Report.LastReportHistory.Resolution].ToString() : string.Empty; break;
                                            case "reportAccessServiceRequestServiceFlatTermIdLabel": l.Text = "?"; break;
                                            case "reportAccessServiceRequestLastHistoricActionLabel": l.Text = (reportAccessServiceRequest.Report.LastReportHistory != null) ? Ia.Ngn.Cl.Model.Data.Report.ActionColoredDictionary[reportAccessServiceRequest.Report.LastReportHistory.Action].ToString() : string.Empty; break;
                                            case "reportAccessServiceRequestServiceTypeLabel": l.Text = reportAccessServiceRequest.Report.ServiceType.ToString(); break;
                                            case "reportAccessServiceRequestContactLabel": l.Text = Ia.Cl.Model.Html.Decode(reportAccessServiceRequest.Report.Contact); break;
 
                                            case "reportAccessServiceRequestAddressLabel":
                                                {
                                                    if (reportAccessServiceRequest.Access != null)
                                                    {
                                                        l.Text = Ia.Cl.Model.Html.Decode(reportAccessServiceRequest.Access.Address);
                                                    }
 
                                                    break;
                                                }
 
                                            case "reportAccessServiceRequestDetailLabel": l.Text = (reportAccessServiceRequest.Report.LastReportHistory != null) ? Ia.Cl.Model.Html.Decode(reportAccessServiceRequest.Report.LastReportHistory.Detail) : string.Empty; break;
                                            case "reportAccessServiceRequestNoteLabel": l.Text = (reportAccessServiceRequest.Report.LastReportHistory != null) ? Ia.Cl.Model.Html.Decode(reportAccessServiceRequest.Report.LastReportHistory.Note) : string.Empty; break;
                                            case "reportAccessServiceRequestStaffFrameworkLabel":
                                                {
                                                    if (reportAccessServiceRequest.Report.LastReportHistory != null)
                                                    {
                                                        if (Ia.Ngn.Cl.Model.Business.Administration.IsFrameworkGuid(reportAccessServiceRequest.Report.LastReportHistory.UserId))
                                                        {
                                                            l.Text = (from f in Ia.Ngn.Cl.Model.Data.Administration.FrameworkList where f.Guid == reportAccessServiceRequest.Report.LastReportHistory.UserId select f.ArabicName).SingleOrDefault();
                                                        }
                                                        else l.Text = (from _s in Ia.Ngn.Cl.Model.Data.Staff.List where _s.UserId == reportAccessServiceRequest.Report.LastReportHistory.UserId select _s.FirstAndMiddleName).SingleOrDefault();
                                                    }
                                                    else
                                                    {
                                                        l.Text = string.Empty;
                                                    }
 
                                                    break;
                                                }
 
                                            case "reportHistoryLastNoteOrReportNoteLabel":
                                                {
                                                    l.Text = report.LastReportHistory != null ? Ia.Cl.Model.Html.Decode(report.LastReportHistory.Note) : Ia.Cl.Model.Html.Decode(report.Note);
 
                                                    SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(ref e, ref l);
 
                                                    break;
                                                }
                                            case "reportHistoryIndicationLabel": l.Text = Ia.Ngn.Cl.Model.Data.Report.IndicationColoredDictionary[reportHistory.Indication].ToString(); break;
                                            case "reportHistoryAreaLabel":
                                                {
                                                    if (Ia.Ngn.Cl.Model.Data.Report.CategoryAreaColoredDictionary.ContainsKey(reportHistory.Area))
                                                    {
                                                        l.Text = Ia.Ngn.Cl.Model.Data.Report.CategoryAreaColoredDictionary[reportHistory.Area].ToString();
                                                    }
                                                    else l.Text = "Error: Area '" + reportHistory.Area + "' not found. ";
 
                                                    break;
                                                };
                                            case "reportHistoryActionLabel": l.Text = Ia.Ngn.Cl.Model.Data.Report.ActionColoredDictionary[reportHistory.Action].ToString(); break;
                                            case "reportHistoryResolutionLabel": l.Text = Ia.Ngn.Cl.Model.Data.Report.ResolutionIdToEnglishArabicColoredNameDictionary[reportHistory.Resolution].ToString(); break;
                                            case "reportHistoryEstimateLabel": l.Text = Ia.Ngn.Cl.Model.Data.Report.EstimateEnglishAndArabicColoredDictionary[reportHistory.Estimate].ToString(); break;
                                            case "reportHistoryDetailLabel":
                                                {
                                                    l.Text = Ia.Cl.Model.Html.Decode(reportHistory.Detail);
 
                                                    SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(ref e, ref l);
 
                                                    break;
                                                }
                                            case "reportHistoryNoteLabel":
                                                {
                                                    l.Text = Ia.Cl.Model.Html.Decode(reportHistory.Note);
 
                                                    SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(ref e, ref l);
 
                                                    break;
                                                }
                                            case "reportHistoryStaffFrameworkLabel":
                                                {
                                                    if (Ia.Ngn.Cl.Model.Business.Administration.IsFrameworkGuid(reportHistory.UserId))
                                                    {
                                                        arabicNameBracketParentArabicNameBracket = (from f in Ia.Ngn.Cl.Model.Data.Administration.FrameworkList where f.Guid == reportHistory.UserId select f.ArabicNameBracketParentArabicNameBracket).SingleOrDefault();
 
                                                        l.Text = arabicNameBracketParentArabicNameBracket;
                                                    }
                                                    else
                                                    {
                                                        firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket = (from _s in Ia.Ngn.Cl.Model.Data.Staff.List where _s.UserId == reportHistory.UserId select _s.FirstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket).SingleOrDefault();
 
                                                        l.Text = firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket;
                                                    }
 
                                                    SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(ref e, ref l);
 
                                                    break;
                                                }
                                            case "seruattrRouteNameLabel": l.Text = Ia.Ngn.Cl.Model.Business.Huawei.Seruattr.RnidxRouteName[seruattr.RNIDX2]; break;
                                            case "axeSubscriberRouteNameLabel": l.Text = Ia.Ngn.Cl.Model.Business.Ericsson.Subscriber.RouteName(axeSubscriber.SCL); break;
                                            case "serviceRequestStatusLabel": l.Text = Ia.Ngn.Cl.Model.Data.ServiceRequest.StatusSortedList[serviceRequest.Status].ToString(); break;
                                            case "serviceRequestCustomerCategoryIdLabel": l.Text = Ia.Ngn.Cl.Model.Data.ServiceRequest.CustomerCategorySortedList[serviceRequest.CustomerCategoryId].ToString(); break;
                                            case "serviceRequestServiceIdLabel":
                                                {
                                                    if (Ia.Ngn.Cl.Model.Data.ServiceRequest.ServiceSortedList.ContainsKey(serviceRequest.ServiceId))
                                                    {
                                                        l.Text = Ia.Ngn.Cl.Model.Data.ServiceRequest.ServiceSortedList[serviceRequest.ServiceId].ToString();
                                                    }
                                                    else l.Text = "Error: Service '" + serviceRequest.ServiceId + "' not found. ";
 
                                                    break;
                                                };
 
                                            case "serviceRequestHistoryStatusLabel": l.Text = Ia.Ngn.Cl.Model.Data.ServiceRequest.SystemCode[serviceRequestHistory.Status].ToString(); break;
                                            case "serviceRequestHistoryEndDateTimeLabel":
                                                {
                                                    if (serviceRequestHistory.EndDateTime == Ia.Ngn.Cl.Model.Business.Administration.SqlFriendlyJanuary1st1753NullDateTime)
                                                    {
                                                        l.Text = string.Empty;
                                                    }
                                                    else l.Text = serviceRequestHistory.EndDateTime.ToString("yyyy-MM-dd");
 
                                                    break;
                                                };
                                            case "serviceRequestHistoryServiceIdLabel":
                                                {
                                                    if (Ia.Ngn.Cl.Model.Data.ServiceRequest.ServiceSortedList.ContainsKey(serviceRequestHistory.ServiceId))
                                                    {
                                                        l.Text = Ia.Ngn.Cl.Model.Data.ServiceRequest.ServiceSortedList[serviceRequestHistory.ServiceId].ToString();
                                                    }
                                                    else l.Text = "Error: Service '" + serviceRequestHistory.ServiceId + "' not found. ";
 
                                                    break;
                                                };
                                            case "serviceRequestHistoryServiceCategoryIdLabel": l.Text = Ia.Ngn.Cl.Model.Data.ServiceRequest.ServiceCategorySortedList[serviceRequestHistory.ServiceCategoryId].ToString(); break;
 
                                            case "serviceRequestServiceCategoryIdLabel": l.Text = Ia.Ngn.Cl.Model.Data.ServiceRequest.ServiceCategorySortedList[serviceRequest.ServiceCategoryId].ToString(); break;
                                            case "serviceRequestCustomerNameLabel": l.Text = serviceRequest.CustomerName; break;
 
                                            case "serviceRequestServiceServiceTypeLabel": l.Text = Ia.Ngn.Cl.Model.Data.Service.ServiceType(serviceRequestService.ServiceType).ColoredNameArabicName; break;
 
                                            case "serviceRequestServiceTypeLabel": l.Text = "??"; break;
                                            case "serviceRequestServiceProvisionedLabel": l.Text = Ia.Cl.Model.Default.YesNo(serviceRequestService.Provisioned); break;
                                            case "serviceRequestServiceProvisionedArabicLabel": l.Text = Ia.Cl.Model.Default.YesNoInArabic(serviceRequestService.Provisioned); break;
                                            case "serviceRequestServiceCallWaitingLabel": l.Text = Ia.Cl.Model.Default.YesNo(serviceRequestService.CallWaiting); break;
                                            case "serviceRequestServiceCallForwardingLabel": l.Text = Ia.Cl.Model.Default.YesNo(serviceRequestService.CallForwarding); break;
                                            case "serviceRequestServiceAlarmCallLabel": l.Text = Ia.Cl.Model.Default.YesNo(serviceRequestService.AlarmCall); break;
                                            case "serviceRequestServiceInternationalCallingUserControlledLabel": l.Text = Ia.Cl.Model.Default.YesNo(serviceRequestService.InternationalCallingUserControlled); break;
                                            case "serviceRequestServiceInternationalCallingLabel": l.Text = Ia.Cl.Model.Default.YesNo(serviceRequestService.InternationalCalling); break;
                                            case "serviceRequestServiceCallerIdLabel": l.Text = Ia.Cl.Model.Default.YesNo(serviceRequestService.CallerId); break;
                                            case "serviceRequestServiceConferenceCallLabel": l.Text = Ia.Cl.Model.Default.YesNo(serviceRequestService.ConferenceCall); break;
                                            case "serviceRequestServiceAbbriviatedCallingLabel": l.Text = Ia.Cl.Model.Default.YesNo(serviceRequestService.AbbriviatedCalling); break;
                                            case "serviceRequestServiceCallBarringLabel": l.Text = Ia.Cl.Model.Default.YesNo(serviceRequestService.CallBarring); break;
 
                                            case "accessAreaLabel": l.Text = (from kna in Ia.Ngn.Cl.Model.Data.Service.KuwaitOfnAreaList where kna.Id == access.AreaId select kna.ArabicName).SingleOrDefault(); break;
                                            case "accessOltLabel": l.Text = (from o in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OltList where o.Id == access.Olt select o.AmsName).SingleOrDefault(); break;
                                            case "accessBlockLabel": l.Text = access.Block.ToString(); break;
                                            case "accessStreetLabel": l.Text = access.Street; break;
                                            case "accessPremisesOldLabel": l.Text = access.PremisesOld; break;
                                            case "accessPremisesNewLabel": l.Text = access.PremisesNew; break;
                                            case "accessNoteLabel": l.Text = access.Note; break;
                                            case "accessStaffNameLabel": l.Text = (from _s in Ia.Ngn.Cl.Model.Data.Staff.List where _s.UserId == access.UserId select _s.FirstAndMiddleName).SingleOrDefault(); break;
                                            case "accessOntFamilyTypeCapacityLabel":
                                                {
                                                    // temp: later quickly find vendor from accessId
                                                    if (access.Onts != null && access.Onts.Count > 0)
                                                    {
                                                        l.Text = Ia.Ngn.Cl.Model.Data.Nokia.Ont.FamilyTypeStringFromId(access.Onts.FirstOrDefault().FamilyTypeId);
 
                                                        l.Text += " (" + Ia.Ngn.Cl.Model.Business.Nokia.Ont.PossibleNumberOfTdForOntFamilyType(access.Onts.FirstOrDefault().FamilyTypeId) + ")";
                                                    }
                                                    else if (access.EmsOnts != null && access.EmsOnts.Count > 0)
                                                    {
                                                        l.Text = access.EmsOnts.FirstOrDefault().FamilyType.ToString().ToUpper();
 
                                                        l.Text += " (" + access.EmsOnts.FirstOrDefault().EquipmentType.TelPorts + ")";
                                                    }
                                                    else l.Text = string.Empty;
 
                                                    break;
                                                }
 
                                            case "accessFamilyTypeInAreaBlockLabel": l.Text = (from kna in Ia.Ngn.Cl.Model.Data.Service.KuwaitOfnAreaList where kna.Id == accessFamilyTypeInAreaBlock.AreaId select kna.NameArabicName).SingleOrDefault(); break;
 
                                            case "service2ServiceTypeLabel": l.Text = Ia.Ngn.Cl.Model.Data.Service.ServiceType(service2.ServiceType).ColoredNameArabicName; break;
                                            case "service2PortLabel":
                                                {
                                                    if (service2.Port != Ia.Ngn.Cl.Model.Business.Default.PortUndefinedOrInvalidOrUnknown)
                                                    {
                                                        l.Text = service2.Port.ToString();
                                                    }
 
                                                    break;
                                                }
                                            case "service2CallWaitingLabel": l.Text = Ia.Cl.Model.Default.YesNo(service2.CallWaiting); break;
                                            case "service2CallForwardingLabel": l.Text = Ia.Cl.Model.Default.YesNo(service2.CallForwarding); break;
                                            case "service2AlarmCallLabel": l.Text = Ia.Cl.Model.Default.YesNo(service2.AlarmCall); break;
                                            case "service2InternationalCallingUserControlledLabel": l.Text = Ia.Cl.Model.Default.YesNo(service2.InternationalCallingUserControlled); break;
                                            case "service2InternationalCallingLabel": l.Text = Ia.Cl.Model.Default.YesNo(service2.InternationalCalling); break;
                                            case "service2CallerIdLabel": l.Text = Ia.Cl.Model.Default.YesNo(service2.CallerId); break;
                                            case "service2ConferenceCallLabel": l.Text = Ia.Cl.Model.Default.YesNo(service2.ConferenceCall); break;
                                            case "service2AbbriviatedCallingLabel": l.Text = Ia.Cl.Model.Default.YesNo(service2.AbbriviatedCalling); break;
                                            case "service2CallBarringLabel": l.Text = Ia.Cl.Model.Default.YesNo(service2.CallBarring); break;
                                            case "service2ServiceSuspensionLabel": l.Text = Ia.Cl.Model.Default.YesNo(service2.ServiceSuspension); break;
 
                                            case "serviceRequestAdministrativeIssueTypeNameArabicNameLabel": l.Text = Ia.Ngn.Cl.Model.Business.ServiceRequestAdministrativeIssue.ColoredTypeCode(serviceRequestAdministrativeIssue.Type); break;
 
                                            case "isPrimaryAgcfGatewayRecordLabel": l.Text = Ia.Cl.Model.Default.YesNo(agcfGatewayRecord.IsPrimary); break;
 
                                            case "ontFamilyTypeLabel": l.Text = Ia.Ngn.Cl.Model.Data.Nokia.Ont.FamilyTypeStringFromId(ont.FamilyTypeId); break;
                                            case "ontStateIdLabel": l.Text = Ia.Ngn.Cl.Model.Data.Nokia.Ams.ColoredBellcoreStateFromId(ont.StateId); break;
                                            case "ontServiceVoipStateIdLabel": l.Text = Ia.Ngn.Cl.Model.Data.Nokia.Ams.ColoredBellcoreStateFromId(ontServiceVoip.StateId); break;
                                            case "ontServiceVoipMgcIpLabel": l.Text = ontServiceVoip.MgcIp; break;
                                            case "ontOntPotsStateIdLabel": l.Text = Ia.Ngn.Cl.Model.Data.Nokia.Ams.ColoredBellcoreStateFromId(ontOntPots.StateId); break;
                                            case "ontVendorLabel": l.Text = Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.Vendor.VendorNameFromId(ont.VendorId); break;
 
                                            case "emsDevStateIdLabel": l.Text = Ia.Ngn.Cl.Model.Data.Huawei.Ems.ColoredBellcoreStateFromId(emsDev.StateId); break;
                                            case "emsOntStateIdLabel": l.Text = Ia.Ngn.Cl.Model.Data.Huawei.Ems.ColoredBellcoreStateFromId(emsOnt.StateId); break;
                                            case "emsOntSipInfoStateIdLabel": l.Text = Ia.Ngn.Cl.Model.Data.Huawei.Ems.ColoredBellcoreStateFromId(emsOntSipInfo.StateId); break;
                                            case "emsOntSipInfoEmsOntAliasLabel": l.Text = emsOntSipInfo.EmsOnt.ALIAS.ToString(); break;
 
                                            //case "emsVoipPstnUserStateIdLabel": l.Text = Ia.Ngn.Cl.Model.Data.Huawei.Ems.ColoredBellcoreStateFromId(emsVoipPstnUser.StateId); break;
                                            //case "emsVagStateIdLabel": l.Text = Ia.Ngn.Cl.Model.Data.Huawei.Ems.ColoredBellcoreStateFromId(emsVag.StateId); break;
 
                                            case "emsDevTypeLabel": l.Text = emsDev.Type.ToString().ToUpper(); break;
                                            case "emsDevResultCodeLabel": l.Text = Ia.Ngn.Cl.Model.Client.Huawei.Ems.ColoredResultCodeString(emsDev.ResultCode); break;
                                            case "emsOntResultCodeLabel": l.Text = Ia.Ngn.Cl.Model.Client.Huawei.Ems.ColoredResultCodeString(emsOnt.ResultCode); break;
                                            case "emsOntSipInfoResultCodeLabel": l.Text = Ia.Ngn.Cl.Model.Client.Huawei.Ems.ColoredResultCodeString(emsOntSipInfo.ResultCode); break;
 
                                            case "emsVoipPstnUserEmsDevDevLabel": l.Text = Ia.Ngn.Cl.Model.Data.Huawei.Dev.EmsDevDevByEmsDevDid(emsVoipPstnUser.DID); break;
                                            //case "emsVoipPstnUserResultCodeLabel": l.Text = Ia.Ngn.Cl.Model.Client.Huawei.Ems.ColoredResultCodeString(emsVoipPstnUser.ResultCode); break;
                                            //case "emsVagResultCodeLabel": l.Text = Ia.Ngn.Cl.Model.Client.Huawei.Ems.ColoredResultCodeString(emsVag.ResultCode); break;
                                            //case "emsVoipPstnUserEmsOntAliasLabel": l.Text = emsVoipPstnUser.EmsOnt.ALIAS; break;
 
                                            case "impuOwsbrUsCodeLabel": l.Text = Ia.Ngn.Cl.Model.Business.Huawei.Owsbr.UsCodeColoredString(owsbr.US); break;
 
                                            case "userNameLabel": l.Text = membershipUser.UserName; break;
                                            case "userEmailLabel": l.Text = membershipUser.Email; break;
                                            case "userIsApprovedLabel": l.Text = Ia.Cl.Model.Default.YesNo(membershipUser.IsApproved); break;
                                            case "userIsOnlineLabel": l.Text = Ia.Cl.Model.Default.YesNo(membershipUser.IsOnline); break;
                                            case "userIsLockedOutLabel": l.Text = Ia.Cl.Model.Default.YesNo(membershipUser.IsLockedOut); break;
 
                                            case "staffIsHeadLabel": l.Text = Ia.Cl.Model.Default.YesNoInArabic(staff.IsHead); break;
                                            case "staffFirstNameLabel": l.Text = staff.FirstName; break;
                                            case "staffMiddleNameLabel": l.Text = staff.MiddleName; break;
                                            case "staffLastNameLabel": l.Text = staff.LastName; break;
                                            case "staffIpPbxExtensionLabel": l.Text = staff.IpPbxExtension; break;
                                            case "staffEmploymentIdLabel": l.Text = staff.EmploymentId.ToString(); break;
                                            case "staffAdministrativeFrameworkIdLabel": l.Text = (from f in Ia.Ngn.Cl.Model.Data.Administration.FrameworkList where f.Id == staff.AdministrativeFrameworkId select f.FullyQualifiedArabicName).SingleOrDefault(); break;
                                            case "staffIdentityUserIdLabel": l.Text = Ia.Cl.Model.Identity.UserNameDictionary[staff.UserId]; break;
                                            case "staffUserEmailLabel":
                                                {
                                                    userList = Ia.Cl.Model.Identity.UserList;
 
                                                    l.Text = (from u in userList where u.ProviderUserKey == staff.UserId select u.Email).SingleOrDefault();
                                                    break;
                                                }
 
                                            case "contactFirstNameLabel": l.Text = contact.FirstName; break;
                                            case "contactMiddleNameLabel": l.Text = contact.MiddleName; break;
                                            case "contactLastNameLabel": l.Text = contact.LastName; break;
                                            case "contactCompanyLabel": l.Text = contact.Company; break;
                                            case "contactEmailLabel": l.Text = contact.Email; break;
                                            case "contactPhoneLabel": l.Text = contact.Phone; break;
                                            case "contactAddressLabel": l.Text = contact.Address; break;
                                            case "contactApprovedLabel": l.Text = Ia.Cl.Model.Default.YesNoInArabic(contact.IsApproved); break;
                                            case "contactUrlLabel": l.Text = contact.Url; break;
                                            case "contactNoteLabel": l.Text = contact.Note; break;
                                            case "contactUserIdLabel": l.Text = contact.UserId.ToString(); break;
 
                                            case "reportUserNameLabel": l.Text = "?"; break;
                                            case "reportStaffFrameworkLabel":
                                                {
                                                    if (Ia.Ngn.Cl.Model.Business.Administration.IsFrameworkGuid(report.UserId))
                                                    {
                                                        arabicNameBracketParentArabicNameBracket = (from f in Ia.Ngn.Cl.Model.Data.Administration.FrameworkList where f.Guid == report.UserId select f.ArabicNameBracketParentArabicNameBracket).SingleOrDefault();
 
                                                        l.Text = arabicNameBracketParentArabicNameBracket;
                                                    }
                                                    else
                                                    {
                                                        firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket = (from _s in Ia.Ngn.Cl.Model.Data.Staff.List where _s.UserId == report.UserId select _s.FirstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket).SingleOrDefault();
 
                                                        l.Text = firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket;
                                                    }
 
                                                    SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(ref e, ref l);
 
                                                    /*
                                                    if (report.LastReportHistory.UserId == staffMembershipUser.UserId)
                                                    {
                                                        //e.Row.BackColor = System.Drawing.Color.SlateGray;
                                                    }
                                                    */
 
                                                    break;
                                                }
                                            case "accessAreaStatisticLabel": l.Text = (from kna in Ia.Ngn.Cl.Model.Data.Service.KuwaitOfnAreaList where kna.Id == areaId select kna.ArabicName).SingleOrDefault(); break;
                                            case "subscriberCallWaitingLabel": l.Text = Ia.Cl.Model.Default.YesNo(subscriber.CallWaiting); break;
                                            case "subPartyIsSipLabel": l.Text = Ia.Cl.Model.Default.YesNo(Ia.Ngn.Cl.Model.Business.Nokia.SubParty.IsSip(subParty.PrimaryPUIDCPEProfileNumber)); break;
                                            case "subPartyServiceSuspensionLabel": l.Text = Ia.Cl.Model.Default.YesNo(subParty.ServiceSuspension); break;
                                            case "subscriberCallForwardingLabel": l.Text = Ia.Cl.Model.Default.YesNo(subscriber.CallForwarding); break;
                                            case "subscriberAlarmCallLabel": l.Text = Ia.Cl.Model.Default.YesNo(subscriber.AlarmCall); break;
                                            case "subscriberInternationalCallingUserControlledLabel": l.Text = Ia.Cl.Model.Default.YesNo(subscriber.InternationalCallingUserControlled); break;
                                            case "subscriberInternationalCallingLabel": l.Text = Ia.Cl.Model.Default.YesNo(subscriber.InternationalCalling); break;
                                            case "subscriberCallerIdLabel": l.Text = Ia.Cl.Model.Default.YesNo(subscriber.CallerId); break;
                                            case "subscriberConferenceCallLabel": l.Text = Ia.Cl.Model.Default.YesNo(subscriber.ConferenceCall); break;
                                            case "subscriberAbbriviatedCallingLabel": l.Text = Ia.Cl.Model.Default.YesNo(subscriber.AbbriviatedCalling); break;
                                            case "subscriberCallBarringLabel": l.Text = "?"; break;
 
                                            case "nddOntPonPositionLabel": l.Text = nddOnt.Pon.Position; break;
                                            case "nddOntPonOltOdfSiteNameLabel": l.Text = nddOnt.Pon.PonGroup.Olt.Odf.Router.Site.Name; break;
                                            case "nddOntPonOltOdfSiteNameArabicNameLabel": l.Text = nddOnt.Pon.PonGroup.Olt.Odf.Router.Site.Name + " (" + nddOnt.Pon.PonGroup.Olt.Odf.Router.Site.ArabicName + ")"; break;
                                            case "nddOntPonOltAmsNameLabel": l.Text = nddOnt.Pon.PonGroup.Olt.AmsName; break;
                                            case "nddOntPonOltAreaLabel": l.Text = nddOnt.Pon.PonGroup.Olt.Symbol; break;
                                            case "nddOntPrimarySwitchLabel": l.Text = nddOnt.PrimarySwitch; break;
                                            case "nddOntPonOltFieldTypeLabel": l.Text = Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.FieldTypeColoredString(nddOnt.Pon.PonGroup.Olt.FieldType); break;
                                            case "nddOntPonOltIsSipLabel": l.Text = Ia.Cl.Model.Default.YesNo(nddOnt.Pon.PonGroup.Olt.IsSip); break;
 
                                            case "nddOntMgcIpLabel": l.Text = nddOnt.MgcIp; break;
                                            case "nddOntMgcSecondaryIpLabel": l.Text = nddOnt.MgcSecondaryIp; break;
                                            case "nddOntPonOltVlanLabel": l.Text = "?"; break; // nddOnt.Pon.PonGroup.Olt.Vlan.ToString(); break;
                                            case "nddOntPonOltNetworkNumberLabel": l.Text = nddOnt.Pon.PonGroup.NetworkNumber; break;
                                            case "nddOntPonOltGatewayIpLabel": l.Text = nddOnt.Pon.PonGroup.GatewayIp; break;
                                            case "nddOntImsServiceLabel": l.Text = nddOnt.ImsService.ToString(); break;
                                            case "nddOntImsFsdbLabel": l.Text = nddOnt.ImsFsdb; break;
 
                                            case "nddOntProposedNameLabel":
                                                {
                                                    /*
                                                    if (nddOnt.Pon.PonGroup.HasNewProposedPonList)
                                                    {
                                                        l.Text = nddOnt.Access.ProposedName;
                                                    }
                                                    else
                                                    {
                                                        ((GridView)e.Row.Parent.Parent).Columns[5].Visible = false;
                                                        // 5 is position (0 based) of HeaderText="Proposed Name"
                                                    }
                                                    */
 
                                                    break;
                                                }
 
                                            case "nddOntPonOltOdfAccessVendorNameLabel": l.Text = nddOnt.Pon.PonGroup.Olt.Odf.Vendor.Name; break;
                                            case "nddOntPonOltOdfRouterSwitchVendorNameLabel": l.Text = nddOnt.Pon.PonGroup.Olt.Odf.Router.Vendor.Name; break;
 
                                            case "serviceExemptionNoteLabel": l.Text = serviceExemption.Note; break;
                                            case "serviceExemptionStaffNameLabel": l.Text = (from _s in Ia.Ngn.Cl.Model.Data.Staff.List where _s.UserId == serviceExemption.UserId select _s.FirstAndMiddleName).SingleOrDefault(); break;
 
                                            case "serviceRequestAreaLabel": l.Text = (from kna in Ia.Ngn.Cl.Model.Data.Service.KuwaitOfnAreaList where kna.Id == serviceRequest.AreaId select kna.ArabicName).SingleOrDefault(); break;
                                            case "serviceRequestOntAreaLabel": l.Text = (from kna in Ia.Ngn.Cl.Model.Data.Service.KuwaitOfnAreaList where kna.Symbol == serviceRequestOnt.AreaSymbol select kna.ArabicName).SingleOrDefault(); break;
 
                                            case "serviceRequestOntDetailServiceTypeLabel": l.Text = Ia.Ngn.Cl.Model.Data.ServiceRequest.ServiceSortedList[serviceRequestOntDetail.ServiceType].ToString(); break;
 
                                            default: break;
                                        }
                                    }
                                    else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.HyperLink")
                                    {
                                        HyperLink hl = (HyperLink)control.Controls[0];
 
                                        switch (hl.ID)
                                        {
                                            case "reportServiceHyperLink":
                                                {
                                                    s = Ia.Ngn.Cl.Model.Business.Service.ServiceName(report.Service, report.ServiceType);
                                                    hl.Text = s;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(s);
                                                    break;
                                                }
                                            case "reportAccessServiceRequestServiceHyperLink":
                                                {
                                                    s = Ia.Ngn.Cl.Model.Business.Service.ServiceName(reportAccessServiceRequest.Report.Service, reportAccessServiceRequest.Report.ServiceType);
                                                    hl.Text = s;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(s);
                                                    break;
                                                }
                                            case "serviceRequestNumberSerialHyperLink":
                                                {
                                                    hl.Text = serviceRequest.Number + "/" + serviceRequest.Serial;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceRequest.Number.ToString());
                                                    break;
                                                }
                                            case "serviceRequestCustomerNameHyperLink":
                                                {
                                                    hl.Text = serviceRequest.CustomerName;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceRequest.CustomerName);
                                                    break;
                                                }
                                            case "impuHuSbrHyperLink":
                                                {
                                                    hl.Text = huSbr.IMPU;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(huSbr.IMPU);
                                                    break;
                                                }
                                            case "impuOwsbrHyperLink":
                                                {
                                                    hl.Text = owsbr.IMPU;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(owsbr.IMPU);
                                                    break;
                                                }
                                            case "seruattrUsrnumHyperLink":
                                                {
                                                    hl.Text = seruattr.USRNUM;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(seruattr.USRNUM);
                                                    break;
                                                }
                                            case "axeSubscriberSnbHyperLink":
                                                {
                                                    hl.Text = axeSubscriber.SNB.ToString();
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(axeSubscriber.SNB.ToString());
                                                    break;
                                                }
                                            case "ewsdSubscriberDnHyperLink":
                                                {
                                                    hl.Text = ewsdSubscriber.DN.ToString();
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(ewsdSubscriber.DN.ToString());
                                                    break;
                                                }
                                            case "accessPositionHyperLink":
                                                {
                                                    hl.Text = access.Position;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(access.Position);
 
                                                    break;
                                                }
                                            case "accessPaciHyperLink":
                                                {
                                                    hl.Text = access.Paci;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(access.Paci) + "&inputType=" + Ia.Ngn.Cl.Model.Business.Maintenance.Find.PaciInputTypeString;
 
                                                    break;
                                                }
                                            case "ontSerialHyperLink":
                                                {
                                                    hl.Text = ont.Serial;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(ont.Serial);
                                                    break;
                                                }
                                            case "ontResetHyperLink":
                                                {
                                                    //hl.Text = "Reset";
                                                    hl.NavigateUrl = "~/maintenance/access.aspx?accessName=" + Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.AccessNameByOntId(ont.Id);
                                                    break;
                                                }
                                            case "ontAmsEventsHyperLink":
                                                {
                                                    //hl.Text = "Events";
                                                    hl.NavigateUrl = "~/maintenance/event/ams.aspx?accessName=" + Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.AccessNameByOntId(ont.Id);
                                                    break;
                                                }
                                            case "emsOntResetHyperLink":
                                                {
                                                    //hl.Text = "Reset";
                                                    hl.NavigateUrl = "~/maintenance/access.aspx?accessName=" + Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.AccessNameByOntId(emsOnt.Id);
                                                    break;
                                                }
                                            case "reportAccessServiceRequestAccessNameHyperLink":
                                                {
                                                    if (reportAccessServiceRequest.Access != null)
                                                    {
                                                        hl.Text = reportAccessServiceRequest.Access.Name;
                                                        hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(reportAccessServiceRequest.Access.Name);
                                                    }
 
                                                    break;
                                                }
                                            case "nddOntNameHyperLink":
                                                {
                                                    hl.Text = nddOnt.Access.Name;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(nddOnt.Access.Name);
                                                    break;
                                                }
                                            case "nddOntPonNameHyperLink":
                                                {
                                                    hl.Text = nddOnt.Pon.Name;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(nddOnt.Pon.Name);
                                                    break;
                                                }
                                            case "nddOntPositionHyperLink":
                                                {
                                                    hl.Text = nddOnt.Position;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(nddOnt.Position);
                                                    break;
                                                }
                                            case "nddOntIpHyperLink":
                                                {
                                                    hl.Text = nddOnt.Ip;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(nddOnt.Ip);
                                                    break;
                                                }
                                            case "serviceRequestServiceServiceHyperLink":
                                                {
                                                    s = Ia.Ngn.Cl.Model.Business.Service.ServiceName(serviceRequestService.Service, serviceRequestService.ServiceType);
 
                                                    hl.Text = s;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(s);
                                                    break;
                                                }
                                            case "serviceRequestServiceAccessNameHyperLink":
                                                {
                                                    if (serviceRequestService.Access != null)
                                                    {
                                                        hl.Text = serviceRequestService.Access.Name;
                                                        hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceRequestService.Access.Name);
                                                    }
                                                    break;
                                                }
                                            case "serviceRequestServiceReferenceHyperLink":
                                                {
                                                    var accessName = serviceRequestService.Access != null ? serviceRequestService.Access.Name : string.Empty;
 
                                                    //hl.Text = "Reference";
                                                    hl.NavigateUrl = "~/provision/service-request-service-access.aspx?service=" + serviceRequestService.Service + "&accessName=" + accessName;
 
                                                    break;
                                                }
                                            case "serviceRequestNumberHyperLink":
                                                {
                                                    hl.Text = serviceRequest.Number.ToString();
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceRequest.Number.ToString());
                                                    break;
                                                }
                                            case "serviceRequestCustomerIdHyperLink":
                                                {
                                                    hl.Text = serviceRequest.CustomerId.ToString();
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceRequest.CustomerId.ToString()) + "&inputType=" + Ia.Ngn.Cl.Model.Business.Maintenance.Find.ServiceRequestCustomerIdInputTypeString;
                                                    break;
                                                }
                                            case "serviceRequestHistoryNumberHyperLink":
                                                {
                                                    hl.Text = serviceRequestHistory.Number.ToString();
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceRequestHistory.Number.ToString());
                                                    break;
                                                }
                                            case "accessOdfHyperLink":
                                                {
                                                    hl.Text = access.Odf;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(access.Odf);
                                                    break;
                                                }
                                            case "accessNameHyperLink":
                                                {
                                                    hl.Text = access.Name;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(access.Name);
                                                    break;
                                                }
                                            case "accessBlockHyperLink":
                                                {
                                                    string areaSymbol;
 
                                                    //if (int.TryParse(access.Block, out int i))
                                                    //{
                                                    hl.Text = access.Block;
                                                    areaSymbol = (from kna in Ia.Ngn.Cl.Model.Data.Service.KuwaitOfnAreaList where kna.Id == access.AreaId select kna.Symbol).SingleOrDefault();
 
                                                    if (!string.IsNullOrEmpty(areaSymbol))
                                                    {
                                                        hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(areaSymbol + "," + access.Block);
                                                    }
                                                    else
                                                    {
 
                                                    }
                                                    //}
                                                    //else
                                                    //{
 
                                                    //}
 
                                                    break;
                                                }
 
                                            case "service2ServiceHyperLink":
                                                {
                                                    s = Ia.Ngn.Cl.Model.Business.Service.ServiceName(service2.Service, service2.ServiceType);
 
                                                    hl.Text = s;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(s);
                                                    break;
                                                }
                                            case "service2AccessNameHyperLink":
                                                {
                                                    if (service2.AccessName != null && service2.Port != Ia.Ngn.Cl.Model.Business.Default.PortUndefinedOrInvalidOrUnknown)
                                                    {
                                                        hl.Text = service2.AccessName;
                                                        hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(service2.AccessName);
                                                    }
                                                    break;
                                                }
                                            case "service2ServiceProvisionHyperLink":
                                                {
                                                    var accessName = service2.AccessName != null ? service2.AccessName : string.Empty;
 
                                                    //hl.Text = "ServiceProvision";
                                                    hl.NavigateUrl = "~/provision/service.aspx?service=" + service2.Service + "&accessName=" + accessName;
 
                                                    break;
                                                }
                                            case "emsOntSipInfoServiceProvisionHyperLink":
                                                {
                                                    var service = Ia.Ngn.Cl.Model.Business.NumberFormatConverter.Service(emsOntSipInfo.SIPUSERNAME);
 
                                                    var accessName = (emsOntSipInfo.EmsOnt != null
                                                        && emsOntSipInfo.EmsOnt.Access != null
                                                        && emsOntSipInfo.EmsOnt.Access.Name != null) ? emsOntSipInfo.EmsOnt.Access.Name : string.Empty;
 
                                                    var port = emsOntSipInfo.TEL;
 
                                                    //hl.Text = "ServiceProvision";
                                                    hl.NavigateUrl = "~/provision/access/service.aspx?service=" + service + "&accessName=" + accessName + "&port=" + port;
 
                                                    break;
                                                }
                                            case "emsVoipPstnUserLicNameHyperLink":
                                                {
                                                    if (emsVoipPstnUser.IsMsan)
                                                    {
                                                        var lic = Ia.Ngn.Cl.Model.Data.Huawei.Default.MsanDevLicByEmsVoipPstnUserId(emsVoipPstnUser.Id);
 
                                                        if (lic != null)
                                                        {
                                                            hl.Text = lic.Name;
                                                            hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(lic.Name);
                                                        }
                                                    }
                                                    else HideColumnName(e, "Name");
 
                                                    break;
                                                }
                                            case "emsVoipPstnUserServiceOrMsanLicProvisionHyperLink":
                                                {
                                                    int did, port, cabinet, frame, fn, sn, pn;
                                                    string accessName, msanDevId;
                                                    var service = Ia.Ngn.Cl.Model.Business.NumberFormatConverter.Service(emsVoipPstnUser.DN);
 
                                                    did = emsVoipPstnUser.DID;
 
                                                    if (emsVoipPstnUser.IsMsan)
                                                    {
                                                        var lic = Ia.Ngn.Cl.Model.Data.Huawei.Default.MsanDevLicByEmsVoipPstnUserId(emsVoipPstnUser.Id);
 
                                                        if (lic != null)
                                                        {
                                                            msanDevId = lic.MsanDevId;
                                                            cabinet = lic.Cabinet;
                                                            frame = lic.Frame;
                                                            fn = lic.Fn;
                                                            sn = lic.Sn;
                                                            pn = lic.Pn;
                                                        }
                                                        else
                                                        {
                                                            msanDevId = string.Empty;
                                                            cabinet = frame = fn = sn = pn = -1;
                                                        }
 
                                                        hl.NavigateUrl = "~/provision/lic.aspx?msanDevId=" + msanDevId 
                                                            + "&cabinet=" + cabinet
                                                            + "&frame=" + frame
                                                            + "&fn=" + fn
                                                            + "&sn=" + sn
                                                            + "&pn=" + pn
                                                            + "&service=" + service;
                                                    }
                                                    else
                                                    {
                                                        var didToMduDevDictionary = Ia.Ngn.Cl.Model.Data.Huawei.Default.DidToMduDevDictionary;
 
                                                        var mduDev = Ia.Ngn.Cl.Model.Data.Huawei.Default.MduDevByDid(did);
 
                                                        if (mduDev != null)
                                                        {
                                                            accessName = mduDev.AccessName;
 
                                                            var fnSnPnPort = mduDev.PossibleFnSnPnPortList.Where(f => f.Fn == emsVoipPstnUser.FN && f.Sn == emsVoipPstnUser.SN && f.Pn == emsVoipPstnUser.PN).SingleOrDefault();
 
                                                            if (fnSnPnPort != null) port = fnSnPnPort.Port;
                                                            else port = Ia.Ngn.Cl.Model.Business.Default.PortUndefinedOrInvalidOrUnknown;
                                                        }
                                                        else
                                                        {
                                                            accessName = string.Empty;
                                                            port = Ia.Ngn.Cl.Model.Business.Default.PortUndefinedOrInvalidOrUnknown;
                                                        }
 
                                                        //hl.Text = "ServiceProvision";
                                                        hl.NavigateUrl = "~/provision/access/service.aspx?service=" + service + "&accessName=" + accessName + "&port=" + port;
                                                    }
 
                                                    break;
                                                }
                                            case "serviceExemptionServiceHyperLink":
                                                {
                                                    s = Ia.Ngn.Cl.Model.Business.Service.ServiceName(serviceExemption.Service, serviceExemption.ServiceType);
 
                                                    hl.Text = s;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(s);
                                                    break;
                                                }
                                            case "reportHistoryServiceHyperLink":
                                                {
                                                    s = Ia.Ngn.Cl.Model.Business.Service.ServiceName(reportHistory.Report.Service, reportHistory.Report.ServiceType);
 
                                                    hl.Text = s;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(s);
                                                    break;
                                                }
                                            case "serviceRequestOntDetailServiceHyperLink":
                                                {
                                                    s = Ia.Ngn.Cl.Model.Business.Service.ServiceName(serviceRequestOntDetail.Service, serviceRequestOntDetail.ServiceType);
 
                                                    hl.Text = s;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(s);
                                                    break;
                                                }
                                            case "serviceRequestOntNameHyperLink":
                                                {
                                                    hl.Text = serviceRequestOnt.Name;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceRequestOnt.Name);
                                                    break;
                                                }
                                            case "serviceRequestOntBlockHyperLink":
                                                {
                                                    hl.Text = serviceRequestOnt.Block;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceRequestOnt.AreaSymbol + "," + serviceRequestOnt.Block);
 
                                                    break;
                                                }
                                            case "serviceRequestOntPaciHyperLink":
                                                {
                                                    hl.Text = serviceRequestOnt.Paci;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceRequestOnt.Paci) + "&inputType=" + Ia.Ngn.Cl.Model.Business.Maintenance.Find.PaciInputTypeString;
 
                                                    break;
                                                }
                                            case "serviceRequestAdministrativeIssueServiceHyperLink":
                                                {
                                                    hl.Text = serviceRequestAdministrativeIssue.Service;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceRequestAdministrativeIssue.Service);
                                                    break;
                                                }
                                            case "eventAccessNameHyperLink":
                                                {
                                                    if (@event.Ont != null)
                                                    {
                                                        var ontId = @event.Ont.Id;
 
                                                        var accessName = Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.AccessNameByOntId(ontId);
 
                                                        hl.Text = accessName;
                                                        hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(accessName);
                                                    }
 
                                                    break;
                                                }
                                            case "gwIdAgcfGatewayRecordHyperLink":
                                                {
                                                    hl.Text = agcfGatewayRecord.GwId.ToString();
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(agcfGatewayRecord.GwId.ToString());
                                                    break;
                                                }
                                            case "ip1AgcfGatewayRecordHyperLink":
                                                {
                                                    hl.Text = agcfGatewayRecord.IP1;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(agcfGatewayRecord.IP1);
                                                    break;
                                                }
                                            case "ip2AgcfGatewayRecordHyperLink":
                                                {
                                                    hl.Text = agcfGatewayRecord.IP2;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(agcfGatewayRecord.IP2);
                                                    break;
                                                }
                                            case "gwIdAgcfEndpointHyperLink":
                                                {
                                                    hl.Text = agcfEndpoint.GwId.ToString();
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(agcfEndpoint.GwId.ToString());
                                                    break;
                                                }
 
                                            case "eidMgwHyperLink":
                                                {
                                                    hl.Text = mgw.EID;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(mgw.EID);
                                                    break;
                                                }
                                            case "puiAsbrHyperLink":
                                                {
                                                    hl.Text = asbr.PUI;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(asbr.PUI);
                                                    break;
                                                }
                                            case "eidAsbrHyperLink":
                                                {
                                                    hl.Text = asbr.EID;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(asbr.EID);
                                                    break;
                                                }
 
                                            case "subPartyDisplayNameHyperLink":
                                                {
                                                    hl.Text = subParty.DisplayName;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(subParty.DisplayName);
                                                    break;
                                                }
                                            case "ontServiceVoipIpHyperLink":
                                                {
                                                    hl.Text = ontServiceVoip.Ip.ToString();
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(ontServiceVoip.Ip);
                                                    break;
                                                }
                                            case "reportHistoryHyperLink":
                                                {
                                                    //hl.Text = "<img src=" + Ia.Cl.Model.Default.AbsoluteUrl(page) + "/image/legend/history.png class=icon alt=History width=19 height=19 />";
                                                    hl.NavigateUrl = "~/maintenance/report/history.aspx?reportId=" + report.Id;
                                                    break;
                                                }
                                            case "serviceServiceAccessNameHyperLink":
                                                {
                                                    if (serviceAccessName.Service != null)
                                                    {
                                                        hl.Text = serviceAccessName.Service;
                                                        hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceAccessName.Service);
                                                    }
                                                    break;
                                                }
                                            case "accessNameServiceAccessNameHyperLink":
                                                {
                                                    if (serviceAccessName.AccessName != null)
                                                    {
                                                        hl.Text = serviceAccessName.AccessName;
                                                        hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceAccessName.AccessName);
                                                    }
                                                    break;
                                                }
                                            case "serviceServiceAccessNameAddressHyperLink":
                                                {
                                                    if (serviceAccessNameAddress.Service != null)
                                                    {
                                                        hl.Text = serviceAccessNameAddress.Service;
                                                        hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceAccessNameAddress.Service);
                                                    }
                                                    break;
                                                }
                                            case "accessNameServiceAccessNameAddressHyperLink":
                                                {
                                                    if (serviceAccessNameAddress.AccessName != null)
                                                    {
                                                        hl.Text = serviceAccessNameAddress.AccessName;
                                                        hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceAccessNameAddress.AccessName);
                                                    }
                                                    break;
                                                }
                                            case "msanDevLicNameHyperLink":
                                                {
                                                    if (msanDevLic.Name != null)
                                                    {
                                                        hl.Text = msanDevLic.Name;
                                                        hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(msanDevLic.Name);
                                                    }
                                                    break;
                                                }
                                            case "msanDevLicServiceHyperLink":
                                                {
                                                    if (msanDevLic.Service != null)
                                                    {
                                                        hl.Text = msanDevLic.Service;
                                                        hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(msanDevLic.Service);
                                                    }
                                                    break;
                                                }
                                            default: break;
                                        }
                                    }
                                    else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.TextBox")
                                    {
                                        TextBox tb = (TextBox)control.Controls[0];
 
                                        switch (tb.ID)
                                        {
                                            case "staffEmploymentIdTextBox": tb.Text = staff.EmploymentId.ToString(); break;
                                            case "staffFirstNameTextBox": tb.Text = staff.FirstName; break;
                                            case "staffMiddleNameTextBox": tb.Text = staff.MiddleName; break;
                                            case "staffLastNameTextBox": tb.Text = staff.LastName; break;
                                            case "staffIpPbxExtensionTextBox": tb.Text = staff.IpPbxExtension; break;
 
                                            case "contactFirstNameTextBox": tb.Text = contact.FirstName; break;
                                            case "contactMiddleNameTextBox": tb.Text = contact.MiddleName; break;
                                            case "contactLastNameTextBox": tb.Text = contact.LastName; break;
                                            case "contactCompanyTextBox": tb.Text = contact.Company; break;
                                            case "contactEmailTextBox": tb.Text = contact.Email; break;
                                            case "contactPhoneTextBox": tb.Text = contact.Phone; break;
                                            case "contactAddressTextBox": tb.Text = contact.Address; break;
                                            case "contactUrlTextBox": tb.Text = contact.Url; break;
                                            case "contactNoteTextBox": tb.Text = contact.Note; break;
 
                                            case "userNameTextBox": tb.Text = membershipUser.UserName; break;
                                            case "userEmailTextBox": tb.Text = membershipUser.Email; break;
                                            case "accessBlockTextBox": tb.Text = access.Block.ToString(); break;
                                            case "accessStreetTextBox": tb.Text = access.Street; break;
                                            case "accessPremisesOldTextBox": tb.Text = access.PremisesOld; break;
                                            case "accessPremisesNewTextBox": tb.Text = access.PremisesNew; break;
                                            case "accessPaciTextBox": tb.Text = access.Paci; break;
                                            case "accessNoteTextBox": tb.Text = access.Note; break;
 
                                            case "serviceExemptionNoteTextBox": tb.Text = serviceExemption.Note; break;
 
                                            default: break;
                                        }
                                    }
                                    else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.DropDownList")
                                    {
                                        DropDownList ddl = (DropDownList)control.Controls[0];
 
                                        switch (ddl.ID)
                                        {
                                            case "staffAdministrativeFrameworkIdDropDownList":
                                                {
                                                    ddl.DataSource = Ia.Ngn.Cl.Model.Data.Administration.FrameworkList;
                                                    ddl.DataValueField = "Id";
                                                    ddl.DataTextField = "FullyQualifiedArabicName";
                                                    ddl.DataBind();
 
                                                    ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue(staff.AdministrativeFrameworkId.ToString()));
                                                    break;
                                                }
 
                                            case "staffIdentityUserIdDropDownList":
                                                {
                                                    ddl.Items.Clear();
 
                                                    userList = Ia.Cl.Model.Identity.UserList;
 
                                                    ddl.DataSource = userList;
                                                    ddl.DataValueField = "ProviderUserKey";
                                                    ddl.DataTextField = "UserName";
                                                    ddl.DataBind();
 
                                                    ddl.Items.Insert(0, new ListItem("Empty Guid", Guid.Empty.ToString()));
                                                    ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue(staff.UserId.ToString()));
                                                    break;
                                                }
 
                                            default: break;
                                        }
                                    }
                                    else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.CheckBox")
                                    {
                                        CheckBox cb = (CheckBox)control.Controls[0];
 
                                        switch (cb.ID)
                                        {
                                            case "staffIsHeadCheckBox": cb.Checked = staff.IsHead; break;
                                            case "contactApprovedCheckBox": cb.Checked = contact.IsApproved; break;
                                            default: break;
                                        }
                                    }
                                    else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.Image")
                                    {
                                        Image im = (Image)control.Controls[0];
 
                                        switch (im.ID)
                                        {
                                            case "deleteImage": break;
                                            case "historyImage": break;
                                            case "nddOntPonOltOdfAccessVendorIconImage":
                                                {
                                                    //vendor = (from o in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OntList where o.Id == nddOnt.Id select o.Pon.PonGroup.Olt.Odf.Vendor).SingleOrDefault();
                                                    vendor = nddOnt?.Pon.PonGroup.Olt.Odf.Vendor;
 
                                                    if (vendor != null)
                                                    {
                                                        im.ImageUrl = vendor.ImageUrl;
                                                        im.ToolTip = vendor.Name;
                                                    }
 
                                                    break;
                                                }
                                            case "nddOntPonOltOdfRouterSwitchVendorIconImage":
                                                {
                                                    // 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();
                                                    vendor = nddOnt?.Pon.PonGroup.Olt.Odf.Router.Vendor;
 
                                                    if (vendor != null)
                                                    {
                                                        im.ImageUrl = vendor.ImageUrl;
                                                        im.ToolTip = vendor.Name;
                                                    }
 
                                                    break;
                                                }
                                            /*
                                        case "ontAccessOntPonOltOdfVendorIconImage":
                                            {
                                                vendor = (from q in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OntList where q.Id == ont.Id select q.Pon.PonGroup.Olt.Odf.Vendor).SingleOrDefault();
                                                im.ImageUrl = vendor.ImageUrl;
                                                im.ToolTip = vendor.Name;
                                                break;
                                            }
                                            */
                                            case "accessOntPonOltOdfVendorIconImage":
                                                {
                                                    //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();
                                                    vendor = nddOnt?.Pon.PonGroup.Olt.Odf.Vendor;
 
                                                    if (vendor != null)
                                                    {
                                                        im.ImageUrl = vendor.ImageUrl;
                                                        im.ToolTip = vendor.Name;
                                                    }
 
                                                    break;
                                                }
                                            default: break;
                                        }
                                    }
                                    else
                                    {
 
                                    }
                                }
                            }
                            catch (Exception)
                            {
                            }
                        }
                    }
                    else if (e.Row.RowType == DataControlRowType.Footer)
                    {
                    }
                    else
                    {
                    }
                }
                else
                {
                    if (e.Row.RowType == DataControlRowType.Header)
                    {
                    }
                    else if (e.Row.RowType == DataControlRowType.DataRow)
                    {
                        foreach (Control control in e.Row.Controls)
                        {
                            try
                            {
                                if (control.Controls.Count > 0)
                                {
                                    if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.Label")
                                    {
                                        Label l = (Label)control.Controls[0];
 
                                        switch (l.ID)
                                        {
                                            case "staffUserActivityIsApprovedLabel":
                                                {
                                                    var b = Convert.ToBoolean(DataBinder.Eval(e.Row.DataItem, "IsApproved"));
                                                    l.Text = Ia.Cl.Model.Default.YesNo(b);
                                                    break;
                                                }
                                            case "staffUserActivityIsOnlineLabel":
                                                {
                                                    var b = Convert.ToBoolean(DataBinder.Eval(e.Row.DataItem, "IsOnline"));
                                                    l.Text = Ia.Cl.Model.Default.YesNo(b);
                                                    break;
                                                }
                                            case "staffUserActivityIsLockedOutLabel":
                                                {
                                                    var b = Convert.ToBoolean(DataBinder.Eval(e.Row.DataItem, "IsLockedOut"));
                                                    l.Text = Ia.Cl.Model.Default.YesNo(b);
                                                    break;
                                                }
                                            default: break;
                                        }
                                    }
                                    else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.HyperLink")
                                    {
                                        HyperLink hl = (HyperLink)control.Controls[0];
 
                                        switch (hl.ID)
                                        {
                                            /*
                                            case "reportServiceHyperLink":
                                                {
                                                    s = Ia.Ngn.Cl.Model.Business.Service.ServiceName(report.Service, report.ServiceType);
                                                    hl.Text = s;
                                                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(s);
                                                    break;
                                                }
                                            */
                                            default: break;
                                        }
                                    }
                                    else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.TextBox")
                                    {
                                        TextBox tb = (TextBox)control.Controls[0];
 
                                        switch (tb.ID)
                                        {
                                            //case "staffEmploymentIdTextBox": tb.Text = staff.EmploymentId.ToString(); break;
                                            default: break;
                                        }
                                    }
                                    else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.DropDownList")
                                    {
                                        DropDownList ddl = (DropDownList)control.Controls[0];
 
                                        switch (ddl.ID)
                                        {
                                            /*
                                            case "staffAdministrativeFrameworkIdDropDownList":
                                                {
                                                    ddl.DataSource = Ia.Ngn.Cl.Model.Data.Administration.FrameworkList;
                                                    ddl.DataValueField = "Id";
                                                    ddl.DataTextField = "FullyQualifiedArabicName";
                                                    ddl.DataBind();
                                                    ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue(staff.AdministrativeFrameworkId.ToString()));
                                                    break;
                                                }
                                            */
 
                                            default: break;
                                        }
                                    }
                                    else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.CheckBox")
                                    {
                                        CheckBox cb = (CheckBox)control.Controls[0];
 
                                        switch (cb.ID)
                                        {
                                            //case "staffIsHeadCheckBox": cb.Checked = staff.IsHead; break;
                                            default: break;
                                        }
                                    }
                                    else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.Image")
                                    {
                                        Image im = (Image)control.Controls[0];
 
                                        switch (im.ID)
                                        {
                                            /*
                                            case "nddOntPonOltOdfAccessVendorIconImage":
                                                {
                                                    //vendor = (from o in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OntList where o.Id == nddOnt.Id select o.Pon.PonGroup.Olt.Odf.Vendor).SingleOrDefault();
                                                    vendor = nddOnt?.Pon.PonGroup.Olt.Odf.Vendor;
                                                    if (vendor != null)
                                                    {
                                                        im.ImageUrl = vendor.ImageUrl;
                                                        im.ToolTip = vendor.Name;
                                                    }
                                                    break;
                                                }
                                            */
                                            default: break;
                                        }
                                    }
                                    else
                                    {
 
                                    }
                                }
                            }
                            catch (Exception)
                            {
                            }
                        }
                    }
                    else if (e.Row.RowType == DataControlRowType.Footer)
                    {
                    }
                    else
                    {
                    }
                }
            }
            else
            {
            }
        }
 
        ////////////////////////////////////////////////////////////////////////////
 
        /// <summary>
        ///
        /// </summary>
        public static void SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(ref GridViewRowEventArgs gridViewRowEventArgs, ref Label l)
        {
            TableCell tableCell;
 
            // table cell direction depending on if text has Arabic
            if (!string.IsNullOrEmpty(l.Text))
            {
                if (Ia.Cl.Model.Language.HasArabicLetter(l.Text))
                {
                    tableCell = gridViewRowEventArgs.Row.FindControl(l.ID).Parent as TableCell;
                    //tableCell.HorizontalAlign = HorizontalAlign.Right;
                    tableCell.Style[HtmlTextWriterStyle.Direction] = "rtl";
                }
            }
        }
 
        ////////////////////////////////////////////////////////////////////////////
 
        /// <summary>
        ///
        /// </summary>
        private static void HideColumnName(GridViewRowEventArgs e, string name)
        {
            // https://stackoverflow.com/questions/3819247/gridview-hide-column-by-code
 
            GridView gridView = (GridView)e.Row.Parent.Parent;
 
            var index = GetColumnIndexByName(gridView, name);
 
            if (index >= 0)
            {
                gridView.Columns[index].Visible = false;
                gridView.HeaderRow.Cells[index].Visible = false;
            }
        }
 
        ////////////////////////////////////////////////////////////////////////////
 
        /// <summary>
        ///
        /// </summary>
        private static int GetColumnIndexByName(GridView gridView, string name)
        {
            // https://stackoverflow.com/questions/3925183/method-to-find-gridview-column-index-by-name
 
            foreach (DataControlField col in gridView.Columns)
            {
                if (col.HeaderText.ToLower().Trim() == name.ToLower().Trim())
                {
                    return gridView.Columns.IndexOf(col);
                }
            }
 
            return -1;
        }
 
        ////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////
 
        /// <summary>
        ///
        /// </summary>
        public static void DropDownList_DataBound(System.Web.UI.Page page, object sender, EventArgs e, Ia.Ngn.Cl.Model.Staff staff)
        {
            string kuwaitOfnAreaListString;
            DropDownList ddl;
            List<Ia.Ngn.Cl.Model.Business.Service.KuwaitOfnArea> kuwaitOfnAreaList;
 
            ddl = (DropDownList)sender;
 
            foreach (ListItem listItem in ddl.Items)
            {
                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();
 
                if (kuwaitOfnAreaList != null && kuwaitOfnAreaList.Count > 0)
                {
                    kuwaitOfnAreaListString = string.Join(", ", kuwaitOfnAreaList.Select(n => n.ArabicName).ToArray());
                }
                else kuwaitOfnAreaListString = null;
 
                listItem.Text = kuwaitOfnAreaListString;
            }
        }
 
        ////////////////////////////////////////////////////////////////////////////
 
        /// <summary>
        ///
        /// </summary>
        public static void DropDownList_DataBound(System.Web.UI.Page page, object sender, EventArgs e)
        {
            DropDownList_DataBound(page, sender, e, null);
        }
 
        ////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////
 
        /// <summary>
        ///
        /// </summary>
        public static void DataList_ItemDataBound(System.Web.UI.Page page, object sender, DataListItemEventArgs e)
        {
            bool senderKnown;
            string senderId;
            DataList dataList;
 
            senderKnown = true;
            dataList = (DataList)sender;
            senderId = dataList.ID;
 
            string accessName;
 
            accessName = null;
 
            switch (senderId)
            {
                case "accessNameDataList":
                    {
                        //access = (e.Item.DataItem as Ia.Ngn.Cl.Model.Access);
                        accessName = (e.Item.DataItem as string);
                        break;
                    }
                default:
                    senderKnown = false;
                    break;
            }
 
            senderKnown = true;
 
            if (senderKnown)
            {
                if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
                {
                    //CheckBox chk = e.Item.FindControl("AApBlue") as CheckBox;
                    //Label lbl = e.Item.FindControl("Label1") as Label;
 
                    //chk.Checked = (lbl.Text == "Y") ? true : false;
 
                    HyperLink hl = e.Item.FindControl("accessNameHyperLink") as HyperLink;
 
                    hl.Text = accessName;
                    hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(accessName);
                }
 
                //foreach (DataListItem dataListItem in dataList.Items)
                // {
                foreach (Control control in dataList.Controls) // dataListItem.Controls)
                {
                    try
                    {
                        if (control is Label)
                        {
                            // CheckBox cb = (CheckBox)control.Controls[0];
                            //Label l = (Label)control;
 
                            //switch (l.ID)
                            //{
                            /*
                            case "accessAreaLabel": l.Text = (from kna in Ia.Ngn.Cl.Model.Data.Service.KuwaitNgnAreaList where kna.Id == accessName.AreaId select kna.ArabicName).SingleOrDefault(); break;
                            case "accessOltLabel": l.Text = (from o in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OltList where o.Id == accessName.Olt select o.AmsName).SingleOrDefault(); break;
                            case "accessBlockLabel": l.Text = accessName.Block.ToString(); break;
                            case "accessStreetLabel": l.Text = accessName.Street; break;
                            case "accessPremisesOldLabel": l.Text = accessName.PremisesOld; break;
                            case "accessPremisesNewLabel": l.Text = accessName.PremisesNew; break;
                            case "accessPaciLabel": l.Text = accessName.Paci; break;
                            case "accessNoteLabel": l.Text = accessName.Note; break;
                            case "accessStaffNameLabel": l.Text = (from _s in Ia.Ngn.Cl.Model.Data.Staff.List where _s.UserId == accessName.UserId select _s.FirstName).SingleOrDefault(); break;
                            */    /*
                            case "accessOntFamilyTypeCapacityLabel":
                                {
                                    // temp: later quickly find vendor from accessId
                                    try
                                    {
                                        if (access.Onts != null && access.Onts.Count > 0)
                                        {
                                            l.Text = Ia.Ngn.Cl.Model.Data.Nokia.Ont.FamilyTypeFromId(access.Onts.FirstOrDefault().FamilyTypeId);
                                            l.Text += " (" + Ia.Ngn.Cl.Model.Business.Nokia.Ams.PossibleNumberOfTdForOntFamilyType(access.Onts.FirstOrDefault().FamilyTypeId) + ")";
                                        }
                                        else l.Text = string.Empty;
                                    }
                                    catch (Exception)// ex)
                                    {
                                        l.Text = string.Empty;
                                    }
                                    break;
                                }
                            case "accessFamilyTypeInAreaBlockLabel": l.Text = (from kna in Ia.Ngn.Cl.Model.Data.Service.KuwaitNgnAreaList where kna.Id == accessFamilyTypeInAreaBlock.AreaId select kna.NameArabicName).SingleOrDefault(); break;
                            */
                            //}
                        }
                        else if (control is HyperLink) // .GetType().ToString() == "System.Web.UI.WebControls.HyperLink")
                        {
                            HyperLink hl = (HyperLink)control;
 
                            switch (hl.ID)
                            {
                                case "accessNameHyperLink":
                                    {
                                        hl.Text = accessName; //.Name;
                                        hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(accessName); //.Name;
                                        break;
                                    }
                                default:
                                    {
                                        break;
                                    }
                            }
                        }
                        else
                        {
 
                        }
                    }
                    catch (Exception)
                    {
 
                    }
                }
                //}
            }
            else
            {
 
            }
        }
 
        ////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////
 
        /// <summary>
        ///
        /// </summary>
        public static void FormView_DataBound(System.Web.UI.Page page, object sender, EventArgs e)
        {
        }
 
        ////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////
 
        /// <summary>
        ///
        /// </summary>
        public static void TreeView_TreeNodeDataBound(System.Web.UI.Page page, object sender, System.Web.UI.WebControls.TreeNodeEventArgs e)
        {
            string s;
 
            s = e.Node.Text.Trim();
 
            s = s.Replace("\r\n", "<br/>");
            s = Regex.Replace(s, @"\s+", " ");
 
            e.Node.Text = s;
        }
 
        ////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////
 
        /// <summary>
        /// https://stackoverflow.com/questions/9715983/how-to-get-the-cell-value-by-column-name-not-by-index-in-gridview-in-asp-net
        /// </summary>
        private static int GetColumnIndexByName(GridViewRow row, string columnName)
        {
            int columnIndex = 0;
            foreach (DataControlFieldCell cell in row.Cells)
            {
                if (cell.ContainingField is BoundField)
                    if (((BoundField)cell.ContainingField).DataField.Equals(columnName))
                        break;
                columnIndex++; // keep adding 1 while we don't have the correct name
            }
            return columnIndex;
        }
 
        ////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////
    }
 
    ////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////
}