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.Sbr sbr;
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: sbr = 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 "sbrGridView":
627: {
628: sbr = (e.Row.DataItem as Ia.Ngn.Cl.Model.Ui.Huawei.Sbr);
629: break;
630: }
631: case "owsbrGridView":
632: {
633: owsbr = (e.Row.DataItem as Ia.Ngn.Cl.Model.Huawei.Owsbr);
634: break;
635: }
636: case "seruattrGridView":
637: {
638: seruattr = (e.Row.DataItem as Ia.Ngn.Cl.Model.Huawei.Seruattr);
639: break;
640: }
641: case "axeSubscriberGridView":
642: {
643: axeSubscriber = (e.Row.DataItem as Ia.Ngn.Cl.Model.Ericsson.AxeSubscriber);
644: break;
645: }
646: case "ewsdSubscriberGridView":
647: {
648: ewsdSubscriber = (e.Row.DataItem as Ia.Ngn.Cl.Model.Siemens.EwsdSubscriber);
649: break;
650: }
651: case "agcfGatewayRecordGridView":
652: {
653: agcfGatewayRecord = (e.Row.DataItem as Ia.Ngn.Cl.Model.Ui.Nokia.AgcfGatewayRecord);
654: break;
655: }
656: case "agcfEndpointGridView":
657: {
658: agcfEndpoint = (e.Row.DataItem as Ia.Ngn.Cl.Model.Ui.Nokia.AgcfEndpoint);
659: break;
660: }
661: case "mgwGridView":
662: {
663: mgw = (e.Row.DataItem as Ia.Ngn.Cl.Model.Huawei.Mgw);
664: break;
665: }
666: case "asbrGridView":
667: {
668: asbr = (e.Row.DataItem as Ia.Ngn.Cl.Model.Huawei.Asbr);
669: break;
670: }
671: case "subPartyGridView":
672: {
673: subParty = (e.Row.DataItem as Ia.Ngn.Cl.Model.Ui.Nokia.SubParty);
674: break;
675: }
676: case "subscriberGridView":
677: {
678: subscriber = (e.Row.DataItem as Ia.Ngn.Cl.Model.Ui.Nokia.Subscriber);
679: break;
680: }
681: case "nddOntGridView":
682: {
683: nddOnt = (e.Row.DataItem as Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.Ont);
684: break;
685: }
686: case "ontGridView":
687: {
688: ont = (e.Row.DataItem as Ia.Ngn.Cl.Model.Ont);
689: break;
690: }
691: case "ontOntPotsGridView":
692: {
693: ontOntPots = (e.Row.DataItem as Ia.Ngn.Cl.Model.OntOntPots);
694: break;
695: }
696: case "serviceRequestServiceGridView":
697: {
698: serviceRequestService = (e.Row.DataItem as Ia.Ngn.Cl.Model.Ui.ServiceRequestService);
699: break;
700: }
701: case "accessGridView":
702: {
703: access = (e.Row.DataItem as Ia.Ngn.Cl.Model.Access);
704: break;
705: }
706: case "serviceGridView":
707: {
708: service2 = (e.Row.DataItem as Ia.Ngn.Cl.Model.Ui.Service2);
709: break;
710: }
711: case "ontServiceVoipGridView":
712: {
713: ontServiceVoip = (e.Row.DataItem as Ia.Ngn.Cl.Model.OntServiceVoip);
714: break;
715: }
716: case "emsDevGridView":
717: {
718: emsDev = (e.Row.DataItem as Ia.Ngn.Cl.Model.Huawei.EmsDev);
719: break;
720: }
721: case "emsBoardGridView":
722: {
723: emsBoard = (e.Row.DataItem as Ia.Ngn.Cl.Model.Huawei.EmsBoard);
724: break;
725: }
726: case "emsPortGridView":
727: {
728: emsPort = (e.Row.DataItem as Ia.Ngn.Cl.Model.Huawei.EmsPort);
729: break;
730: }
731: case "emsOntGridView":
732: {
733: emsOnt = (e.Row.DataItem as Ia.Ngn.Cl.Model.Ui.Huawei.EmsOnt);
734: break;
735: }
736: case "emsOntSipInfoGridView":
737: {
738: emsOntSipInfo = (e.Row.DataItem as Ia.Ngn.Cl.Model.Huawei.EmsOntSipInfo);
739: break;
740: }
741: case "emsVoipPstnUserGridView":
742: {
743: emsVoipPstnUser = (e.Row.DataItem as Ia.Ngn.Cl.Model.Huawei.EmsVoipPstnUser);
744: break;
745: }
746: case "emsVagGridView":
747: {
748: emsVag = (e.Row.DataItem as Ia.Ngn.Cl.Model.Huawei.EmsVag);
749: break;
750: }
751: case "staffGridView":
752: {
753: staff = (e.Row.DataItem as Ia.Ngn.Cl.Model.Staff);
754: break;
755: }
756: case "contactGridView":
757: {
758: contact = (e.Row.DataItem as Ia.Ngn.Cl.Model.Contact);
759: break;
760: }
761: case "userGridView":
762: {
763: membershipUser = (e.Row.DataItem as MembershipUser);
764: break;
765: }
766: case "accessFamilyTypeInAreaBlockGridView":
767: {
768: accessFamilyTypeInAreaBlock = (e.Row.DataItem as Ia.Ngn.Cl.Model.Ui.Maintenance.AccessFamilyTypeAreaBlock);
769: break;
770: }
771: case "eventGridView":
772: {
773: @event = (e.Row.DataItem as Ia.Ngn.Cl.Model.Event);
774: break;
775: }
776: case "kuwaitOfnAreaGridView":
777: {
778: if (e.Row.DataItem != null) kuwaitOfnArea = (Ia.Ngn.Cl.Model.Business.Service.KuwaitOfnArea)e.Row.DataItem;
779: break;
780: }
781: case "serviceExemptionGridView":
782: {
783: serviceExemption = (e.Row.DataItem as Ia.Ngn.Cl.Model.ServiceExemption);
784: break;
785: }
786: case "serviceAccessNameGridView":
787: {
788: serviceAccessName = (e.Row.DataItem as Ia.Ngn.Cl.Model.Business.ServiceNddOntAccessName);
789: break;
790: }
791: case "serviceAccessNameAndAddressGridView":
792: {
793: serviceAccessNameAddress = (e.Row.DataItem as Ia.Ngn.Cl.Model.Business.ServiceNddOntAccessNameAddress);
794: break;
795: }
796: case "msanDevLicGridView":
797: {
798: msanDevLic = (e.Row.DataItem as Ia.Ngn.Cl.Model.Business.Huawei.Dev.MsanDev.Lic);
799: break;
800: }
801: default:
802: {
803: senderKnown = false;
804: break;
805: }
806: }
807:
808: if (senderKnown)
809: {
810: if (e.Row.RowType == DataControlRowType.Header)
811: {
812: if (buttonColumnType == GridViewButtonColumnType.NoButtons)
813: {
814: }
815: else if (buttonColumnType == GridViewButtonColumnType.HistoryButton)
816: {
817: // below: for the header just keep the first column visible
818: e.Row.Cells[0].Visible = true;
819: }
820: else if (buttonColumnType == GridViewButtonColumnType.DeleteAndDeleteOffButton)
821: {
822: // below: for the header just keep one (first) column visible
823: e.Row.Cells[0].Visible = true;
824: e.Row.Cells[1].Visible = false;
825: }
826: else if (buttonColumnType == GridViewButtonColumnType.DeleteAndDeleteOffAndDeleteChildOffAndHistoryButtons)
827: {
828: // below: for the header just keep one (first) column visible
829: e.Row.Cells[0].Visible = true; // first visible
830: e.Row.Cells[1].Visible = false; // second hidden
831: e.Row.Cells[2].Visible = false; // third hidden
832: }
833: else if (buttonColumnType == GridViewButtonColumnType.DeleteAndEditAndCancelAndUpdateButtons)
834: {
835: }
836: }
837: else if (e.Row.RowType == DataControlRowType.DataRow)
838: {
839: if (buttonColumnType == GridViewButtonColumnType.NoButtons)
840: {
841: }
842: else if (buttonColumnType == GridViewButtonColumnType.HistoryButton)
843: {
844: }
845: else if (buttonColumnType == GridViewButtonColumnType.DeleteAndDeleteOffButton)
846: {
847: // below: manage the delete button according to the role of user
848: if (Ia.Ngn.Cl.Model.Business.Authority.StaffCanCreateReadUpdateDeleteReportHistory(Ia.Ngn.Cl.Model.Business.Authority.PersistentStorageFunction.Delete, report, reportHistory, staffMembershipUser))
849: {
850: if (reportHistory.Report.StatusIsOpen)
851: {
852: // below: report status open
853: e.Row.Cells[0].Visible = true; // delete is visible
854: e.Row.Cells[1].Visible = false; // delete-off is hidden
855: }
856: else
857: {
858: // below: report closed, hence can not delete histories
859: e.Row.Cells[0].Visible = false; // delete is hidden
860: e.Row.Cells[1].Visible = true; // delete-off is visible
861: }
862: }
863: else
864: {
865: e.Row.Cells[0].Visible = false; // delete is hidden
866: e.Row.Cells[1].Visible = true; // delete-off is visible
867: }
868: }
869: else if (buttonColumnType == GridViewButtonColumnType.DeleteAndDeleteOffAndDeleteChildOffAndHistoryButtons)
870: {
871: // below: manage the delete button according to the role of user
872: if (Ia.Ngn.Cl.Model.Business.Authority.StaffCanCreateReadUpdateDeleteReport(Ia.Ngn.Cl.Model.Business.Authority.PersistentStorageFunction.Delete, report, staffMembershipUser))
873: {
874: if (report.StatusIsOpen)
875: {
876: if (report.ReportHistories != null && report.ReportHistories.Count > 0)
877: {
878: // below: has children
879: e.Row.Cells[0].Visible = false; // delete is hidden
880: e.Row.Cells[1].Visible = false; // delete-off is hidden
881: e.Row.Cells[2].Visible = true; // delete-child-off is visible
882: }
883: else
884: {
885: // below: no children
886: e.Row.Cells[0].Visible = true; // delete is visible
887: e.Row.Cells[1].Visible = false; // delete-off is hidden
888: e.Row.Cells[2].Visible = false; // delete-child-off is hidden
889: }
890: }
891: else
892: {
893: // below: report is closed, hence can not delete histories
894: e.Row.Cells[0].Visible = false; // delete is hidden
895: e.Row.Cells[1].Visible = true; // delete-off is visible
896: e.Row.Cells[2].Visible = false; // delete-child-off is hidden
897: }
898: }
899: else
900: {
901: e.Row.Cells[0].Visible = false; // delete is hidden
902: e.Row.Cells[1].Visible = true; // delete-off is visible
903: e.Row.Cells[2].Visible = false; // delete-child-off is hidden
904: }
905: }
906: else if (buttonColumnType == GridViewButtonColumnType.DeleteAndEditAndCancelAndUpdateButtons)
907: {
908: }
909:
910:
911: if (report != null)
912: {
913: if (staffMembershipUser != null)
914: {
915: if (Ia.Ngn.Cl.Model.Data.Report.ReportResponsibilityByStaffGuidDictionary.ContainsKey(staffMembershipUser.UserId))
916: {
917: if (Ia.Ngn.Cl.Model.Data.Report.ReportResponsibilityByStaffGuidDictionary[staffMembershipUser.UserId].Any(u => u == report.Id))
918: {
919: e.Row.CssClass = "selected-row-style";
920: }
921: else { }
922: }
923: else { }
924: }
925: else { }
926: }
927: else { }
928:
929:
930: foreach (Control control in e.Row.Controls)
931: {
932: try
933: {
934: if (control.Controls.Count > 0)
935: {
936: if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.Label")
937: {
938: Label l = (Label)control.Controls[0];
939:
940: switch (l.ID)
941: {
942: case "reportServiceLabel":
943: {
944: s = Ia.Ngn.Cl.Model.Business.Service.ServiceName(report.Service, report.ServiceType);
945: l.Text = s;
946: break;
947: }
948: case "reportStatusLabel": l.Text = Ia.Ngn.Cl.Model.Data.Report.StatusColoredDictionary[report.Status].ToString(); break;
949: case "reportSeverityLabel": l.Text = Ia.Ngn.Cl.Model.Data.Report.SeverityColoredDictionary[report.Severity].ToString(); break;
950: case "reportCategoryLabel": l.Text = Ia.Ngn.Cl.Model.Data.Report.CategoryDictionary[report.Category].ToString(); break;
951: case "reportAreaLabel": l.Text = Ia.Ngn.Cl.Model.Data.Report.CategoryAreaColoredDictionary[report.Area].ToString(); break;
952: case "reportPriorityLabel": l.Text = Ia.Ngn.Cl.Model.Data.Report.PriorityColoredDictionary[report.Priority].ToString(); break;
953: case "reportDetailLabel":
954: {
955: l.Text = Ia.Cl.Model.Html.Decode(report.Detail);
956:
957: SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(ref e, ref l);
958:
959: break;
960: }
961: case "reportLastHistoricResolutionLabel":
962: {
963: l.Text = (report.LastReportHistory != null) ? Ia.Ngn.Cl.Model.Data.Report.ResolutionIdToEnglishArabicColoredNameDictionary[report.LastReportHistory.Resolution].ToString() : string.Empty;
964:
965: break;
966: }
967: case "reportLastHistoricEstimateLabel": l.Text = (report.LastReportHistory != null) ? l.Text = Ia.Ngn.Cl.Model.Data.Report.EstimateEnglishAndArabicColoredDictionary[report.LastReportHistory.Estimate].ToString() : string.Empty; break;
968: case "reportLastHistoricStaffLabel":
969: {
970: l.Text = (report.LastReportHistory != null) ? l.Text = (from _s in Ia.Ngn.Cl.Model.Data.Staff.List where _s.UserId == report.LastReportHistory.UserId select _s.FirstAndMiddleName).SingleOrDefault() : string.Empty;
971:
972: SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(ref e, ref l);
973:
974: break;
975: }
976: case "reportLastHistoricUpdatedLabel":
977: {
978: var dateTime = (report.LastReportHistory != null) ? report.LastReportHistory.Updated : report.Updated;
979:
980: l.Text = dateTime.ToString("yyyy-MM-dd hh:mm");
981:
982: break;
983: }
984: case "reportLastReportAndHistoricStaffFrameworkLabel":
985: {
986: if (report.LastReportHistory != null)
987: {
988: if (Ia.Ngn.Cl.Model.Business.Administration.IsFrameworkGuid(report.LastReportHistory.UserId))
989: {
990: arabicNameBracketParentArabicNameBracket = (from f in Ia.Ngn.Cl.Model.Data.Administration.FrameworkList where f.Guid == report.LastReportHistory.UserId select f.ArabicNameBracketParentArabicNameBracket).SingleOrDefault();
991:
992: l.Text = arabicNameBracketParentArabicNameBracket;
993: }
994: else
995: {
996: firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket = (from _s in Ia.Ngn.Cl.Model.Data.Staff.List where _s.UserId == report.LastReportHistory.UserId select _s.FirstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket).SingleOrDefault();
997:
998: l.Text = firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket;
999: }
1000: }
1001: else
1002: {
1003: if (Ia.Ngn.Cl.Model.Business.Administration.IsFrameworkGuid(report.UserId))
1004: {
1005: arabicNameBracketParentArabicNameBracket = (from f in Ia.Ngn.Cl.Model.Data.Administration.FrameworkList where f.Guid == report.UserId select f.ArabicNameBracketParentArabicNameBracket).SingleOrDefault();
1006:
1007: l.Text = arabicNameBracketParentArabicNameBracket;
1008: }
1009: else
1010: {
1011: firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket = (from _s in Ia.Ngn.Cl.Model.Data.Staff.List where _s.UserId == report.UserId select _s.FirstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket).SingleOrDefault();
1012:
1013: l.Text = firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket;
1014: }
1015: }
1016:
1017: SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(ref e, ref l);
1018:
1019: break;
1020: }
1021: case "reportContactLabel":
1022: {
1023: l.Text = Ia.Cl.Model.Html.Decode(report.Contact);
1024:
1025: SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(ref e, ref l);
1026:
1027: break;
1028: }
1029: case "reportNoteLabel":
1030: {
1031: l.Text = Ia.Cl.Model.Html.Decode(report.Note);
1032:
1033: SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(ref e, ref l);
1034:
1035: break;
1036: }
1037:
1038:
1039: case "reportHistoryLastDetailOrReportDetailLabel":
1040: {
1041: l.Text = report.LastReportHistory != null ? Ia.Cl.Model.Html.Decode(report.LastReportHistory.Detail) : Ia.Cl.Model.Html.Decode(report.Detail);
1042:
1043: SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(ref e, ref l);
1044:
1045: break;
1046: }
1047:
1048: case "reportStatusLastHistoricResolutionLabel":
1049: {
1050: s = Ia.Ngn.Cl.Model.Data.Report.StatusColoredDictionary[report.Status].ToString();
1051:
1052: if (report.LastReportHistory != null) s += "/" + Ia.Ngn.Cl.Model.Data.Report.ResolutionIdToEnglishArabicColoredNameDictionary[report.LastReportHistory.Resolution].ToString();
1053:
1054: l.Text = s;
1055:
1056: break;
1057: }
1058:
1059: case "reportHistoryLastHistoricalIndicationActionResolutionLabel":
1060: {
1061: if (report.LastReportHistory != null)
1062: {
1063: s = Ia.Ngn.Cl.Model.Data.Report.IndicationColoredDictionary[report.LastReportHistory.Indication].ToString()
1064: + "/" + Ia.Ngn.Cl.Model.Data.Report.ActionColoredDictionary[report.LastReportHistory.Action].ToString()
1065: + "/" + Ia.Ngn.Cl.Model.Data.Report.ResolutionIdToColoredNameDictionary[report.LastReportHistory.Resolution].ToString();
1066: }
1067: else s = string.Empty;
1068:
1069: l.Text = s;
1070:
1071: break;
1072: }
1073:
1074: case "reportAccessServiceRequestLastHistoricResolutionLabel": l.Text = (reportAccessServiceRequest.Report.LastReportHistory != null) ? Ia.Ngn.Cl.Model.Data.Report.ResolutionIdToEnglishArabicColoredNameDictionary[reportAccessServiceRequest.Report.LastReportHistory.Resolution].ToString() : string.Empty; break;
1075: case "reportAccessServiceRequestServiceFlatTermIdLabel": l.Text = "?"; break;
1076: case "reportAccessServiceRequestLastHistoricActionLabel": l.Text = (reportAccessServiceRequest.Report.LastReportHistory != null) ? Ia.Ngn.Cl.Model.Data.Report.ActionColoredDictionary[reportAccessServiceRequest.Report.LastReportHistory.Action].ToString() : string.Empty; break;
1077: case "reportAccessServiceRequestServiceTypeLabel": l.Text = reportAccessServiceRequest.Report.ServiceType.ToString(); break;
1078: case "reportAccessServiceRequestContactLabel": l.Text = Ia.Cl.Model.Html.Decode(reportAccessServiceRequest.Report.Contact); break;
1079:
1080: case "reportAccessServiceRequestAddressLabel":
1081: {
1082: if (reportAccessServiceRequest.Access != null)
1083: {
1084: l.Text = Ia.Cl.Model.Html.Decode(reportAccessServiceRequest.Access.Address);
1085: }
1086:
1087: break;
1088: }
1089:
1090: case "reportAccessServiceRequestDetailLabel": l.Text = (reportAccessServiceRequest.Report.LastReportHistory != null) ? Ia.Cl.Model.Html.Decode(reportAccessServiceRequest.Report.LastReportHistory.Detail) : string.Empty; break;
1091: case "reportAccessServiceRequestNoteLabel": l.Text = (reportAccessServiceRequest.Report.LastReportHistory != null) ? Ia.Cl.Model.Html.Decode(reportAccessServiceRequest.Report.LastReportHistory.Note) : string.Empty; break;
1092: case "reportAccessServiceRequestStaffFrameworkLabel":
1093: {
1094: if (reportAccessServiceRequest.Report.LastReportHistory != null)
1095: {
1096: if (Ia.Ngn.Cl.Model.Business.Administration.IsFrameworkGuid(reportAccessServiceRequest.Report.LastReportHistory.UserId))
1097: {
1098: l.Text = (from f in Ia.Ngn.Cl.Model.Data.Administration.FrameworkList where f.Guid == reportAccessServiceRequest.Report.LastReportHistory.UserId select f.ArabicName).SingleOrDefault();
1099: }
1100: else l.Text = (from _s in Ia.Ngn.Cl.Model.Data.Staff.List where _s.UserId == reportAccessServiceRequest.Report.LastReportHistory.UserId select _s.FirstAndMiddleName).SingleOrDefault();
1101: }
1102: else
1103: {
1104: l.Text = string.Empty;
1105: }
1106:
1107: break;
1108: }
1109:
1110: case "reportHistoryLastNoteOrReportNoteLabel":
1111: {
1112: l.Text = report.LastReportHistory != null ? Ia.Cl.Model.Html.Decode(report.LastReportHistory.Note) : Ia.Cl.Model.Html.Decode(report.Note);
1113:
1114: SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(ref e, ref l);
1115:
1116: break;
1117: }
1118: case "reportHistoryIndicationLabel": l.Text = Ia.Ngn.Cl.Model.Data.Report.IndicationColoredDictionary[reportHistory.Indication].ToString(); break;
1119: case "reportHistoryAreaLabel":
1120: {
1121: if (Ia.Ngn.Cl.Model.Data.Report.CategoryAreaColoredDictionary.ContainsKey(reportHistory.Area))
1122: {
1123: l.Text = Ia.Ngn.Cl.Model.Data.Report.CategoryAreaColoredDictionary[reportHistory.Area].ToString();
1124: }
1125: else l.Text = "Error: Area '" + reportHistory.Area + "' not found. ";
1126:
1127: break;
1128: };
1129: case "reportHistoryActionLabel": l.Text = Ia.Ngn.Cl.Model.Data.Report.ActionColoredDictionary[reportHistory.Action].ToString(); break;
1130: case "reportHistoryResolutionLabel": l.Text = Ia.Ngn.Cl.Model.Data.Report.ResolutionIdToEnglishArabicColoredNameDictionary[reportHistory.Resolution].ToString(); break;
1131: case "reportHistoryEstimateLabel": l.Text = Ia.Ngn.Cl.Model.Data.Report.EstimateEnglishAndArabicColoredDictionary[reportHistory.Estimate].ToString(); break;
1132: case "reportHistoryDetailLabel":
1133: {
1134: l.Text = Ia.Cl.Model.Html.Decode(reportHistory.Detail);
1135:
1136: SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(ref e, ref l);
1137:
1138: break;
1139: }
1140: case "reportHistoryNoteLabel":
1141: {
1142: l.Text = Ia.Cl.Model.Html.Decode(reportHistory.Note);
1143:
1144: SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(ref e, ref l);
1145:
1146: break;
1147: }
1148: case "reportHistoryStaffFrameworkLabel":
1149: {
1150: if (Ia.Ngn.Cl.Model.Business.Administration.IsFrameworkGuid(reportHistory.UserId))
1151: {
1152: arabicNameBracketParentArabicNameBracket = (from f in Ia.Ngn.Cl.Model.Data.Administration.FrameworkList where f.Guid == reportHistory.UserId select f.ArabicNameBracketParentArabicNameBracket).SingleOrDefault();
1153:
1154: l.Text = arabicNameBracketParentArabicNameBracket;
1155: }
1156: else
1157: {
1158: firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket = (from _s in Ia.Ngn.Cl.Model.Data.Staff.List where _s.UserId == reportHistory.UserId select _s.FirstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket).SingleOrDefault();
1159:
1160: l.Text = firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket;
1161: }
1162:
1163: SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(ref e, ref l);
1164:
1165: break;
1166: }
1167: case "seruattrRouteNameLabel": l.Text = Ia.Ngn.Cl.Model.Business.Huawei.Seruattr.RnidxRouteName[seruattr.RNIDX2]; break;
1168: case "axeSubscriberRouteNameLabel": l.Text = Ia.Ngn.Cl.Model.Business.Ericsson.Subscriber.RouteName(axeSubscriber.SCL); break;
1169: case "serviceRequestStatusLabel": l.Text = Ia.Ngn.Cl.Model.Data.ServiceRequest.StatusSortedList[serviceRequest.Status].ToString(); break;
1170: case "serviceRequestCustomerCategoryIdLabel": l.Text = Ia.Ngn.Cl.Model.Data.ServiceRequest.CustomerCategorySortedList[serviceRequest.CustomerCategoryId].ToString(); break;
1171: case "serviceRequestServiceIdLabel":
1172: {
1173: if (Ia.Ngn.Cl.Model.Data.ServiceRequest.ServiceSortedList.ContainsKey(serviceRequest.ServiceId))
1174: {
1175: l.Text = Ia.Ngn.Cl.Model.Data.ServiceRequest.ServiceSortedList[serviceRequest.ServiceId].ToString();
1176: }
1177: else l.Text = "Error: Service '" + serviceRequest.ServiceId + "' not found. ";
1178:
1179: break;
1180: };
1181:
1182: case "serviceRequestHistoryStatusLabel": l.Text = Ia.Ngn.Cl.Model.Data.ServiceRequest.SystemCode[serviceRequestHistory.Status].ToString(); break;
1183: case "serviceRequestHistoryEndDateTimeLabel":
1184: {
1185: if (serviceRequestHistory.EndDateTime == Ia.Ngn.Cl.Model.Business.Administration.SqlFriendlyJanuary1st1753NullDateTime)
1186: {
1187: l.Text = string.Empty;
1188: }
1189: else l.Text = serviceRequestHistory.EndDateTime.ToString("yyyy-MM-dd");
1190:
1191: break;
1192: };
1193: case "serviceRequestHistoryServiceIdLabel":
1194: {
1195: if (Ia.Ngn.Cl.Model.Data.ServiceRequest.ServiceSortedList.ContainsKey(serviceRequestHistory.ServiceId))
1196: {
1197: l.Text = Ia.Ngn.Cl.Model.Data.ServiceRequest.ServiceSortedList[serviceRequestHistory.ServiceId].ToString();
1198: }
1199: else l.Text = "Error: Service '" + serviceRequestHistory.ServiceId + "' not found. ";
1200:
1201: break;
1202: };
1203: case "serviceRequestHistoryServiceCategoryIdLabel": l.Text = Ia.Ngn.Cl.Model.Data.ServiceRequest.ServiceCategorySortedList[serviceRequestHistory.ServiceCategoryId].ToString(); break;
1204:
1205: case "serviceRequestServiceCategoryIdLabel": l.Text = Ia.Ngn.Cl.Model.Data.ServiceRequest.ServiceCategorySortedList[serviceRequest.ServiceCategoryId].ToString(); break;
1206: case "serviceRequestCustomerNameLabel": l.Text = serviceRequest.CustomerName; break;
1207:
1208: case "serviceRequestServiceServiceTypeLabel": l.Text = Ia.Ngn.Cl.Model.Data.Service.ServiceType(serviceRequestService.ServiceType).ColoredNameArabicName; break;
1209:
1210: case "serviceRequestServiceTypeLabel": l.Text = "??"; break;
1211: case "serviceRequestServiceProvisionedLabel": l.Text = Ia.Cl.Model.Default.YesNo(serviceRequestService.Provisioned); break;
1212: case "serviceRequestServiceProvisionedArabicLabel": l.Text = Ia.Cl.Model.Default.YesNoInArabic(serviceRequestService.Provisioned); break;
1213: case "serviceRequestServiceCallWaitingLabel": l.Text = Ia.Cl.Model.Default.YesNo(serviceRequestService.CallWaiting); break;
1214: case "serviceRequestServiceCallForwardingLabel": l.Text = Ia.Cl.Model.Default.YesNo(serviceRequestService.CallForwarding); break;
1215: case "serviceRequestServiceAlarmCallLabel": l.Text = Ia.Cl.Model.Default.YesNo(serviceRequestService.AlarmCall); break;
1216: case "serviceRequestServiceInternationalCallingUserControlledLabel": l.Text = Ia.Cl.Model.Default.YesNo(serviceRequestService.InternationalCallingUserControlled); break;
1217: case "serviceRequestServiceInternationalCallingLabel": l.Text = Ia.Cl.Model.Default.YesNo(serviceRequestService.InternationalCalling); break;
1218: case "serviceRequestServiceCallerIdLabel": l.Text = Ia.Cl.Model.Default.YesNo(serviceRequestService.CallerId); break;
1219: case "serviceRequestServiceConferenceCallLabel": l.Text = Ia.Cl.Model.Default.YesNo(serviceRequestService.ConferenceCall); break;
1220: case "serviceRequestServiceAbbriviatedCallingLabel": l.Text = Ia.Cl.Model.Default.YesNo(serviceRequestService.AbbriviatedCalling); break;
1221: case "serviceRequestServiceCallBarringLabel": l.Text = Ia.Cl.Model.Default.YesNo(serviceRequestService.CallBarring); break;
1222:
1223: case "accessAreaLabel": l.Text = (from kna in Ia.Ngn.Cl.Model.Data.Service.KuwaitOfnAreaList where kna.Id == access.AreaId select kna.ArabicName).SingleOrDefault(); break;
1224: case "accessOltLabel": l.Text = (from o in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OltList where o.Id == access.Olt select o.AmsName).SingleOrDefault(); break;
1225: case "accessBlockLabel": l.Text = access.Block.ToString(); break;
1226: case "accessStreetLabel": l.Text = access.Street; break;
1227: case "accessPremisesOldLabel": l.Text = access.PremisesOld; break;
1228: case "accessPremisesNewLabel": l.Text = access.PremisesNew; break;
1229: case "accessNoteLabel": l.Text = access.Note; break;
1230: case "accessStaffNameLabel": l.Text = (from _s in Ia.Ngn.Cl.Model.Data.Staff.List where _s.UserId == access.UserId select _s.FirstAndMiddleName).SingleOrDefault(); break;
1231: case "accessOntFamilyTypeCapacityLabel":
1232: {
1233: // temp: later quickly find vendor from accessId
1234: if (access.Onts != null && access.Onts.Count > 0)
1235: {
1236: l.Text = Ia.Ngn.Cl.Model.Data.Nokia.Ont.FamilyTypeStringFromId(access.Onts.FirstOrDefault().FamilyTypeId);
1237:
1238: l.Text += " (" + Ia.Ngn.Cl.Model.Business.Nokia.Ont.PossibleNumberOfTdForOntFamilyType(access.Onts.FirstOrDefault().FamilyTypeId) + ")";
1239: }
1240: else if (access.EmsOnts != null && access.EmsOnts.Count > 0)
1241: {
1242: l.Text = access.EmsOnts.FirstOrDefault().FamilyType.ToString().ToUpper();
1243:
1244: l.Text += " (" + access.EmsOnts.FirstOrDefault().EquipmentType.TelPorts + ")";
1245: }
1246: else l.Text = string.Empty;
1247:
1248: break;
1249: }
1250:
1251: case "accessFamilyTypeInAreaBlockLabel": l.Text = (from kna in Ia.Ngn.Cl.Model.Data.Service.KuwaitOfnAreaList where kna.Id == accessFamilyTypeInAreaBlock.AreaId select kna.NameArabicName).SingleOrDefault(); break;
1252:
1253: case "service2ServiceTypeLabel": l.Text = Ia.Ngn.Cl.Model.Data.Service.ServiceType(service2.ServiceType).ColoredNameArabicName; break;
1254: case "service2PortLabel":
1255: {
1256: if (service2.Port != Ia.Ngn.Cl.Model.Business.Default.PortUndefinedOrInvalidOrUnknown)
1257: {
1258: l.Text = service2.Port.ToString();
1259: }
1260:
1261: break;
1262: }
1263: case "service2CallWaitingLabel": l.Text = Ia.Cl.Model.Default.YesNo(service2.CallWaiting); break;
1264: case "service2CallForwardingLabel": l.Text = Ia.Cl.Model.Default.YesNo(service2.CallForwarding); break;
1265: case "service2AlarmCallLabel": l.Text = Ia.Cl.Model.Default.YesNo(service2.AlarmCall); break;
1266: case "service2InternationalCallingUserControlledLabel": l.Text = Ia.Cl.Model.Default.YesNo(service2.InternationalCallingUserControlled); break;
1267: case "service2InternationalCallingLabel": l.Text = Ia.Cl.Model.Default.YesNo(service2.InternationalCalling); break;
1268: case "service2CallerIdLabel": l.Text = Ia.Cl.Model.Default.YesNo(service2.CallerId); break;
1269: case "service2ConferenceCallLabel": l.Text = Ia.Cl.Model.Default.YesNo(service2.ConferenceCall); break;
1270: case "service2AbbriviatedCallingLabel": l.Text = Ia.Cl.Model.Default.YesNo(service2.AbbriviatedCalling); break;
1271: case "service2CallBarringLabel": l.Text = Ia.Cl.Model.Default.YesNo(service2.CallBarring); break;
1272: case "service2ServiceSuspensionLabel": l.Text = Ia.Cl.Model.Default.YesNo(service2.ServiceSuspension); break;
1273:
1274: case "serviceRequestAdministrativeIssueTypeNameArabicNameLabel": l.Text = Ia.Ngn.Cl.Model.Business.ServiceRequestAdministrativeIssue.ColoredTypeCode(serviceRequestAdministrativeIssue.Type); break;
1275:
1276: case "isPrimaryAgcfGatewayRecordLabel": l.Text = Ia.Cl.Model.Default.YesNo(agcfGatewayRecord.IsPrimary); break;
1277:
1278: case "ontFamilyTypeLabel": l.Text = Ia.Ngn.Cl.Model.Data.Nokia.Ont.FamilyTypeStringFromId(ont.FamilyTypeId); break;
1279: case "ontStateIdLabel": l.Text = Ia.Ngn.Cl.Model.Data.Nokia.Ams.ColoredBellcoreStateFromId(ont.StateId); break;
1280: case "ontServiceVoipStateIdLabel": l.Text = Ia.Ngn.Cl.Model.Data.Nokia.Ams.ColoredBellcoreStateFromId(ontServiceVoip.StateId); break;
1281: case "ontServiceVoipMgcIpLabel": l.Text = ontServiceVoip.MgcIp; break;
1282: case "ontOntPotsStateIdLabel": l.Text = Ia.Ngn.Cl.Model.Data.Nokia.Ams.ColoredBellcoreStateFromId(ontOntPots.StateId); break;
1283: case "ontVendorLabel": l.Text = Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.Vendor.VendorNameFromId(ont.VendorId); break;
1284:
1285: case "emsDevStateIdLabel": l.Text = Ia.Ngn.Cl.Model.Data.Huawei.Ems.ColoredBellcoreStateFromId(emsDev.StateId); break;
1286: case "emsOntStateIdLabel": l.Text = Ia.Ngn.Cl.Model.Data.Huawei.Ems.ColoredBellcoreStateFromId(emsOnt.StateId); break;
1287: case "emsOntSipInfoStateIdLabel": l.Text = Ia.Ngn.Cl.Model.Data.Huawei.Ems.ColoredBellcoreStateFromId(emsOntSipInfo.StateId); break;
1288: case "emsOntSipInfoEmsOntAliasLabel": l.Text = emsOntSipInfo.EmsOnt.ALIAS.ToString(); break;
1289:
1290: //case "emsVoipPstnUserStateIdLabel": l.Text = Ia.Ngn.Cl.Model.Data.Huawei.Ems.ColoredBellcoreStateFromId(emsVoipPstnUser.StateId); break;
1291: //case "emsVagStateIdLabel": l.Text = Ia.Ngn.Cl.Model.Data.Huawei.Ems.ColoredBellcoreStateFromId(emsVag.StateId); break;
1292:
1293: case "emsDevTypeLabel": l.Text = emsDev.Type.ToString().ToUpper(); break;
1294: case "emsDevResultCodeLabel": l.Text = Ia.Ngn.Cl.Model.Client.Huawei.Ems.ColoredResultCodeString(emsDev.ResultCode); break;
1295: case "emsOntResultCodeLabel": l.Text = Ia.Ngn.Cl.Model.Client.Huawei.Ems.ColoredResultCodeString(emsOnt.ResultCode); break;
1296: case "emsOntSipInfoResultCodeLabel": l.Text = Ia.Ngn.Cl.Model.Client.Huawei.Ems.ColoredResultCodeString(emsOntSipInfo.ResultCode); break;
1297:
1298: case "emsVoipPstnUserEmsDevDevLabel": l.Text = Ia.Ngn.Cl.Model.Data.Huawei.Dev.EmsDevDevByEmsDevDid(emsVoipPstnUser.DID); break;
1299: //case "emsVoipPstnUserResultCodeLabel": l.Text = Ia.Ngn.Cl.Model.Client.Huawei.Ems.ColoredResultCodeString(emsVoipPstnUser.ResultCode); break;
1300: //case "emsVagResultCodeLabel": l.Text = Ia.Ngn.Cl.Model.Client.Huawei.Ems.ColoredResultCodeString(emsVag.ResultCode); break;
1301: //case "emsVoipPstnUserEmsOntAliasLabel": l.Text = emsVoipPstnUser.EmsOnt.ALIAS; break;
1302:
1303: case "impuOwsbrUsCodeLabel": l.Text = Ia.Ngn.Cl.Model.Business.Huawei.Owsbr.UsCodeColoredString(owsbr.US); break;
1304:
1305: case "userNameLabel": l.Text = membershipUser.UserName; break;
1306: case "userEmailLabel": l.Text = membershipUser.Email; break;
1307: case "userIsApprovedLabel": l.Text = Ia.Cl.Model.Default.YesNo(membershipUser.IsApproved); break;
1308: case "userIsOnlineLabel": l.Text = Ia.Cl.Model.Default.YesNo(membershipUser.IsOnline); break;
1309: case "userIsLockedOutLabel": l.Text = Ia.Cl.Model.Default.YesNo(membershipUser.IsLockedOut); break;
1310:
1311: case "staffIsHeadLabel": l.Text = Ia.Cl.Model.Default.YesNoInArabic(staff.IsHead); break;
1312: case "staffFirstNameLabel": l.Text = staff.FirstName; break;
1313: case "staffMiddleNameLabel": l.Text = staff.MiddleName; break;
1314: case "staffLastNameLabel": l.Text = staff.LastName; break;
1315: case "staffIpPbxExtensionLabel": l.Text = staff.IpPbxExtension; break;
1316: case "staffEmploymentIdLabel": l.Text = staff.EmploymentId.ToString(); break;
1317: case "staffAdministrativeFrameworkIdLabel": l.Text = (from f in Ia.Ngn.Cl.Model.Data.Administration.FrameworkList where f.Id == staff.AdministrativeFrameworkId select f.FullyQualifiedArabicName).SingleOrDefault(); break;
1318: case "staffIdentityUserIdLabel": l.Text = Ia.Cl.Model.Identity.UserNameDictionary[staff.UserId]; break;
1319: case "staffUserEmailLabel":
1320: {
1321: userList = Ia.Cl.Model.Identity.UserList;
1322:
1323: l.Text = (from u in userList where u.ProviderUserKey == staff.UserId select u.Email).SingleOrDefault();
1324: break;
1325: }
1326:
1327: case "contactFirstNameLabel": l.Text = contact.FirstName; break;
1328: case "contactMiddleNameLabel": l.Text = contact.MiddleName; break;
1329: case "contactLastNameLabel": l.Text = contact.LastName; break;
1330: case "contactCompanyLabel": l.Text = contact.Company; break;
1331: case "contactEmailLabel": l.Text = contact.Email; break;
1332: case "contactPhoneLabel": l.Text = contact.Phone; break;
1333: case "contactAddressLabel": l.Text = contact.Address; break;
1334: case "contactApprovedLabel": l.Text = Ia.Cl.Model.Default.YesNoInArabic(contact.IsApproved); break;
1335: case "contactUrlLabel": l.Text = contact.Url; break;
1336: case "contactNoteLabel": l.Text = contact.Note; break;
1337: case "contactUserIdLabel": l.Text = contact.UserId.ToString(); break;
1338:
1339: case "reportUserNameLabel": l.Text = "?"; break;
1340: case "reportStaffFrameworkLabel":
1341: {
1342: if (Ia.Ngn.Cl.Model.Business.Administration.IsFrameworkGuid(report.UserId))
1343: {
1344: arabicNameBracketParentArabicNameBracket = (from f in Ia.Ngn.Cl.Model.Data.Administration.FrameworkList where f.Guid == report.UserId select f.ArabicNameBracketParentArabicNameBracket).SingleOrDefault();
1345:
1346: l.Text = arabicNameBracketParentArabicNameBracket;
1347: }
1348: else
1349: {
1350: firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket = (from _s in Ia.Ngn.Cl.Model.Data.Staff.List where _s.UserId == report.UserId select _s.FirstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket).SingleOrDefault();
1351:
1352: l.Text = firstAndMiddleNameBracketFrameworkArabicNameAndFrameworkParentArabicNameBracket;
1353: }
1354:
1355: SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(ref e, ref l);
1356:
1357: /*
1358: if (report.LastReportHistory.UserId == staffMembershipUser.UserId)
1359: {
1360: //e.Row.BackColor = System.Drawing.Color.SlateGray;
1361: }
1362: */
1363:
1364: break;
1365: }
1366: case "accessAreaStatisticLabel": l.Text = (from kna in Ia.Ngn.Cl.Model.Data.Service.KuwaitOfnAreaList where kna.Id == areaId select kna.ArabicName).SingleOrDefault(); break;
1367: case "subscriberCallWaitingLabel": l.Text = Ia.Cl.Model.Default.YesNo(subscriber.CallWaiting); break;
1368: case "subPartyIsSipLabel": l.Text = Ia.Cl.Model.Default.YesNo(Ia.Ngn.Cl.Model.Business.Nokia.SubParty.IsSip(subParty.PrimaryPUIDCPEProfileNumber)); break;
1369: case "subPartyServiceSuspensionLabel": l.Text = Ia.Cl.Model.Default.YesNo(subParty.ServiceSuspension); break;
1370: case "subscriberCallForwardingLabel": l.Text = Ia.Cl.Model.Default.YesNo(subscriber.CallForwarding); break;
1371: case "subscriberAlarmCallLabel": l.Text = Ia.Cl.Model.Default.YesNo(subscriber.AlarmCall); break;
1372: case "subscriberInternationalCallingUserControlledLabel": l.Text = Ia.Cl.Model.Default.YesNo(subscriber.InternationalCallingUserControlled); break;
1373: case "subscriberInternationalCallingLabel": l.Text = Ia.Cl.Model.Default.YesNo(subscriber.InternationalCalling); break;
1374: case "subscriberCallerIdLabel": l.Text = Ia.Cl.Model.Default.YesNo(subscriber.CallerId); break;
1375: case "subscriberConferenceCallLabel": l.Text = Ia.Cl.Model.Default.YesNo(subscriber.ConferenceCall); break;
1376: case "subscriberAbbriviatedCallingLabel": l.Text = Ia.Cl.Model.Default.YesNo(subscriber.AbbriviatedCalling); break;
1377: case "subscriberCallBarringLabel": l.Text = "?"; break;
1378:
1379: case "nddOntPonPositionLabel": l.Text = nddOnt.Pon.Position; break;
1380: case "nddOntPonOltOdfSiteNameLabel": l.Text = nddOnt.Pon.PonGroup.Olt.Odf.Router.Site.Name; break;
1381: case "nddOntPonOltOdfSiteNameArabicNameLabel": l.Text = nddOnt.Pon.PonGroup.Olt.Odf.Router.Site.Name + " (" + nddOnt.Pon.PonGroup.Olt.Odf.Router.Site.ArabicName + ")"; break;
1382: case "nddOntPonOltAmsNameLabel": l.Text = nddOnt.Pon.PonGroup.Olt.AmsName; break;
1383: case "nddOntPonOltAreaLabel": l.Text = nddOnt.Pon.PonGroup.Olt.Symbol; break;
1384: case "nddOntPrimarySwitchLabel": l.Text = nddOnt.PrimarySwitch; break;
1385: case "nddOntPonOltFieldTypeLabel": l.Text = Ia.Ngn.Cl.Model.Business.NetworkDesignDocument.FieldTypeColoredString(nddOnt.Pon.PonGroup.Olt.FieldType); break;
1386: case "nddOntPonOltIsSipLabel": l.Text = Ia.Cl.Model.Default.YesNo(nddOnt.Pon.PonGroup.Olt.IsSip); break;
1387:
1388: case "nddOntMgcIpLabel": l.Text = nddOnt.MgcIp; break;
1389: case "nddOntMgcSecondaryIpLabel": l.Text = nddOnt.MgcSecondaryIp; break;
1390: case "nddOntPonOltVlanLabel": l.Text = "?"; break; // nddOnt.Pon.PonGroup.Olt.Vlan.ToString(); break;
1391: case "nddOntPonOltNetworkNumberLabel": l.Text = nddOnt.Pon.PonGroup.NetworkNumber; break;
1392: case "nddOntPonOltGatewayIpLabel": l.Text = nddOnt.Pon.PonGroup.GatewayIp; break;
1393: case "nddOntImsServiceLabel": l.Text = nddOnt.ImsService.ToString(); break;
1394: case "nddOntImsFsdbLabel": l.Text = nddOnt.ImsFsdb; break;
1395:
1396: case "nddOntProposedNameLabel":
1397: {
1398: /*
1399: if (nddOnt.Pon.PonGroup.HasNewProposedPonList)
1400: {
1401: l.Text = nddOnt.Access.ProposedName;
1402: }
1403: else
1404: {
1405: ((GridView)e.Row.Parent.Parent).Columns[5].Visible = false;
1406: // 5 is position (0 based) of HeaderText="Proposed Name"
1407: }
1408: */
1409:
1410: break;
1411: }
1412:
1413: case "nddOntPonOltOdfAccessVendorNameLabel": l.Text = nddOnt.Pon.PonGroup.Olt.Odf.Vendor.Name; break;
1414: case "nddOntPonOltOdfRouterSwitchVendorNameLabel": l.Text = nddOnt.Pon.PonGroup.Olt.Odf.Router.Vendor.Name; break;
1415:
1416: case "serviceExemptionNoteLabel": l.Text = serviceExemption.Note; break;
1417: case "serviceExemptionStaffNameLabel": l.Text = (from _s in Ia.Ngn.Cl.Model.Data.Staff.List where _s.UserId == serviceExemption.UserId select _s.FirstAndMiddleName).SingleOrDefault(); break;
1418:
1419: case "serviceRequestAreaLabel": l.Text = (from kna in Ia.Ngn.Cl.Model.Data.Service.KuwaitOfnAreaList where kna.Id == serviceRequest.AreaId select kna.ArabicName).SingleOrDefault(); break;
1420: case "serviceRequestOntAreaLabel": l.Text = (from kna in Ia.Ngn.Cl.Model.Data.Service.KuwaitOfnAreaList where kna.Symbol == serviceRequestOnt.AreaSymbol select kna.ArabicName).SingleOrDefault(); break;
1421:
1422: case "serviceRequestOntDetailServiceTypeLabel": l.Text = Ia.Ngn.Cl.Model.Data.ServiceRequest.ServiceSortedList[serviceRequestOntDetail.ServiceType].ToString(); break;
1423:
1424: default: break;
1425: }
1426: }
1427: else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.HyperLink")
1428: {
1429: HyperLink hl = (HyperLink)control.Controls[0];
1430:
1431: switch (hl.ID)
1432: {
1433: case "reportServiceHyperLink":
1434: {
1435: s = Ia.Ngn.Cl.Model.Business.Service.ServiceName(report.Service, report.ServiceType);
1436: hl.Text = s;
1437: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(s);
1438: break;
1439: }
1440: case "reportAccessServiceRequestServiceHyperLink":
1441: {
1442: s = Ia.Ngn.Cl.Model.Business.Service.ServiceName(reportAccessServiceRequest.Report.Service, reportAccessServiceRequest.Report.ServiceType);
1443: hl.Text = s;
1444: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(s);
1445: break;
1446: }
1447: case "serviceRequestNumberSerialHyperLink":
1448: {
1449: hl.Text = serviceRequest.Number + "/" + serviceRequest.Serial;
1450: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceRequest.Number.ToString());
1451: break;
1452: }
1453: case "serviceRequestCustomerNameHyperLink":
1454: {
1455: hl.Text = serviceRequest.CustomerName;
1456: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceRequest.CustomerName);
1457: break;
1458: }
1459: case "impuSbrHyperLink":
1460: {
1461: hl.Text = sbr.IMPU;
1462: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(sbr.IMPU);
1463: break;
1464: }
1465: case "impuOwsbrHyperLink":
1466: {
1467: hl.Text = owsbr.IMPU;
1468: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(owsbr.IMPU);
1469: break;
1470: }
1471: case "seruattrUsrnumHyperLink":
1472: {
1473: hl.Text = seruattr.USRNUM;
1474: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(seruattr.USRNUM);
1475: break;
1476: }
1477: case "axeSubscriberSnbHyperLink":
1478: {
1479: hl.Text = axeSubscriber.SNB.ToString();
1480: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(axeSubscriber.SNB.ToString());
1481: break;
1482: }
1483: case "ewsdSubscriberDnHyperLink":
1484: {
1485: hl.Text = ewsdSubscriber.DN.ToString();
1486: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(ewsdSubscriber.DN.ToString());
1487: break;
1488: }
1489: case "accessPositionHyperLink":
1490: {
1491: hl.Text = access.Position;
1492: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(access.Position);
1493:
1494: break;
1495: }
1496: case "accessPaciHyperLink":
1497: {
1498: hl.Text = access.Paci;
1499: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(access.Paci) + "&inputType=" + Ia.Ngn.Cl.Model.Business.Maintenance.Find.PaciInputTypeString;
1500:
1501: break;
1502: }
1503: case "ontSerialHyperLink":
1504: {
1505: hl.Text = ont.Serial;
1506: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(ont.Serial);
1507: break;
1508: }
1509: case "ontResetHyperLink":
1510: {
1511: //hl.Text = "Reset";
1512: hl.NavigateUrl = "~/maintenance/access.aspx?accessName=" + Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.AccessNameByOntId(ont.Id);
1513: break;
1514: }
1515: case "ontAmsEventsHyperLink":
1516: {
1517: //hl.Text = "Events";
1518: hl.NavigateUrl = "~/maintenance/event/ams.aspx?accessName=" + Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.AccessNameByOntId(ont.Id);
1519: break;
1520: }
1521: case "emsOntResetHyperLink":
1522: {
1523: //hl.Text = "Reset";
1524: hl.NavigateUrl = "~/maintenance/access.aspx?accessName=" + Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.AccessNameByOntId(emsOnt.Id);
1525: break;
1526: }
1527: case "reportAccessServiceRequestAccessNameHyperLink":
1528: {
1529: if (reportAccessServiceRequest.Access != null)
1530: {
1531: hl.Text = reportAccessServiceRequest.Access.Name;
1532: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(reportAccessServiceRequest.Access.Name);
1533: }
1534:
1535: break;
1536: }
1537: case "nddOntNameHyperLink":
1538: {
1539: hl.Text = nddOnt.Access.Name;
1540: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(nddOnt.Access.Name);
1541: break;
1542: }
1543: case "nddOntPonNameHyperLink":
1544: {
1545: hl.Text = nddOnt.Pon.Name;
1546: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(nddOnt.Pon.Name);
1547: break;
1548: }
1549: case "nddOntPositionHyperLink":
1550: {
1551: hl.Text = nddOnt.Position;
1552: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(nddOnt.Position);
1553: break;
1554: }
1555: case "nddOntIpHyperLink":
1556: {
1557: hl.Text = nddOnt.Ip;
1558: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(nddOnt.Ip);
1559: break;
1560: }
1561: case "serviceRequestServiceServiceHyperLink":
1562: {
1563: s = Ia.Ngn.Cl.Model.Business.Service.ServiceName(serviceRequestService.Service, serviceRequestService.ServiceType);
1564:
1565: hl.Text = s;
1566: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(s);
1567: break;
1568: }
1569: case "serviceRequestServiceAccessNameHyperLink":
1570: {
1571: if (serviceRequestService.Access != null)
1572: {
1573: hl.Text = serviceRequestService.Access.Name;
1574: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceRequestService.Access.Name);
1575: }
1576: break;
1577: }
1578: case "serviceRequestServiceReferenceHyperLink":
1579: {
1580: var accessName = serviceRequestService.Access != null ? serviceRequestService.Access.Name : string.Empty;
1581:
1582: //hl.Text = "Reference";
1583: hl.NavigateUrl = "~/provision/service-request-service-access.aspx?service=" + serviceRequestService.Service + "&accessName=" + accessName;
1584:
1585: break;
1586: }
1587: case "serviceRequestNumberHyperLink":
1588: {
1589: hl.Text = serviceRequest.Number.ToString();
1590: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceRequest.Number.ToString());
1591: break;
1592: }
1593: case "serviceRequestCustomerIdHyperLink":
1594: {
1595: hl.Text = serviceRequest.CustomerId.ToString();
1596: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceRequest.CustomerId.ToString()) + "&inputType=" + Ia.Ngn.Cl.Model.Business.Maintenance.Find.ServiceRequestCustomerIdInputTypeString;
1597: break;
1598: }
1599: case "serviceRequestHistoryNumberHyperLink":
1600: {
1601: hl.Text = serviceRequestHistory.Number.ToString();
1602: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceRequestHistory.Number.ToString());
1603: break;
1604: }
1605: case "accessOdfHyperLink":
1606: {
1607: hl.Text = access.Odf;
1608: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(access.Odf);
1609: break;
1610: }
1611: case "accessNameHyperLink":
1612: {
1613: hl.Text = access.Name;
1614: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(access.Name);
1615: break;
1616: }
1617: case "accessBlockHyperLink":
1618: {
1619: string areaSymbol;
1620:
1621: //if (int.TryParse(access.Block, out int i))
1622: //{
1623: hl.Text = access.Block;
1624: areaSymbol = (from kna in Ia.Ngn.Cl.Model.Data.Service.KuwaitOfnAreaList where kna.Id == access.AreaId select kna.Symbol).SingleOrDefault();
1625:
1626: if (!string.IsNullOrEmpty(areaSymbol))
1627: {
1628: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(areaSymbol + "," + access.Block);
1629: }
1630: else
1631: {
1632:
1633: }
1634: //}
1635: //else
1636: //{
1637:
1638: //}
1639:
1640: break;
1641: }
1642:
1643: case "service2ServiceHyperLink":
1644: {
1645: s = Ia.Ngn.Cl.Model.Business.Service.ServiceName(service2.Service, service2.ServiceType);
1646:
1647: hl.Text = s;
1648: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(s);
1649: break;
1650: }
1651: case "service2AccessNameHyperLink":
1652: {
1653: if (service2.AccessName != null && service2.Port != Ia.Ngn.Cl.Model.Business.Default.PortUndefinedOrInvalidOrUnknown)
1654: {
1655: hl.Text = service2.AccessName;
1656: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(service2.AccessName);
1657: }
1658: break;
1659: }
1660: case "service2ServiceProvisionHyperLink":
1661: {
1662: var accessName = service2.AccessName != null ? service2.AccessName : string.Empty;
1663:
1664: //hl.Text = "ServiceProvision";
1665: hl.NavigateUrl = "~/provision/service.aspx?service=" + service2.Service + "&accessName=" + accessName;
1666:
1667: break;
1668: }
1669: case "emsOntSipInfoServiceProvisionHyperLink":
1670: {
1671: var service = Ia.Ngn.Cl.Model.Business.NumberFormatConverter.Service(emsOntSipInfo.SIPUSERNAME);
1672:
1673: var accessName = (emsOntSipInfo.EmsOnt != null
1674: && emsOntSipInfo.EmsOnt.Access != null
1675: && emsOntSipInfo.EmsOnt.Access.Name != null) ? emsOntSipInfo.EmsOnt.Access.Name : string.Empty;
1676:
1677: var port = emsOntSipInfo.TEL;
1678:
1679: //hl.Text = "ServiceProvision";
1680: hl.NavigateUrl = "~/provision/access/service.aspx?service=" + service + "&accessName=" + accessName + "&port=" + port;
1681:
1682: break;
1683: }
1684: case "emsVoipPstnUserLicNameHyperLink":
1685: {
1686: if (emsVoipPstnUser.IsMsan)
1687: {
1688: var lic = Ia.Ngn.Cl.Model.Data.Huawei.Default.MsanDevLicByEmsVoipPstnUserId(emsVoipPstnUser.Id);
1689:
1690: if (lic != null)
1691: {
1692: hl.Text = lic.Name;
1693: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(lic.Name);
1694: }
1695: }
1696: else HideColumnName(e, "Name");
1697:
1698: break;
1699: }
1700: case "emsVoipPstnUserServiceOrMsanLicProvisionHyperLink":
1701: {
1702: int did, port, cabinet, frame, fn, sn, pn;
1703: string accessName, msanDevId;
1704: var service = Ia.Ngn.Cl.Model.Business.NumberFormatConverter.Service(emsVoipPstnUser.DN);
1705:
1706: did = emsVoipPstnUser.DID;
1707:
1708: if (emsVoipPstnUser.IsMsan)
1709: {
1710: var lic = Ia.Ngn.Cl.Model.Data.Huawei.Default.MsanDevLicByEmsVoipPstnUserId(emsVoipPstnUser.Id);
1711:
1712: if (lic != null)
1713: {
1714: msanDevId = lic.MsanDevId;
1715: cabinet = lic.Cabinet;
1716: frame = lic.Frame;
1717: fn = lic.Fn;
1718: sn = lic.Sn;
1719: pn = lic.Pn;
1720: }
1721: else
1722: {
1723: msanDevId = string.Empty;
1724: cabinet = frame = fn = sn = pn = -1;
1725: }
1726:
1727: hl.NavigateUrl = "~/provision/lic.aspx?msanDevId=" + msanDevId
1728: + "&cabinet=" + cabinet
1729: + "&frame=" + frame
1730: + "&fn=" + fn
1731: + "&sn=" + sn
1732: + "&pn=" + pn
1733: + "&service=" + service;
1734: }
1735: else
1736: {
1737: var didToMduDevDictionary = Ia.Ngn.Cl.Model.Data.Huawei.Default.DidToMduDevDictionary;
1738:
1739: var mduDev = Ia.Ngn.Cl.Model.Data.Huawei.Default.MduDevByDid(did);
1740:
1741: if (mduDev != null)
1742: {
1743: accessName = mduDev.AccessName;
1744:
1745: var fnSnPnPort = mduDev.PossibleFnSnPnPortList.Where(f => f.Fn == emsVoipPstnUser.FN && f.Sn == emsVoipPstnUser.SN && f.Pn == emsVoipPstnUser.PN).SingleOrDefault();
1746:
1747: if (fnSnPnPort != null) port = fnSnPnPort.Port;
1748: else port = Ia.Ngn.Cl.Model.Business.Default.PortUndefinedOrInvalidOrUnknown;
1749: }
1750: else
1751: {
1752: accessName = string.Empty;
1753: port = Ia.Ngn.Cl.Model.Business.Default.PortUndefinedOrInvalidOrUnknown;
1754: }
1755:
1756: //hl.Text = "ServiceProvision";
1757: hl.NavigateUrl = "~/provision/access/service.aspx?service=" + service + "&accessName=" + accessName + "&port=" + port;
1758: }
1759:
1760: break;
1761: }
1762: case "serviceExemptionServiceHyperLink":
1763: {
1764: s = Ia.Ngn.Cl.Model.Business.Service.ServiceName(serviceExemption.Service, serviceExemption.ServiceType);
1765:
1766: hl.Text = s;
1767: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(s);
1768: break;
1769: }
1770: case "reportHistoryServiceHyperLink":
1771: {
1772: s = Ia.Ngn.Cl.Model.Business.Service.ServiceName(reportHistory.Report.Service, reportHistory.Report.ServiceType);
1773:
1774: hl.Text = s;
1775: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(s);
1776: break;
1777: }
1778: case "serviceRequestOntDetailServiceHyperLink":
1779: {
1780: s = Ia.Ngn.Cl.Model.Business.Service.ServiceName(serviceRequestOntDetail.Service, serviceRequestOntDetail.ServiceType);
1781:
1782: hl.Text = s;
1783: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(s);
1784: break;
1785: }
1786: case "serviceRequestOntNameHyperLink":
1787: {
1788: hl.Text = serviceRequestOnt.Name;
1789: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceRequestOnt.Name);
1790: break;
1791: }
1792: case "serviceRequestOntBlockHyperLink":
1793: {
1794: hl.Text = serviceRequestOnt.Block;
1795: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceRequestOnt.AreaSymbol + "," + serviceRequestOnt.Block);
1796:
1797: break;
1798: }
1799: case "serviceRequestOntPaciHyperLink":
1800: {
1801: hl.Text = serviceRequestOnt.Paci;
1802: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceRequestOnt.Paci) + "&inputType=" + Ia.Ngn.Cl.Model.Business.Maintenance.Find.PaciInputTypeString;
1803:
1804: break;
1805: }
1806: case "serviceRequestAdministrativeIssueServiceHyperLink":
1807: {
1808: hl.Text = serviceRequestAdministrativeIssue.Service;
1809: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceRequestAdministrativeIssue.Service);
1810: break;
1811: }
1812: case "eventAccessNameHyperLink":
1813: {
1814: if (@event.Ont != null)
1815: {
1816: var ontId = @event.Ont.Id;
1817:
1818: var accessName = Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.AccessNameByOntId(ontId);
1819:
1820: hl.Text = accessName;
1821: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(accessName);
1822: }
1823:
1824: break;
1825: }
1826: case "gwIdAgcfGatewayRecordHyperLink":
1827: {
1828: hl.Text = agcfGatewayRecord.GwId.ToString();
1829: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(agcfGatewayRecord.GwId.ToString());
1830: break;
1831: }
1832: case "ip1AgcfGatewayRecordHyperLink":
1833: {
1834: hl.Text = agcfGatewayRecord.IP1;
1835: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(agcfGatewayRecord.IP1);
1836: break;
1837: }
1838: case "ip2AgcfGatewayRecordHyperLink":
1839: {
1840: hl.Text = agcfGatewayRecord.IP2;
1841: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(agcfGatewayRecord.IP2);
1842: break;
1843: }
1844: case "gwIdAgcfEndpointHyperLink":
1845: {
1846: hl.Text = agcfEndpoint.GwId.ToString();
1847: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(agcfEndpoint.GwId.ToString());
1848: break;
1849: }
1850:
1851: case "eidMgwHyperLink":
1852: {
1853: hl.Text = mgw.EID;
1854: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(mgw.EID);
1855: break;
1856: }
1857: case "puiAsbrHyperLink":
1858: {
1859: hl.Text = asbr.PUI;
1860: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(asbr.PUI);
1861: break;
1862: }
1863: case "eidAsbrHyperLink":
1864: {
1865: hl.Text = asbr.EID;
1866: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(asbr.EID);
1867: break;
1868: }
1869:
1870: case "subPartyDisplayNameHyperLink":
1871: {
1872: hl.Text = subParty.DisplayName;
1873: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(subParty.DisplayName);
1874: break;
1875: }
1876: case "ontServiceVoipIpHyperLink":
1877: {
1878: hl.Text = ontServiceVoip.Ip.ToString();
1879: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(ontServiceVoip.Ip);
1880: break;
1881: }
1882: case "reportHistoryHyperLink":
1883: {
1884: //hl.Text = "<img src=" + Ia.Cl.Model.Default.AbsoluteUrl(page) + "/image/legend/history.png class=icon alt=History width=19 height=19 />";
1885: hl.NavigateUrl = "~/maintenance/report/history.aspx?reportId=" + report.Id;
1886: break;
1887: }
1888: case "serviceServiceAccessNameHyperLink":
1889: {
1890: if (serviceAccessName.Service != null)
1891: {
1892: hl.Text = serviceAccessName.Service;
1893: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceAccessName.Service);
1894: }
1895: break;
1896: }
1897: case "accessNameServiceAccessNameHyperLink":
1898: {
1899: if (serviceAccessName.AccessName != null)
1900: {
1901: hl.Text = serviceAccessName.AccessName;
1902: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceAccessName.AccessName);
1903: }
1904: break;
1905: }
1906: case "serviceServiceAccessNameAddressHyperLink":
1907: {
1908: if (serviceAccessNameAddress.Service != null)
1909: {
1910: hl.Text = serviceAccessNameAddress.Service;
1911: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceAccessNameAddress.Service);
1912: }
1913: break;
1914: }
1915: case "accessNameServiceAccessNameAddressHyperLink":
1916: {
1917: if (serviceAccessNameAddress.AccessName != null)
1918: {
1919: hl.Text = serviceAccessNameAddress.AccessName;
1920: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(serviceAccessNameAddress.AccessName);
1921: }
1922: break;
1923: }
1924: case "msanDevLicNameHyperLink":
1925: {
1926: if (msanDevLic.Name != null)
1927: {
1928: hl.Text = msanDevLic.Name;
1929: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(msanDevLic.Name);
1930: }
1931: break;
1932: }
1933: case "msanDevLicServiceHyperLink":
1934: {
1935: if (msanDevLic.Service != null)
1936: {
1937: hl.Text = msanDevLic.Service;
1938: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(msanDevLic.Service);
1939: }
1940: break;
1941: }
1942: default: break;
1943: }
1944: }
1945: else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.TextBox")
1946: {
1947: TextBox tb = (TextBox)control.Controls[0];
1948:
1949: switch (tb.ID)
1950: {
1951: case "staffEmploymentIdTextBox": tb.Text = staff.EmploymentId.ToString(); break;
1952: case "staffFirstNameTextBox": tb.Text = staff.FirstName; break;
1953: case "staffMiddleNameTextBox": tb.Text = staff.MiddleName; break;
1954: case "staffLastNameTextBox": tb.Text = staff.LastName; break;
1955: case "staffIpPbxExtensionTextBox": tb.Text = staff.IpPbxExtension; break;
1956:
1957: case "contactFirstNameTextBox": tb.Text = contact.FirstName; break;
1958: case "contactMiddleNameTextBox": tb.Text = contact.MiddleName; break;
1959: case "contactLastNameTextBox": tb.Text = contact.LastName; break;
1960: case "contactCompanyTextBox": tb.Text = contact.Company; break;
1961: case "contactEmailTextBox": tb.Text = contact.Email; break;
1962: case "contactPhoneTextBox": tb.Text = contact.Phone; break;
1963: case "contactAddressTextBox": tb.Text = contact.Address; break;
1964: case "contactUrlTextBox": tb.Text = contact.Url; break;
1965: case "contactNoteTextBox": tb.Text = contact.Note; break;
1966:
1967: case "userNameTextBox": tb.Text = membershipUser.UserName; break;
1968: case "userEmailTextBox": tb.Text = membershipUser.Email; break;
1969: case "accessBlockTextBox": tb.Text = access.Block.ToString(); break;
1970: case "accessStreetTextBox": tb.Text = access.Street; break;
1971: case "accessPremisesOldTextBox": tb.Text = access.PremisesOld; break;
1972: case "accessPremisesNewTextBox": tb.Text = access.PremisesNew; break;
1973: case "accessPaciTextBox": tb.Text = access.Paci; break;
1974: case "accessNoteTextBox": tb.Text = access.Note; break;
1975:
1976: case "serviceExemptionNoteTextBox": tb.Text = serviceExemption.Note; break;
1977:
1978: default: break;
1979: }
1980: }
1981: else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.DropDownList")
1982: {
1983: DropDownList ddl = (DropDownList)control.Controls[0];
1984:
1985: switch (ddl.ID)
1986: {
1987: case "staffAdministrativeFrameworkIdDropDownList":
1988: {
1989: ddl.DataSource = Ia.Ngn.Cl.Model.Data.Administration.FrameworkList;
1990: ddl.DataValueField = "Id";
1991: ddl.DataTextField = "FullyQualifiedArabicName";
1992: ddl.DataBind();
1993:
1994: ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue(staff.AdministrativeFrameworkId.ToString()));
1995: break;
1996: }
1997:
1998: case "staffIdentityUserIdDropDownList":
1999: {
2000: ddl.Items.Clear();
2001:
2002: userList = Ia.Cl.Model.Identity.UserList;
2003:
2004: ddl.DataSource = userList;
2005: ddl.DataValueField = "ProviderUserKey";
2006: ddl.DataTextField = "UserName";
2007: ddl.DataBind();
2008:
2009: ddl.Items.Insert(0, new ListItem("Empty Guid", Guid.Empty.ToString()));
2010: ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue(staff.UserId.ToString()));
2011: break;
2012: }
2013:
2014: default: break;
2015: }
2016: }
2017: else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.CheckBox")
2018: {
2019: CheckBox cb = (CheckBox)control.Controls[0];
2020:
2021: switch (cb.ID)
2022: {
2023: case "staffIsHeadCheckBox": cb.Checked = staff.IsHead; break;
2024: case "contactApprovedCheckBox": cb.Checked = contact.IsApproved; break;
2025: default: break;
2026: }
2027: }
2028: else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.Image")
2029: {
2030: Image im = (Image)control.Controls[0];
2031:
2032: switch (im.ID)
2033: {
2034: case "deleteImage": break;
2035: case "historyImage": break;
2036: case "nddOntPonOltOdfAccessVendorIconImage":
2037: {
2038: //vendor = (from o in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OntList where o.Id == nddOnt.Id select o.Pon.PonGroup.Olt.Odf.Vendor).SingleOrDefault();
2039: vendor = nddOnt?.Pon.PonGroup.Olt.Odf.Vendor;
2040:
2041: if (vendor != null)
2042: {
2043: im.ImageUrl = vendor.ImageUrl;
2044: im.ToolTip = vendor.Name;
2045: }
2046:
2047: break;
2048: }
2049: case "nddOntPonOltOdfRouterSwitchVendorIconImage":
2050: {
2051: // vendor = (from o in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OntList where o.Id == nddOnt.Id select o.Pon.PonGroup.Olt.Odf.Router.Vendor).SingleOrDefault();
2052: vendor = nddOnt?.Pon.PonGroup.Olt.Odf.Router.Vendor;
2053:
2054: if (vendor != null)
2055: {
2056: im.ImageUrl = vendor.ImageUrl;
2057: im.ToolTip = vendor.Name;
2058: }
2059:
2060: break;
2061: }
2062: /*
2063: case "ontAccessOntPonOltOdfVendorIconImage":
2064: {
2065: vendor = (from q in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OntList where q.Id == ont.Id select q.Pon.PonGroup.Olt.Odf.Vendor).SingleOrDefault();
2066: im.ImageUrl = vendor.ImageUrl;
2067: im.ToolTip = vendor.Name;
2068: break;
2069: }
2070: */
2071: case "accessOntPonOltOdfVendorIconImage":
2072: {
2073: //vendor = (from o in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OntList where o.Access.Id == access.Id select o.Pon.PonGroup.Olt.Odf.Vendor).SingleOrDefault();
2074: vendor = nddOnt?.Pon.PonGroup.Olt.Odf.Vendor;
2075:
2076: if (vendor != null)
2077: {
2078: im.ImageUrl = vendor.ImageUrl;
2079: im.ToolTip = vendor.Name;
2080: }
2081:
2082: break;
2083: }
2084: default: break;
2085: }
2086: }
2087: else
2088: {
2089:
2090: }
2091: }
2092: }
2093: catch (Exception)
2094: {
2095: }
2096: }
2097: }
2098: else if (e.Row.RowType == DataControlRowType.Footer)
2099: {
2100: }
2101: else
2102: {
2103: }
2104: }
2105: else
2106: {
2107: if (e.Row.RowType == DataControlRowType.Header)
2108: {
2109: }
2110: else if (e.Row.RowType == DataControlRowType.DataRow)
2111: {
2112: foreach (Control control in e.Row.Controls)
2113: {
2114: try
2115: {
2116: if (control.Controls.Count > 0)
2117: {
2118: if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.Label")
2119: {
2120: Label l = (Label)control.Controls[0];
2121:
2122: switch (l.ID)
2123: {
2124: case "staffUserActivityIsApprovedLabel":
2125: {
2126: var b = Convert.ToBoolean(DataBinder.Eval(e.Row.DataItem, "IsApproved"));
2127: l.Text = Ia.Cl.Model.Default.YesNo(b);
2128: break;
2129: }
2130: case "staffUserActivityIsOnlineLabel":
2131: {
2132: var b = Convert.ToBoolean(DataBinder.Eval(e.Row.DataItem, "IsOnline"));
2133: l.Text = Ia.Cl.Model.Default.YesNo(b);
2134: break;
2135: }
2136: case "staffUserActivityIsLockedOutLabel":
2137: {
2138: var b = Convert.ToBoolean(DataBinder.Eval(e.Row.DataItem, "IsLockedOut"));
2139: l.Text = Ia.Cl.Model.Default.YesNo(b);
2140: break;
2141: }
2142: default: break;
2143: }
2144: }
2145: else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.HyperLink")
2146: {
2147: HyperLink hl = (HyperLink)control.Controls[0];
2148:
2149: switch (hl.ID)
2150: {
2151: /*
2152: case "reportServiceHyperLink":
2153: {
2154: s = Ia.Ngn.Cl.Model.Business.Service.ServiceName(report.Service, report.ServiceType);
2155: hl.Text = s;
2156: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(s);
2157: break;
2158: }
2159: */
2160: default: break;
2161: }
2162: }
2163: else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.TextBox")
2164: {
2165: TextBox tb = (TextBox)control.Controls[0];
2166:
2167: switch (tb.ID)
2168: {
2169: //case "staffEmploymentIdTextBox": tb.Text = staff.EmploymentId.ToString(); break;
2170: default: break;
2171: }
2172: }
2173: else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.DropDownList")
2174: {
2175: DropDownList ddl = (DropDownList)control.Controls[0];
2176:
2177: switch (ddl.ID)
2178: {
2179: /*
2180: case "staffAdministrativeFrameworkIdDropDownList":
2181: {
2182: ddl.DataSource = Ia.Ngn.Cl.Model.Data.Administration.FrameworkList;
2183: ddl.DataValueField = "Id";
2184: ddl.DataTextField = "FullyQualifiedArabicName";
2185: ddl.DataBind();
2186:
2187: ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue(staff.AdministrativeFrameworkId.ToString()));
2188: break;
2189: }
2190: */
2191:
2192: default: break;
2193: }
2194: }
2195: else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.CheckBox")
2196: {
2197: CheckBox cb = (CheckBox)control.Controls[0];
2198:
2199: switch (cb.ID)
2200: {
2201: //case "staffIsHeadCheckBox": cb.Checked = staff.IsHead; break;
2202: default: break;
2203: }
2204: }
2205: else if (control.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.Image")
2206: {
2207: Image im = (Image)control.Controls[0];
2208:
2209: switch (im.ID)
2210: {
2211: /*
2212: case "nddOntPonOltOdfAccessVendorIconImage":
2213: {
2214: //vendor = (from o in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OntList where o.Id == nddOnt.Id select o.Pon.PonGroup.Olt.Odf.Vendor).SingleOrDefault();
2215: vendor = nddOnt?.Pon.PonGroup.Olt.Odf.Vendor;
2216:
2217: if (vendor != null)
2218: {
2219: im.ImageUrl = vendor.ImageUrl;
2220: im.ToolTip = vendor.Name;
2221: }
2222:
2223: break;
2224: }
2225: */
2226: default: break;
2227: }
2228: }
2229: else
2230: {
2231:
2232: }
2233: }
2234: }
2235: catch (Exception)
2236: {
2237: }
2238: }
2239: }
2240: else if (e.Row.RowType == DataControlRowType.Footer)
2241: {
2242: }
2243: else
2244: {
2245: }
2246: }
2247: }
2248: else
2249: {
2250: }
2251: }
2252:
2253: ////////////////////////////////////////////////////////////////////////////
2254:
2255: /// <summary>
2256: ///
2257: /// </summary>
2258: public static void SetTableCellHtmlTextWriteStyleDirectionAccordingToPresenceOfArabicLetters(ref GridViewRowEventArgs gridViewRowEventArgs, ref Label l)
2259: {
2260: TableCell tableCell;
2261:
2262: // table cell direction depending on if text has Arabic
2263: if (!string.IsNullOrEmpty(l.Text))
2264: {
2265: if (Ia.Cl.Model.Language.HasArabicLetter(l.Text))
2266: {
2267: tableCell = gridViewRowEventArgs.Row.FindControl(l.ID).Parent as TableCell;
2268: //tableCell.HorizontalAlign = HorizontalAlign.Right;
2269: tableCell.Style[HtmlTextWriterStyle.Direction] = "rtl";
2270: }
2271: }
2272: }
2273:
2274: ////////////////////////////////////////////////////////////////////////////
2275:
2276: /// <summary>
2277: ///
2278: /// </summary>
2279: private static void HideColumnName(GridViewRowEventArgs e, string name)
2280: {
2281: // https://stackoverflow.com/questions/3819247/gridview-hide-column-by-code
2282:
2283: GridView gridView = (GridView)e.Row.Parent.Parent;
2284:
2285: var index = GetColumnIndexByName(gridView, name);
2286:
2287: if (index >= 0)
2288: {
2289: gridView.Columns[index].Visible = false;
2290: gridView.HeaderRow.Cells[index].Visible = false;
2291: }
2292: }
2293:
2294: ////////////////////////////////////////////////////////////////////////////
2295:
2296: /// <summary>
2297: ///
2298: /// </summary>
2299: private static int GetColumnIndexByName(GridView gridView, string name)
2300: {
2301: // https://stackoverflow.com/questions/3925183/method-to-find-gridview-column-index-by-name
2302:
2303: foreach (DataControlField col in gridView.Columns)
2304: {
2305: if (col.HeaderText.ToLower().Trim() == name.ToLower().Trim())
2306: {
2307: return gridView.Columns.IndexOf(col);
2308: }
2309: }
2310:
2311: return -1;
2312: }
2313:
2314: ////////////////////////////////////////////////////////////////////////////
2315: ////////////////////////////////////////////////////////////////////////////
2316:
2317: /// <summary>
2318: ///
2319: /// </summary>
2320: public static void DropDownList_DataBound(System.Web.UI.Page page, object sender, EventArgs e, Ia.Ngn.Cl.Model.Staff staff)
2321: {
2322: string kuwaitOfnAreaListString;
2323: DropDownList ddl;
2324: List<Ia.Ngn.Cl.Model.Business.Service.KuwaitOfnArea> kuwaitOfnAreaList;
2325:
2326: ddl = (DropDownList)sender;
2327:
2328: foreach (ListItem listItem in ddl.Items)
2329: {
2330: kuwaitOfnAreaList = (from k in Ia.Ngn.Cl.Model.Data.Service.KuwaitOfnAreaList where k.SiteList != null && k.SiteList.Any(u => u.Id == int.Parse(listItem.Value)) select k).ToList();
2331:
2332: if (kuwaitOfnAreaList != null && kuwaitOfnAreaList.Count > 0)
2333: {
2334: kuwaitOfnAreaListString = string.Join(", ", kuwaitOfnAreaList.Select(n => n.ArabicName).ToArray());
2335: }
2336: else kuwaitOfnAreaListString = null;
2337:
2338: listItem.Text = kuwaitOfnAreaListString;
2339: }
2340: }
2341:
2342: ////////////////////////////////////////////////////////////////////////////
2343:
2344: /// <summary>
2345: ///
2346: /// </summary>
2347: public static void DropDownList_DataBound(System.Web.UI.Page page, object sender, EventArgs e)
2348: {
2349: DropDownList_DataBound(page, sender, e, null);
2350: }
2351:
2352: ////////////////////////////////////////////////////////////////////////////
2353: ////////////////////////////////////////////////////////////////////////////
2354:
2355: /// <summary>
2356: ///
2357: /// </summary>
2358: public static void DataList_ItemDataBound(System.Web.UI.Page page, object sender, DataListItemEventArgs e)
2359: {
2360: bool senderKnown;
2361: string senderId;
2362: DataList dataList;
2363:
2364: senderKnown = true;
2365: dataList = (DataList)sender;
2366: senderId = dataList.ID;
2367:
2368: string accessName;
2369:
2370: accessName = null;
2371:
2372: switch (senderId)
2373: {
2374: case "accessNameDataList":
2375: {
2376: //access = (e.Item.DataItem as Ia.Ngn.Cl.Model.Access);
2377: accessName = (e.Item.DataItem as string);
2378: break;
2379: }
2380: default:
2381: senderKnown = false;
2382: break;
2383: }
2384:
2385: senderKnown = true;
2386:
2387: if (senderKnown)
2388: {
2389: if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
2390: {
2391: //CheckBox chk = e.Item.FindControl("AApBlue") as CheckBox;
2392: //Label lbl = e.Item.FindControl("Label1") as Label;
2393:
2394: //chk.Checked = (lbl.Text == "Y") ? true : false;
2395:
2396: HyperLink hl = e.Item.FindControl("accessNameHyperLink") as HyperLink;
2397:
2398: hl.Text = accessName;
2399: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(accessName);
2400: }
2401:
2402: //foreach (DataListItem dataListItem in dataList.Items)
2403: // {
2404: foreach (Control control in dataList.Controls) // dataListItem.Controls)
2405: {
2406: try
2407: {
2408: if (control is Label)
2409: {
2410: // CheckBox cb = (CheckBox)control.Controls[0];
2411: //Label l = (Label)control;
2412:
2413: //switch (l.ID)
2414: //{
2415: /*
2416: case "accessAreaLabel": l.Text = (from kna in Ia.Ngn.Cl.Model.Data.Service.KuwaitNgnAreaList where kna.Id == accessName.AreaId select kna.ArabicName).SingleOrDefault(); break;
2417: case "accessOltLabel": l.Text = (from o in Ia.Ngn.Cl.Model.Data.NetworkDesignDocument.OltList where o.Id == accessName.Olt select o.AmsName).SingleOrDefault(); break;
2418: case "accessBlockLabel": l.Text = accessName.Block.ToString(); break;
2419: case "accessStreetLabel": l.Text = accessName.Street; break;
2420: case "accessPremisesOldLabel": l.Text = accessName.PremisesOld; break;
2421: case "accessPremisesNewLabel": l.Text = accessName.PremisesNew; break;
2422: case "accessPaciLabel": l.Text = accessName.Paci; break;
2423: case "accessNoteLabel": l.Text = accessName.Note; break;
2424: case "accessStaffNameLabel": l.Text = (from _s in Ia.Ngn.Cl.Model.Data.Staff.List where _s.UserId == accessName.UserId select _s.FirstName).SingleOrDefault(); break;
2425: */ /*
2426: case "accessOntFamilyTypeCapacityLabel":
2427: {
2428: // temp: later quickly find vendor from accessId
2429: try
2430: {
2431: if (access.Onts != null && access.Onts.Count > 0)
2432: {
2433: l.Text = Ia.Ngn.Cl.Model.Data.Nokia.Ont.FamilyTypeFromId(access.Onts.FirstOrDefault().FamilyTypeId);
2434:
2435: l.Text += " (" + Ia.Ngn.Cl.Model.Business.Nokia.Ams.PossibleNumberOfTdForOntFamilyType(access.Onts.FirstOrDefault().FamilyTypeId) + ")";
2436: }
2437: else l.Text = string.Empty;
2438: }
2439: catch (Exception)// ex)
2440: {
2441: l.Text = string.Empty;
2442: }
2443:
2444: break;
2445: }
2446:
2447: case "accessFamilyTypeInAreaBlockLabel": l.Text = (from kna in Ia.Ngn.Cl.Model.Data.Service.KuwaitNgnAreaList where kna.Id == accessFamilyTypeInAreaBlock.AreaId select kna.NameArabicName).SingleOrDefault(); break;
2448: */
2449: //}
2450: }
2451: else if (control is HyperLink) // .GetType().ToString() == "System.Web.UI.WebControls.HyperLink")
2452: {
2453: HyperLink hl = (HyperLink)control;
2454:
2455: switch (hl.ID)
2456: {
2457: case "accessNameHyperLink":
2458: {
2459: hl.Text = accessName; //.Name;
2460: hl.NavigateUrl = Ia.Ngn.Cl.Model.Business.Maintenance.Find.Url(accessName); //.Name;
2461: break;
2462: }
2463: default:
2464: {
2465: break;
2466: }
2467: }
2468: }
2469: else
2470: {
2471:
2472: }
2473: }
2474: catch (Exception)
2475: {
2476:
2477: }
2478: }
2479: //}
2480: }
2481: else
2482: {
2483:
2484: }
2485: }
2486:
2487: ////////////////////////////////////////////////////////////////////////////
2488: ////////////////////////////////////////////////////////////////////////////
2489:
2490: /// <summary>
2491: ///
2492: /// </summary>
2493: public static void FormView_DataBound(System.Web.UI.Page page, object sender, EventArgs e)
2494: {
2495: }
2496:
2497: ////////////////////////////////////////////////////////////////////////////
2498: ////////////////////////////////////////////////////////////////////////////
2499:
2500: /// <summary>
2501: ///
2502: /// </summary>
2503: public static void TreeView_TreeNodeDataBound(System.Web.UI.Page page, object sender, System.Web.UI.WebControls.TreeNodeEventArgs e)
2504: {
2505: string s;
2506:
2507: s = e.Node.Text.Trim();
2508:
2509: s = s.Replace("\r\n", "<br/>");
2510: s = Regex.Replace(s, @"\s+", " ");
2511:
2512: e.Node.Text = s;
2513: }
2514:
2515: ////////////////////////////////////////////////////////////////////////////
2516: ////////////////////////////////////////////////////////////////////////////
2517:
2518: /// <summary>
2519: /// https://stackoverflow.com/questions/9715983/how-to-get-the-cell-value-by-column-name-not-by-index-in-gridview-in-asp-net
2520: /// </summary>
2521: private static int GetColumnIndexByName(GridViewRow row, string columnName)
2522: {
2523: int columnIndex = 0;
2524: foreach (DataControlFieldCell cell in row.Cells)
2525: {
2526: if (cell.ContainingField is BoundField)
2527: if (((BoundField)cell.ContainingField).DataField.Equals(columnName))
2528: break;
2529: columnIndex++; // keep adding 1 while we don't have the correct name
2530: }
2531: return columnIndex;
2532: }
2533:
2534: ////////////////////////////////////////////////////////////////////////////
2535: ////////////////////////////////////////////////////////////////////////////
2536: }
2537:
2538: ////////////////////////////////////////////////////////////////////////////
2539: ////////////////////////////////////////////////////////////////////////////
2540: }