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

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

    1: using Microsoft.AspNetCore.Mvc.Rendering;
    2: using System.Data;
    3: using System.Net;
    4: using System.Text;
    5:  
    6: namespace Ia.Ftn.Wa.Models.Provision
    7: {
    8:     ////////////////////////////////////////////////////////////////////////////
    9:  
   10:     /// <summary publish="true">
   11:     ///
   12:     /// </summary>
   13:     /// 
   14:     /// <remarks> 
   15:     /// Copyright © 2006-2025 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
   16:     /// </remarks> 
   17:     public static class Lic
   18:     {
   19:         private static StringBuilder logStringBuilder = new StringBuilder();
   20:  
   21:         ////////////////////////////////////////////////////////////////////////////
   22:  
   23:         /// <summary>
   24:         ///
   25:         /// </summary>
   26:         public static void ViewModel(ref Ia.Ftn.Wa.Models.Provision.LicViewModel currentLicViewModel, ref Ia.Ftn.Wa.Models.Provision.LicViewModel licViewModel)
   27:         {
   28:             CompareCurrentAndNewViewModels(ref currentLicViewModel, ref licViewModel);
   29:  
   30:             /*
   31:             // http://ftn/provision/lic.aspx?msanDevId=msanDevId&cabinet=cabinet&frame=frame&fn=fn&sn=sn&pn=pn&service=service
   32: 
   33:             var msanDevId = Request.QueryString["msanDevId"] != null ? WebUtility.HtmlDecode(Request.QueryString["msanDevId"].ToString()) : string.Empty;
   34:             var cabinet = Request.QueryString["cabinet"] != null ? WebUtility.HtmlDecode(Request.QueryString["cabinet"].ToString()) : string.Empty;
   35:             var frame = Request.QueryString["frame"] != null ? WebUtility.HtmlDecode(Request.QueryString["frame"].ToString()) : string.Empty;
   36:             var fn = Request.QueryString["fn"] != null ? WebUtility.HtmlDecode(Request.QueryString["fn"].ToString()) : string.Empty;
   37:             var card = Request.QueryString["sn"] != null ? WebUtility.HtmlDecode(Request.QueryString["sn"].ToString()) : string.Empty;
   38:             var port = Request.QueryString["pn"] != null ? WebUtility.HtmlDecode(Request.QueryString["pn"].ToString()) : string.Empty;
   39:             var service = Request.QueryString["service"] != null ? WebUtility.HtmlDecode(Request.QueryString["service"].ToString()) : string.Empty;
   40: 
   41:             if (!string.IsNullOrEmpty(msanDevId) && !string.IsNullOrEmpty(cabinet) && !string.IsNullOrEmpty(frame) && !string.IsNullOrEmpty(fn) && !string.IsNullOrEmpty(card) && !string.IsNullOrEmpty(port) && !string.IsNullOrEmpty(service))
   42:             {
   43:                 Page_ViewModel();// 2(msanDevId, cabinet, frame, fn, card, port, service);
   44:             }
   45:             else Page_ViewModel();
   46:             */
   47:  
   48:             var list = (from m in Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.MsanList
   49:                         select new
   50:                         {
   51:                             m.Site.Id,
   52:                             m.Site.NameArabicName,
   53:                             SiteNameArabicNameMsanNameSymbol = m.Site.NameArabicName + " (" + m.NameSymbol + ")"
   54:                         }).OrderBy(u => u.NameArabicName).ToList();
   55:  
   56:             if (!string.IsNullOrEmpty(licViewModel.MsanSiteSelectedValue))
   57:             {
   58:                 licViewModel.MsanSiteSelectList = new SelectList(list, "Id", "SiteNameArabicNameMsanNameSymbol", licViewModel.MsanSiteSelectedValue);
   59:             }
   60:             else
   61:             {
   62:                 licViewModel.MsanSiteSelectList = new SelectList(list, "Id", "SiteNameArabicNameMsanNameSymbol", list[0].Id.ToString());
   63:                 licViewModel.MsanSiteSelectedValue = list[0].Id.ToString();
   64:             }
   65:  
   66:             CabinetSelectList(ref licViewModel);
   67:  
   68:             var msanSiteId = int.Parse(licViewModel.MsanSiteSelectedValue);
   69:  
   70:             var msan = (from s in Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.SiteList
   71:                         where s.Id == msanSiteId
   72:                         select s.Msans.First()).Single();
   73:  
   74:             licViewModel.InsertButtonEnabled = licViewModel.DeleteButtonEnabled = (Ia.Ftn.Cl.Models.Business.Authority.StaffCanCreateDeleteLicList(Ia.Ftn.Cl.Models.Business.Authority.PersistentStorageFunction.Create, licViewModel.CurrentStaffIdentityUser, msan)) ? true : false;
   75:  
   76:             licViewModel.BulkInserButtonEnabled = Ia.Ftn.Cl.Models.Business.Authority.StaffCanCreateBulkLicList(Ia.Ftn.Cl.Models.Business.Authority.PersistentStorageFunction.Create, licViewModel.CurrentStaffIdentityUser) ? true : false;
   77:  
   78:             currentLicViewModel.MsanSiteSelectedValue = licViewModel.MsanSiteSelectedValue;
   79:             currentLicViewModel.CabinetSelectedValue = licViewModel.CabinetSelectedValue;
   80:             currentLicViewModel.FrameSelectedValue = licViewModel.FrameSelectedValue;
   81:             currentLicViewModel.CardSelectedValue = licViewModel.CardSelectedValue;
   82:             currentLicViewModel.PortSelectedValue = licViewModel.PortSelectedValue;
   83:  
   84:             licViewModel.LogLabel = logStringBuilder.ToString();
   85:         }
   86:  
   87:         ////////////////////////////////////////////////////////////////////////////
   88:  
   89:         /// <summary>
   90:         ///
   91:         /// </summary>
   92:         private static void CabinetSelectList(ref Ia.Ftn.Wa.Models.Provision.LicViewModel licViewModel)
   93:         {
   94:             if (licViewModel.MsanSiteSelectList.Count() > 0)
   95:             {
   96:                 if (!string.IsNullOrEmpty(licViewModel.MsanSiteSelectedValue))
   97:                 {
   98:                     var msanSiteId = int.Parse(licViewModel.MsanSiteSelectedValue);
   99:  
  100:                     var list = (from m in Ia.Ftn.Cl.Models.Data.Huawei.Default.MsanDevList
  101:                                 where m.Msan.Site.Id == msanSiteId
  102:                                 select new { Text = m.Cabinet, Value = m.Cabinet }).Distinct().OrderBy(u => u.Text).ToList();
  103:  
  104:                     if (list.Count > 0)
  105:                     {
  106:                         if (!string.IsNullOrEmpty(licViewModel.CabinetSelectedValue))
  107:                         {
  108:                             licViewModel.CabinetSelectList = new SelectList(list, "Value", "Text", licViewModel.CabinetSelectedValue);
  109:                         }
  110:                         else
  111:                         {
  112:                             licViewModel.CabinetSelectList = new SelectList(list, "Value", "Text", list[0].Value.ToString());
  113:                             licViewModel.CabinetSelectedValue = list[0].Value.ToString();
  114:                         }
  115:  
  116:                         FrameSelectList(ref licViewModel);
  117:                     }
  118:                 }
  119:             }
  120:             /*
  121:             private static void MsanSiteSelectList_SelectedIndexChanged(ref Ia.Ftn.Wa.Models.Provision.LicViewModel licViewModel)
  122:             {
  123:                 int msanSiteId;
  124: 
  125:                 if (msanSiteSelectList.Items.Count > 0)
  126:                 {
  127:                     msanSiteId = int.Parse(msanSiteSelectList.SelectedValue);
  128: 
  129:                     ViewState["msanSiteId"] = msanSiteId;
  130: 
  131:                     var list = (from m in Ia.Ftn.Cl.Models.Data.Huawei.Default.MsanDevList
  132:                                 where m.Msan.Site.Id == msanSiteId
  133:                                 select new { Text = m.Cabinet, Value = m.Cabinet }).Distinct().OrderBy(u => u.Text).ToList();
  134: 
  135:                     cabinetSelectList.DataSource = list;
  136:                     cabinetSelectList.DataTextField = "Text";
  137:                     cabinetSelectList.DataValueField = "Value";
  138:                     cabinetSelectList.ViewModel();
  139: 
  140:                     CabinetSelectList_SelectedIndexChanged(ref licViewModel);
  141:                 }
  142:                 else insertButton.Enabled = deleteButton.Enabled = false;
  143:             }
  144:             */
  145:         }
  146:  
  147:         ////////////////////////////////////////////////////////////////////////////
  148:  
  149:         /// <summary>
  150:         ///
  151:         /// </summary>
  152:         private static void FrameSelectList(ref Ia.Ftn.Wa.Models.Provision.LicViewModel licViewModel)
  153:         {
  154:             if (licViewModel.CabinetSelectList.Count() > 0)
  155:             {
  156:                 if (!string.IsNullOrEmpty(licViewModel.CabinetSelectedValue))
  157:                 {
  158:                     var msanSiteId = int.Parse(licViewModel.MsanSiteSelectedValue);
  159:                     var cabinet = int.Parse(licViewModel.CabinetSelectedValue);
  160:  
  161:                     var list = (from m in Ia.Ftn.Cl.Models.Data.Huawei.Default.MsanDevList
  162:                                 where m.Msan.Site.Id == msanSiteId && m.Cabinet == cabinet
  163:                                 select new { Text = m.Frame, Value = m.Frame }).Distinct().OrderBy(u => u.Text).ToList();
  164:  
  165:                     if (list.Count > 0)
  166:                     {
  167:                         if (!string.IsNullOrEmpty(licViewModel.FrameSelectedValue))
  168:                         {
  169:                             licViewModel.FrameSelectList = new SelectList(list, "Value", "Text", licViewModel.FrameSelectedValue);
  170:                         }
  171:                         else
  172:                         {
  173:                             licViewModel.FrameSelectList = new SelectList(list, "Value", "Text", list[0].Value.ToString());
  174:                             licViewModel.FrameSelectedValue = list[0].Value.ToString();
  175:                         }
  176:  
  177:                         CardSelectList(ref licViewModel);
  178:                     }
  179:                 }
  180:             }
  181:             /*
  182:             private static void CabinetSelectList_SelectedIndexChanged(ref Ia.Ftn.Wa.Models.Provision.LicViewModel licViewModel)
  183:             {
  184:                 int cabinet, msanSiteId;
  185: 
  186:                 if (cabinetSelectList.Items.Count > 0)
  187:                 {
  188:                     msanSiteId = int.Parse(msanSiteSelectList.SelectedValue);
  189:                     cabinet = int.Parse(cabinetSelectList.SelectedValue);
  190: 
  191:                     ViewState["cabinet"] = cabinet;
  192: 
  193:                     var list = (from m in Ia.Ftn.Cl.Models.Data.Huawei.Default.MsanDevList
  194:                                 where m.Msan.Site.Id == msanSiteId && m.Cabinet == cabinet
  195:                                 select new { Text = m.Frame, Value = m.Frame }).Distinct().OrderBy(u => u.Text).ToList();
  196: 
  197:                     frameSelectList.DataSource = list;
  198:                     frameSelectList.DataTextField = "Text";
  199:                     frameSelectList.DataValueField = "Value";
  200:                     frameSelectList.ViewModel();
  201: 
  202:                     FrameSelectList_SelectedIndexChanged(ref licViewModel);
  203:                 }
  204:                 else insertButton.Enabled = deleteButton.Enabled = false;
  205:             }
  206:             */
  207:         }
  208:  
  209:         ////////////////////////////////////////////////////////////////////////////
  210:  
  211:         /// <summary>
  212:         ///
  213:         /// </summary>
  214:         private static void CardSelectList(ref Ia.Ftn.Wa.Models.Provision.LicViewModel licViewModel)
  215:         {
  216:             if (licViewModel.CardSelectList.Count() > 0)
  217:             {
  218:                 if (!string.IsNullOrEmpty(licViewModel.CardSelectedValue))
  219:                 {
  220:                     var frame = int.Parse(licViewModel.FrameSelectedValue);
  221:  
  222:                     var list = (from s in Ia.Ftn.Cl.Models.Business.Huawei.Ems.PossibleSnForMsanDevList
  223:                                 select new { Text = s, Value = s }).Distinct().OrderBy(u => u.Text).ToList();
  224:  
  225:                     if (list.Count > 0)
  226:                     {
  227:                         if (!string.IsNullOrEmpty(licViewModel.CardSelectedValue))
  228:                         {
  229:                             licViewModel.CardSelectList = new SelectList(list, "Value", "Text", licViewModel.CardSelectedValue);
  230:                         }
  231:                         else
  232:                         {
  233:                             licViewModel.CardSelectList = new SelectList(list, "Value", "Text", list[0].Value.ToString());
  234:                             licViewModel.CardSelectedValue = list[0].Value.ToString();
  235:                         }
  236:  
  237:                         PortSelectList(ref licViewModel);
  238:                     }
  239:                 }
  240:             }
  241:             /*
  242:             private static void FrameSelectList_SelectedIndexChanged(ref Ia.Ftn.Wa.Models.Provision.LicViewModel licViewModel)
  243: {
  244:     int frame;
  245: 
  246:     if (frameSelectList.Items.Count > 0)
  247:     {
  248:         frame = int.Parse(frameSelectList.SelectedValue);
  249: 
  250:         ViewState["frame"] = frame;
  251: 
  252:         var list = (from s in Ia.Ftn.Cl.Models.Business.Huawei.Ems.PossibleSnForMsanDevList
  253:                     select new { Text = s, Value = s }).Distinct().OrderBy(u => u.Text).ToList();
  254: 
  255:         cardSelectList.DataSource = list;
  256:         cardSelectList.DataTextField = "Text";
  257:         cardSelectList.DataValueField = "Value";
  258:         cardSelectList.ViewModel();
  259: 
  260:         CardSelectList_SelectedIndexChanged(ref licViewModel);
  261:     }
  262:     else insertButton.Enabled = deleteButton.Enabled = false;
  263: }
  264: */
  265:  
  266:         }
  267:  
  268:         ////////////////////////////////////////////////////////////////////////////
  269:  
  270:         /// <summary>
  271:         ///
  272:         /// </summary>
  273:         private static void PortSelectList(ref Ia.Ftn.Wa.Models.Provision.LicViewModel licViewModel)
  274:         {
  275:             string service;
  276:  
  277:             List<Ia.Ftn.Cl.Models.Business.NetworkDesignDocument.Ont> ontList;
  278:  
  279:             if (licViewModel.CardSelectList.Count() > 0)
  280:             {
  281:                 if (!string.IsNullOrEmpty(licViewModel.CardSelectedValue))
  282:                 {
  283:                     var msanSiteId = int.Parse(licViewModel.MsanSiteSelectedValue);
  284:                     var cabinet = int.Parse(licViewModel.CabinetSelectedValue);
  285:                     var frame = int.Parse(licViewModel.FrameSelectedValue);
  286:                     var card = int.Parse(licViewModel.CardSelectedValue);
  287:  
  288:                     var listItemList = new List<SelectListItem>();
  289:  
  290:                     var msan = (from s in Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.SiteList
  291:                                 where s.Id == msanSiteId
  292:                                 select s.Msans.First()).Single();
  293:  
  294:                     var licList = Ia.Ftn.Cl.Models.Data.Huawei.Default.MsanDevLicListByNddMsanAndCabinetAndFrameAndFnAndSn(msan, cabinet, frame, 0, card);
  295:  
  296:                     foreach (var p in Ia.Ftn.Cl.Models.Business.Huawei.Ems.PossiblePnForMsanDevList)
  297:                     {
  298:                         service = (from m in licList where m.Pn == p select m.Service).FirstOrDefault();
  299:  
  300:                         if (!string.IsNullOrEmpty(service)) listItemList.Add(new SelectListItem(p + ": " + service, p.ToString()));
  301:                         else listItemList.Add(new SelectListItem(p + ":", p.ToString()));
  302:                     }
  303:  
  304:  
  305:  
  306:  
  307:                 }
  308:             }
  309:             /*
  310:             private static void CardSelectList_SelectedIndexChanged(ref Ia.Ftn.Wa.Models.Provision.LicViewModel licViewModel)
  311:             {
  312:                 int msanSiteId, cabinet, frame, card;
  313:                 string service;
  314: 
  315:                 if (cardSelectList.Items.Count > 0)
  316:                 {
  317:                     msanSiteId = int.Parse(msanSiteSelectList.SelectedValue);
  318:                     cabinet = int.Parse(cabinetSelectList.SelectedValue);
  319:                     frame = int.Parse(frameSelectList.SelectedValue);
  320:                     card = int.Parse(cardSelectList.SelectedValue);
  321: 
  322:                     ViewState["card"] = card;
  323: 
  324:                     var listItemList = new List<ListItem>();
  325: 
  326:                     var msan = (from s in Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.SiteList
  327:                                 where s.Id == msanSiteId
  328:                                 select s.Msans.First()).Single();
  329: 
  330:                     var licList = Ia.Ftn.Cl.Models.Data.Huawei.Default.MsanDevLicListByNddMsanAndCabinetAndFrameAndFnAndSn(msan, cabinet, frame, 0, card);
  331: 
  332:                     foreach (var p in Ia.Ftn.Cl.Models.Business.Huawei.Ems.PossiblePnForMsanDevList)
  333:                     {
  334:                         service = (from m in licList where m.Pn == p select m.Service).FirstOrDefault();
  335: 
  336:                         if (!string.IsNullOrEmpty(service)) listItemList.Add(new ListItem(p + ": " + service, p.ToString()));
  337:                         else listItemList.Add(new ListItem(p + ":", p.ToString()));
  338:                     }
  339: 
  340:                     portSelectList.DataSource = listItemList;
  341:                     portSelectList.DataTextField = "Text";
  342:                     portSelectList.DataValueField = "Value";
  343:                     portSelectList.ViewModel();
  344: 
  345:                     PortSelectList_SelectedIndexChanged(ref licViewModel);
  346:                 }
  347:                 else insertButton.Enabled = deleteButton.Enabled = false;
  348:             }
  349:             */
  350:         }
  351:  
  352:         ////////////////////////////////////////////////////////////////////////////
  353:  
  354:         /// <summary>
  355:         ///
  356:         /// </summary>
  357:         private static void OntSelectList(ref Ia.Ftn.Wa.Models.Administration.AccessNetworkViewModel accessNetworkViewModel)
  358:         {
  359:             List<Ia.Ftn.Cl.Models.Business.NetworkDesignDocument.Ont> ontList;
  360:  
  361:             if (accessNetworkViewModel.PonSelectList.Count() > 0)
  362:             {
  363:                 if (!string.IsNullOrEmpty(accessNetworkViewModel.PonSelectedValue))
  364:                 {
  365:                     var ponId = accessNetworkViewModel.PonSelectedValue;
  366:  
  367:                     ontList = (from o in Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.OntList where o.Pon.Id == ponId select o).ToList();
  368:  
  369:                     var ontText = string.Empty;
  370:  
  371:                     foreach (Ia.Ftn.Cl.Models.Business.NetworkDesignDocument.Ont ont in ontList)
  372:                     {
  373:                         ontText += ont.Access.Name.PadRight(11, ' ') + "    " + ont.Position.PadRight(15, ' ') + "    " + ont.Ip + "   " + "\n";
  374:                     }
  375:  
  376:                     accessNetworkViewModel.OntText = ontText;
  377:                 }
  378:             }
  379:             /*
  380:             private static void PortSelectList_SelectedIndexChanged(ref Ia.Ftn.Wa.Models.Provision.LicViewModel licViewModel)
  381:             {
  382:                 int msanSiteId, cabinet, frame, card, port;
  383:                 string msanDevId, emsVoipPstnUserId;
  384: 
  385:                 if (portSelectList.Items.Count > 0)
  386:                 {
  387:                     msanSiteId = int.Parse(msanSiteSelectList.SelectedValue);
  388:                     cabinet = int.Parse(cabinetSelectList.SelectedValue);
  389:                     frame = int.Parse(frameSelectList.SelectedValue);
  390:                     card = int.Parse(cardSelectList.SelectedValue);
  391: 
  392:                     port = int.Parse(portSelectList.SelectedValue);
  393: 
  394:                     ViewState["port"] = port;
  395: 
  396:                     var msan = (from s in Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.SiteList
  397:                                 where s.Id == msanSiteId
  398:                                 select s.Msans.First()).Single();
  399: 
  400:                     msanDevId = (from m in Ia.Ftn.Cl.Models.Data.Huawei.Default.MsanDevList
  401:                                  where m.Msan.Site.Id == msanSiteId && m.Cabinet == cabinet && m.Frame == frame
  402:                                  select m.Id).Single();
  403: 
  404:                     ViewState["msanDevId"] = msanDevId;
  405: 
  406:                     var licList = Ia.Ftn.Cl.Models.Data.Huawei.Default.MsanDevLicListByNddMsanAndCabinetAndFrameAndFnAndSn(msan, cabinet, frame, 0, card);
  407: 
  408:                     var lic = (from u in licList where u.Pn == port select u).SingleOrDefault();
  409: 
  410:                     if (lic == null)
  411:                     {
  412:                         // show insert button
  413: 
  414:                         serviceTextBox.Text = string.Empty;
  415:                         serviceTextBox.ReadOnly = false;
  416:                         serviceTextBox.Enabled = true;
  417: 
  418:                         insertButton.Visible = true;
  419:                         deleteButton.Visible = false;
  420:                     }
  421:                     else
  422:                     {
  423:                         // show delete button
  424: 
  425:                         serviceTextBox.Text = lic.Service;
  426:                         serviceTextBox.ReadOnly = true;
  427:                         serviceTextBox.Enabled = false;
  428: 
  429:                         emsVoipPstnUserId = lic.EmsVoipPstnUserId;
  430: 
  431:                         ViewState["emsVoipPstnUserId"] = emsVoipPstnUserId;
  432: 
  433:                         insertButton.Visible = false;
  434:                         deleteButton.Visible = true;
  435:                     }
  436:                 }
  437:                 else insertButton.Enabled = deleteButton.Enabled = false;
  438:             }
  439:             */
  440:         }
  441:  
  442:         ////////////////////////////////////////////////////////////////////////////
  443:  
  444:         /// <summary>
  445:         ///
  446:         /// </summary>
  447:         public static void Post(ref Ia.Ftn.Wa.Models.Provision.LicViewModel licViewModel, string commandName, string inputTextArea)
  448:         {
  449:             if (commandName == "insert") Insert(ref licViewModel);
  450:             else if (commandName == "delete") Delete(ref licViewModel);
  451:             else if (commandName == "bulkInsert") BulkInsert(ref licViewModel);
  452:             else
  453:             {
  454:             }
  455:         }
  456:  
  457:         ////////////////////////////////////////////////////////////////////////////
  458:         ////////////////////////////////////////////////////////////////////////////
  459:  
  460:         /// <summary>
  461:         ///
  462:         /// </summary>
  463:         private static void Insert(ref Ia.Ftn.Wa.Models.Provision.LicViewModel licViewModel)
  464:         {
  465:             var result = new Ia.Cl.Models.Result();
  466:  
  467:             var msanSiteId = int.Parse(licViewModel.MsanSiteSelectedValue);
  468:             var cabinet = int.Parse(licViewModel.CabinetSelectedValue);
  469:             var frame = int.Parse(licViewModel.FrameSelectedValue);
  470:             var card = int.Parse(licViewModel.CardSelectedValue);
  471:             var port = int.Parse(licViewModel.PortSelectedValue);
  472:             var service = licViewModel.ServiceInput;
  473:  
  474:             if (!string.IsNullOrEmpty(service))
  475:             {
  476:                 service = WebUtility.HtmlDecode(service);
  477:                 service = service.Trim();
  478:  
  479:                 var msanDevId = licViewModel.MsanDevId;
  480:  
  481:                 var msan = (from s in Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.SiteList
  482:                             where s.Id == msanSiteId
  483:                             select s.Msans.First()).Single();
  484:  
  485:                 if (Ia.Ftn.Cl.Models.Business.Authority.StaffCanCreateDeleteLicList(Ia.Ftn.Cl.Models.Business.Authority.PersistentStorageFunction.Create, licViewModel.CurrentStaffIdentityUser, msan))
  486:                 {
  487:                     result = Ia.Ftn.Cl.Models.Business.Huawei.Default.InsertLic(msan, msanDevId, cabinet, frame, card, port, service, licViewModel.CurrentStaffIdentityUser);
  488:  
  489:                     if (result.IsSuccessful)
  490:                     {
  491:                         logStringBuilder.AppendLine(DateTime.UtcNow.AddHours(3).ToString("yyyy-MM-dd HH:mm")
  492:                             + ": " + licViewModel.CurrentStaffIdentityUser.FirstAndMiddleName + " inserted " + service + " at " + msan.NameSymbol + "-" + cabinet + "-" + frame + "-" + card + "-" + port
  493:                             + "\r\n<br/>");
  494:                     }
  495:                 }
  496:                 else result.AddError("You are not authorized to modify this value (لست مخولاً بتعديل هذه القيمة).");
  497:             }
  498:             else result.AddError("Service is null or empty (لم يتم إدخال رقم)");
  499:  
  500:             licViewModel.Result = result;
  501:  
  502:             licViewModel.LogLabel = logStringBuilder.ToString();
  503:         }
  504:  
  505:         ////////////////////////////////////////////////////////////////////////////
  506:  
  507:         /// <summary>
  508:         ///
  509:         /// </summary>
  510:         private static void Delete(ref Ia.Ftn.Wa.Models.Provision.LicViewModel licViewModel)
  511:         {
  512:             var result = new Ia.Cl.Models.Result();
  513:  
  514:             var msanSiteId = int.Parse(licViewModel.MsanSiteSelectedValue);
  515:  
  516:             var msan = (from s in Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.SiteList
  517:                         where s.Id == msanSiteId
  518:                         select s.Msans.First()).Single();
  519:  
  520:             if (Ia.Ftn.Cl.Models.Business.Authority.StaffCanCreateDeleteLicList(Ia.Ftn.Cl.Models.Business.Authority.PersistentStorageFunction.Delete, licViewModel.CurrentStaffIdentityUser, msan))
  521:             {
  522:                 var emsVoipPstnUserId = licViewModel.EmsVoipPstnUserId;
  523:  
  524:                 if (!string.IsNullOrEmpty(emsVoipPstnUserId))
  525:                 {
  526:                     result = Ia.Ftn.Cl.Models.Business.Huawei.Default.DeleteLic(msan, emsVoipPstnUserId, licViewModel.CurrentStaffIdentityUser, out Ia.Ftn.Cl.Models.Business.Huawei.Dev.MsanDev.Lic msanDevLic);
  527:  
  528:                     if (result.IsSuccessful)
  529:                     {
  530:                         logStringBuilder.AppendLine(DateTime.UtcNow.AddHours(3).ToString("yyyy-MM-dd HH:mm")
  531:                             + ": " + licViewModel.CurrentStaffIdentityUser.FirstAndMiddleName + " deleted " + msanDevLic.Service + " from " + msanDevLic.ToMsanNameSymbolCabinetFrameSnPnTextString()
  532:                             + "\r\n<br/>");
  533:                     }
  534:                 }
  535:                 else result.AddError("emsVoipPstnUserId is null or empty.");
  536:             }
  537:             else result.AddError("You are not authorized to modify this value (لست مخولاً بتعديل هذه القيمة).");
  538:  
  539:             licViewModel.Result = result;
  540:  
  541:             licViewModel.LogLabel = logStringBuilder.ToString();
  542:         }
  543:  
  544:         ////////////////////////////////////////////////////////////////////////////
  545:         ////////////////////////////////////////////////////////////////////////////
  546:  
  547:         /// <summary>
  548:         ///
  549:         /// </summary>
  550:         private static void BulkInsert(ref Ia.Ftn.Wa.Models.Provision.LicViewModel licViewModel)
  551:         {
  552:             var result = new Ia.Cl.Models.Result();
  553:  
  554:             var input = licViewModel.InputTextArea;
  555:  
  556:             if (!string.IsNullOrEmpty(input))
  557:             {
  558:                 input = WebUtility.HtmlDecode(input);
  559:                 input = input.Trim();
  560:  
  561:                 if (Ia.Ftn.Cl.Models.Business.Authority.StaffCanCreateBulkLicList(Ia.Ftn.Cl.Models.Business.Authority.PersistentStorageFunction.Create, licViewModel.CurrentStaffIdentityUser))
  562:                 {
  563:                     result = Ia.Ftn.Cl.Models.Business.Huawei.Default.BulkInsertLic(input, licViewModel.CurrentStaffIdentityUser, out StringBuilder stringBuilder);
  564:  
  565:                     if (result.IsSuccessful)
  566:                     {
  567:                         result.AddSuccess("Bulk insert was successfull (تم إدخال القائمة بنجاح)");
  568:                     }
  569:                 }
  570:                 else result.AddError("You are not authorized to modify this value (لست مخولاً بتعديل هذه القيمة)");
  571:             }
  572:             else result.AddError("Input is null or empty (لم يتم إدخال شيء)");
  573:  
  574:             licViewModel.BulkResult = result;
  575:  
  576:             //logLabel.Text = logStringBuilder.ToString();
  577:         }
  578:  
  579:         ////////////////////////////////////////////////////////////////////////////
  580:         ////////////////////////////////////////////////////////////////////////////
  581:  
  582:         /// <summary>
  583:         ///
  584:         /// </summary>
  585:         private static void CompareCurrentAndNewViewModels(ref Ia.Ftn.Wa.Models.Provision.LicViewModel currentLicViewModel, ref Ia.Ftn.Wa.Models.Provision.LicViewModel licViewModel)
  586:         {
  587:             if (licViewModel.MsanSiteSelectedValue != currentLicViewModel.MsanSiteSelectedValue)
  588:             {
  589:                 licViewModel.CabinetSelectedValue = string.Empty;
  590:                 licViewModel.FrameSelectedValue = string.Empty;
  591:                 licViewModel.CardSelectedValue = string.Empty;
  592:                 licViewModel.PortSelectedValue = string.Empty;
  593:             }
  594:             else if (licViewModel.CabinetSelectedValue != currentLicViewModel.CabinetSelectedValue)
  595:             {
  596:                 licViewModel.FrameSelectedValue = string.Empty;
  597:                 licViewModel.CardSelectedValue = string.Empty;
  598:                 licViewModel.PortSelectedValue = string.Empty;
  599:             }
  600:             else if (licViewModel.FrameSelectedValue != currentLicViewModel.FrameSelectedValue)
  601:             {
  602:                 licViewModel.CardSelectedValue = string.Empty;
  603:                 licViewModel.PortSelectedValue = string.Empty;
  604:             }
  605:             else if (licViewModel.CardSelectedValue != currentLicViewModel.CardSelectedValue)
  606:             {
  607:                 licViewModel.PortSelectedValue = string.Empty;
  608:             }
  609:             else if (licViewModel.PortSelectedValue != currentLicViewModel.PortSelectedValue)
  610:             {
  611:             }
  612:             else
  613:             {
  614:             }
  615:         }
  616:  
  617:         ////////////////////////////////////////////////////////////////////////////
  618:  
  619:         /// <summary>
  620:         ///
  621:         /// </summary>
  622:         private static void Page_ViewModel2(string msanDevId, string cabinet, string frame, string fn, string card, string port, string service)
  623:         {
  624:             var msanDev = (from m in Ia.Ftn.Cl.Models.Data.Huawei.Default.MsanDevList
  625:                            where m.Id == msanDevId
  626:                            select m).Single();
  627:  
  628:             //ViewState["msanDevId"] = msanDevId;
  629:             //ViewState["cabinet"] = msanDev.Cabinet;
  630:             //ViewState["frame"] = msanDev.Frame;
  631:  
  632:             //msanSiteSelectList.SelectedValue = msanDev.Msan.Site.Id;
  633:  
  634:             //insertButton.Enabled = deleteButton.Enabled = (Ia.Ftn.Cl.Models.Business.Authority.StaffCanCreateDeleteLicList(Ia.Ftn.Cl.Models.Business.Authority.PersistentStorageFunction.Create, staff, msanDev)) ? true : false;
  635:  
  636:             //bulkInsertButton.Enabled = (Ia.Ftn.Cl.Models.Business.Authority.StaffCanCreateBulkLicList(Ia.Ftn.Cl.Models.Business.Authority.PersistentStorageFunction.Create, staff)) ? true : false;
  637:         }
  638:  
  639:         ////////////////////////////////////////////////////////////////////////////
  640:         ////////////////////////////////////////////////////////////////////////////
  641:     }
  642:  
  643:     ////////////////////////////////////////////////////////////////////////////
  644:     ////////////////////////////////////////////////////////////////////////////
  645: }