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

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

    1: using System.Net;
    2:  
    3: namespace Ia.Ftn.Wa.Models.Provision.Access
    4: {
    5:     ////////////////////////////////////////////////////////////////////////////
    6:  
    7:     /// <summary publish="true">
    8:     ///
    9:     /// </summary>
   10:     /// 
   11:     /// <remarks> 
   12:     /// Copyright © 2006-2025 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
   13:     /// </remarks> 
   14:     public static class Service
   15:     {
   16:         ////////////////////////////////////////////////////////////////////////////
   17:  
   18:         /// <summary>
   19:         ///
   20:         /// </summary>
   21:         public static void ViewModel(ref Ia.Ftn.Wa.Models.Provision.Access.ServiceViewModel serviceViewModel)
   22:         {
   23:             // http://ftn/provision/access/service.aspx?service=25233434&accessName=SHD.20.11&port=2
   24:  
   25:             // serviceViewModel.ServiceInput = Request.QueryString["service"] != null ? WebUtility.HtmlDecode(Request.QueryString["service"].ToString()) : string.Empty;
   26:             // serviceViewModel.AccessNameInput = Request.QueryString["accessName"] != null ? WebUtility.HtmlDecode(Request.QueryString["accessName"].ToString()) : string.Empty;
   27:             // serviceViewModel.PortInput = Request.QueryString["port"] != null ? WebUtility.HtmlDecode(Request.QueryString["port"].ToString()) : string.Empty;
   28:  
   29:             serviceViewModel.Label = "1-" + Ia.Ftn.Cl.Models.Data.Default.MaximumOntTelPorts;
   30:  
   31:             serviceViewModel.CreateReadServiceTaskButtonEnabled = serviceViewModel.DeleteReadServiceTaskButtonEnabled = Ia.Ftn.Cl.Models.Business.Authority.StaffCanExecuteTasks(serviceViewModel.CurrentStaffIdentityUser);
   32:         }
   33:  
   34:         ////////////////////////////////////////////////////////////////////////////
   35:  
   36:         /// <summary>
   37:         ///
   38:         /// </summary>
   39:         public static void Post(ref Ia.Ftn.Wa.Models.Provision.Access.ServiceViewModel serviceViewModel, string commandName)
   40:         {
   41:             if (commandName == "enqueueCreateRead") EnqueueCreateRead(ref serviceViewModel);
   42:             else if (commandName == "enqueueDeleteRead") EnqueueDeleteRead(ref serviceViewModel);
   43:             else
   44:             {
   45:             }
   46:         }
   47:  
   48:         ////////////////////////////////////////////////////////////////////////////
   49:         ////////////////////////////////////////////////////////////////////////////
   50:  
   51:         /// <summary>
   52:         ///
   53:         /// </summary>
   54:         private static void EnqueueCreateRead(ref Ia.Ftn.Wa.Models.Provision.Access.ServiceViewModel serviceViewModel)
   55:         {
   56:             EnqueueCreateReadOrDeleteRead(ref serviceViewModel, Ia.Ftn.Cl.Models.Business.MessageQueue.Process.CreateReadNceOrAmsServiceAccessPort);
   57:         }
   58:  
   59:         ////////////////////////////////////////////////////////////////////////////
   60:  
   61:         /// <summary>
   62:         ///
   63:         /// </summary>
   64:         private static void EnqueueDeleteRead(ref Ia.Ftn.Wa.Models.Provision.Access.ServiceViewModel serviceViewModel)
   65:         {
   66:             EnqueueCreateReadOrDeleteRead(ref serviceViewModel, Ia.Ftn.Cl.Models.Business.MessageQueue.Process.DeleteReadNceOrAmsServiceAccessPort);
   67:         }
   68:  
   69:         ////////////////////////////////////////////////////////////////////////////
   70:  
   71:         /// <summary>
   72:         ///
   73:         /// </summary>
   74:         private static void EnqueueCreateReadOrDeleteRead(ref Ia.Ftn.Wa.Models.Provision.Access.ServiceViewModel serviceViewModel, Ia.Ftn.Cl.Models.Business.MessageQueue.Process process)
   75:         {
   76:             int portNumber;
   77:             string service, accessName, port, accessNameOrEmpty;
   78:             Ia.Cl.Models.Result result;
   79:             Ia.Ftn.Cl.Models.Access access;
   80:  
   81:             result = new Ia.Cl.Models.Result();
   82:  
   83:             if (Ia.Ftn.Cl.Models.Business.Authority.StaffCanExecuteTasks(serviceViewModel.CurrentStaffIdentityUser))
   84:             {
   85:                 if (!string.IsNullOrEmpty(serviceViewModel.ServiceInput))
   86:                 {
   87:                     service = WebUtility.HtmlDecode(serviceViewModel.ServiceInput);
   88:                     service = service.Trim();
   89:  
   90:                     if (service.Length > 0)
   91:                     {
   92:                         if (int.TryParse(service, out int number))
   93:                         {
   94:                             if (Ia.Ftn.Cl.Models.Business.Service.ServiceHasEightDigitsAndIsWithinAllowedDomainList(number))
   95:                             {
   96:                                 port = WebUtility.HtmlDecode(serviceViewModel.PortInput);
   97:  
   98:                                 if (string.IsNullOrEmpty(port)) port = Ia.Ftn.Cl.Models.Business.Default.PortUndefinedOrInvalidOrUnknown.ToString();
   99:  
  100:                                 port = port.Trim();
  101:  
  102:                                 if (int.TryParse(port, out portNumber))
  103:                                 {
  104:                                     if (portNumber >= Ia.Ftn.Cl.Models.Business.Default.PortUndefinedOrInvalidOrUnknown && portNumber <= Ia.Ftn.Cl.Models.Data.Default.MaximumOntTelPorts)
  105:                                     {
  106:                                         if (process == Ia.Ftn.Cl.Models.Business.MessageQueue.Process.CreateReadNceOrAmsServiceAccessPort)
  107:                                         {
  108:                                             if (!string.IsNullOrEmpty(serviceViewModel.AccessNameInput))
  109:                                             {
  110:                                                 accessName = WebUtility.HtmlDecode(serviceViewModel.AccessNameInput);
  111:                                                 accessName = accessName.Trim();
  112:  
  113:                                                 if (accessName.Length > 0)
  114:                                                 {
  115:                                                     if (Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.AccessNameIsWithinAllowedOntList(accessName, out string accessName2))
  116:                                                     {
  117:                                                         access = Ia.Ftn.Cl.Models.Data.Access.ReadByAccessName(accessName2);
  118:  
  119:                                                         if (access != null)
  120:                                                         {
  121:                                                             Ia.Ftn.Cl.Models.Business.Maintenance.Task.ServiceAccessPortTask(process, service, access.Name, portNumber, serviceViewModel.CurrentStaffIdentityUser, out result);
  122:                                                         }
  123:                                                         else result.AddError(@"""" + accessName + @""" does not exist (الجهاز غير معرف)");
  124:                                                     }
  125:                                                     else result.AddError(@"""" + accessName + @""" does not belong to the network (الجهاز لا ينتمي للشبكة)");
  126:                                                 }
  127:                                                 else result.AddError("Input format is unknown (قيمة غير مفهومة)");
  128:                                             }
  129:                                             else result.AddError("No input was entered for access (لم يتم إدخال جهاز)");
  130:                                         }
  131:                                         else if (process == Ia.Ftn.Cl.Models.Business.MessageQueue.Process.DeleteReadNceOrAmsServiceAccessPort)
  132:                                         {
  133:                                             if (!string.IsNullOrEmpty(serviceViewModel.AccessNameInput))
  134:                                             {
  135:                                                 accessName = WebUtility.HtmlDecode(serviceViewModel.AccessNameInput);
  136:                                                 accessName = accessName.Trim();
  137:  
  138:                                                 if (accessName.Length > 0)
  139:                                                 {
  140:                                                     if (Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.AccessNameIsWithinAllowedOntList(accessName, out string accessName2))
  141:                                                     {
  142:                                                         access = Ia.Ftn.Cl.Models.Data.Access.ReadByAccessName(accessName2);
  143:  
  144:                                                         if (access != null) accessNameOrEmpty = access.Name;
  145:                                                         else accessNameOrEmpty = string.Empty;
  146:                                                     }
  147:                                                     else accessNameOrEmpty = string.Empty;
  148:                                                 }
  149:                                                 else accessNameOrEmpty = string.Empty;
  150:                                             }
  151:                                             else accessNameOrEmpty = string.Empty;
  152:  
  153:                                             Ia.Ftn.Cl.Models.Business.Maintenance.Task.ServiceAccessPortTask(process, service, accessNameOrEmpty, portNumber, serviceViewModel.CurrentStaffIdentityUser, out result);
  154:                                         }
  155:                                         else throw new ArgumentOutOfRangeException("MessageQueue process " + process.ToString() + " is undefined");
  156:                                     }
  157:                                     else result.AddError(@"The port number """ + port + @""" is out of range. Should be between " + Ia.Ftn.Cl.Models.Business.Default.PortUndefinedOrInvalidOrUnknown + " and " + Ia.Ftn.Cl.Models.Data.Default.MaximumOntTelPorts + " inclusive. (رقم المدخل خارج نطاق المقبول");
  158:                                 }
  159:                                 else result.AddError(@"The port number """ + port + @""" is not empty or a valid number (ليس خاليا ولا رقماَ)");
  160:                             }
  161:                             else result.AddError(@"The number """ + number + @""" does not belong to the network (الرقم لا ينتمي للشبكة)");
  162:                         }
  163:                         else result.AddError(@"The service number """ + service + @""" is not a valid number (ليس رقماَ)");
  164:                     }
  165:                     else result.AddError("Input format is unknown (قيمة غير مفهومة)");
  166:                 }
  167:                 else result.AddError("No input was entered for service (لم يتم إدخال رقم)");
  168:             }
  169:             else result.AddError("You are not authorized to modify this value (لست مخولاً بتعديل هذه القيمة)");
  170:  
  171:             serviceViewModel.Result = result;
  172:         }
  173:  
  174:         ////////////////////////////////////////////////////////////////////////////
  175:         ////////////////////////////////////////////////////////////////////////////
  176:     }
  177:  
  178:     ////////////////////////////////////////////////////////////////////////////
  179:     ////////////////////////////////////////////////////////////////////////////
  180: }