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

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

    1: using Microsoft.AspNetCore.Identity;
    2: using Microsoft.AspNetCore.Mvc.Rendering;
    3: using System.Text;
    4: using System.Text.RegularExpressions;
    5:  
    6: namespace Ia.Ftn.Wa.Models.Administration
    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 ServiceRequestAdministrativeIssue
   18:     {
   19:         //private Ia.Ftn.Cl.Model.Staff staff;
   20:  
   21:         /*
   22:         private bool serviceState;
   23:         private int number;
   24:         private const string processStateSessionName = "Administration_Service_Suspension_Process_State";
   25:         private const string numberSessionName = "Administration_Service_Suspension_Number";
   26:         private const string serviceStateSessionName = "Administration_Service_Suspension_Service_State";
   27:         private NextProcessState processState;
   28: 
   29:         private enum NextProcessState { Read, Update };
   30:         */
   31:  
   32:         ////////////////////////////////////////////////////////////////////////////
   33:  
   34:         /// <summary>
   35:         ///
   36:         /// </summary>
   37:         public static void ViewModel(ref Ia.Ftn.Wa.Models.Administration.ServiceRequestAdministrativeIssueViewModel serviceRequestAdministrativeIssueViewModel)
   38:         {
   39:             // staff = Ia.Ftn.Cl.Model.Data.Staff.MembershipUser;
   40:  
   41:             /*
   42:             StringBuilder stringBuilder;
   43:             List<string> serviceList, pendingSuspensionList; //, pendingActivationList;
   44: 
   45:             processState = (ViewState[processStateSessionName] != null) ? (NextProcessState)ViewState[processStateSessionName] : NextProcessState.Read;
   46:             number = (ViewState[numberSessionName] != null) ? int.Parse(ViewState[numberSessionName].ToString()) : 0;
   47:             serviceState = (ViewState[serviceStateSessionName] != null) ? bool.Parse(ViewState[serviceStateSessionName].ToString()) : false;
   48: 
   49:             serviceTextBox.Text = (number != 0) ? number.ToString() : "";
   50: 
   51:             if (processState == NextProcessState.Read)
   52:             {
   53:                 serviceTextBox.Enabled = true;
   54:                 readButton.Enabled = readButton.Visible = true;
   55:                 updateButton.Enabled = updateButton.Visible = false;
   56:             }
   57:             else if (processState == NextProcessState.Update)
   58:             {
   59:                 serviceTextBox.Enabled = false;
   60:                 readButton.Enabled = readButton.Visible = false;
   61:                 updateButton.Enabled = updateButton.Visible = true;
   62:             }
   63: 
   64:             serviceList = Ia.Ftn.Cl.Model.Data.Service2.ServiceSuspensionIsTrueStringNumberList;
   65:             pendingSuspensionList = Ia.Ftn.Cl.Model.Business.Provision.ServiceSuspendedInServiceRequestServiceButNotInServiceStringNumberList;
   66:             //pendingActivationList = Ia.Ftn.Cl.Model.Business.Provision.ServiceActiveInServiceRequestServiceButNotInServiceStringNumberList;
   67: 
   68:             stringBuilder = new StringBuilder(50 * serviceList.Count);
   69:             foreach (string s in serviceList) stringBuilder.Append(@"<a href=""../maintenance/find.aspx?input=" + s + @""">" + s + "</a> ");
   70:             serviceSuspensionListLabel.Text = stringBuilder.ToString();
   71: 
   72:             stringBuilder = new StringBuilder(50 * pendingSuspensionList.Count);
   73:             foreach (string s in pendingSuspensionList) stringBuilder.Append(@"<a href=""../maintenance/find.aspx?input=" + s + @""">" + s + "</a> ");
   74:             pendingServiceSuspensionListLabel.Text = stringBuilder.ToString();
   75:             */
   76:  
   77:             /*
   78:             stringBuilder = new StringBuilder(50 * pendingActivationList.Count);
   79:             foreach (string s in pendingActivationList) stringBuilder.Append(@"<a href=""../maintenance/find.aspx?input=" + s + @""">" + s + "</a> ");
   80:             pendingServiceActivationListLabel.Text = stringBuilder.ToString();
   81:             */
   82:  
   83:             ServiceRequestAdministrativeIssueList_DataBind(ref serviceRequestAdministrativeIssueViewModel);
   84:  
   85:             ServiceRequestAdministrativeIssueTypeList_DataBind(ref serviceRequestAdministrativeIssueViewModel);
   86:  
   87:             // below: check permissions
   88:             //readButton.Enabled = readButton.Enabled && Ia.Ftn.Cl.Model.Business.Authority.StaffCanReadUpdateServiceRequestAdministrativeIssue(Ia.Ftn.Cl.Model.Business.Authority.PersistentStorageFunction.Read, staff);
   89:             //updateButton.Enabled = updateButton.Enabled && Ia.Ftn.Cl.Model.Business.Authority.StaffCanReadUpdateServiceRequestAdministrativeIssue(Ia.Ftn.Cl.Model.Business.Authority.PersistentStorageFunction.Update, staff);
   90:         }
   91:  
   92:         /*
   93:         ////////////////////////////////////////////////////////////////////////////
   94: 
   95:         /// <summary>
   96:         ///
   97:         /// </summary>
   98:         public void ReadButton_Click(object sender, EventArgs e)
   99:         {
  100:             string numberString;
  101:             DateTime now;
  102:             Guid userId;
  103:             Ia.Ftn.Cl.Model.ServiceRequestService serviceRequestService;
  104: 
  105:             numberString = Server.HtmlDecode(serviceTextBox.Text);
  106:             numberString = numberString.Trim();
  107: 
  108:             userId = Guid.Parse(Membership.GetUser().ProviderUserKey.ToString());
  109:             now = DateTime.UtcNow.AddHours(3);
  110: 
  111:             if (Ia.Ftn.Cl.Model.Business.Authority.StaffCanReadUpdateServiceRequestAdministrativeIssue(Ia.Ftn.Cl.Model.Business.Authority.PersistentStorageFunction.Read, staff))
  112:             {
  113:                 if (numberString.Length > 0 && int.TryParse(numberString, out number))
  114:                 {
  115:                     if (Ia.Ftn.Cl.Model.Business.Service.NumberIsWithinAllowedDomainList(number))
  116:                     {
  117:                         serviceRequestService = Ia.Ftn.Cl.Model.Data.ServiceRequestService.Read(number);
  118: 
  119:                         if (serviceRequestService != null)
  120:                         {
  121:                             processState = NextProcessState.Update;
  122: 
  123:                             resultLabel.Text = "Service record '" + numberString + "' has a service suspension value of '" + serviceRequestService.ServiceSuspension.ToString().ToLower() + "'. ";
  124:                             resultLabel.CssClass = "success";
  125: 
  126:                             // set the button text
  127:                             updateButton.Text = serviceRequestService.ServiceSuspension ? "Unsuspend (Activate)" : "Suspend";
  128: 
  129:                             ViewState[numberSessionName] = serviceRequestService.Service;
  130:                             ViewState[serviceStateSessionName] = serviceRequestService.ServiceSuspension;
  131:                             ViewState[processStateSessionName] = processState;
  132:                         }
  133:                         else
  134:                         {
  135:                             resultLabel.Text = "Service record for '" + numberString + "' does not exist. ";
  136:                             resultLabel.CssClass = "error";
  137:                         }
  138:                     }
  139:                     else
  140:                     {
  141:                         resultLabel.Text = @"The number '" + number + @"' does not belong to the network (الرقم لا ينتمي للشبكة).";
  142:                         resultLabel.CssClass = "error";
  143:                     }
  144:                 }
  145:                 else
  146:                 {
  147:                     resultLabel.Text = "Number format is incorrect or nothing was entered (الرقم غير مفهوم أو مفقود). ";
  148:                     resultLabel.CssClass = "error";
  149:                 }
  150:             }
  151:             else
  152:             {
  153:                 resultLabel.Text = "You are not authorized to read this value (لست مخولاً بقراءة هذه القيمة). ";
  154:                 resultLabel.CssClass = "error";
  155:             }
  156: 
  157:             Page_DataBind();
  158:         }
  159:         */
  160:  
  161:         /*
  162:         ////////////////////////////////////////////////////////////////////////////
  163: 
  164:         /// <summary>
  165:         ///
  166:         /// </summary>
  167:         public void UpdateButton_Click(object sender, EventArgs e)
  168:         {
  169:             int number;
  170:             string numberString;
  171:             Guid userId;
  172:             Ia.Cl.Models.Result result;
  173:             Ia.Ftn.Cl.Model.ServiceRequestService serviceRequestService;
  174: 
  175:             numberString = Server.HtmlDecode(serviceTextBox.Text);
  176:             numberString = numberString.Trim();
  177: 
  178:             userId = Guid.Parse(Membership.GetUser().ProviderUserKey.ToString());
  179: 
  180:             if (Ia.Ftn.Cl.Model.Business.Authority.StaffCanReadUpdateServiceRequestAdministrativeIssue(Ia.Ftn.Cl.Model.Business.Authority.PersistentStorageFunction.Update, staff))
  181:             {
  182:                 if (numberString.Length > 0 && int.TryParse(numberString, out number))
  183:                 {
  184:                     if (Ia.Ftn.Cl.Model.Business.Service.NumberIsWithinAllowedDomainList(number))
  185:                     {
  186:                         serviceRequestService = Ia.Ftn.Cl.Model.Data.ServiceRequestService.Read(number);
  187: 
  188:                         Ia.Ftn.Cl.Model.Data.ServiceRequestService.UpdateServiceSuspension(number.ToString(), !serviceRequestService.ServiceSuspension, userId, out result);
  189: 
  190:                         //Ia.Ftn.Cl.Model.Data.Msmq.ServiceQueue.ServiceSuspensionQueue.Enqueue(number.ToString());
  191: 
  192:                         if (result.IsSuccessful)
  193:                         {
  194:                             processState = NextProcessState.Read;
  195: 
  196:                             ViewState[numberSessionName] = null;
  197:                             ViewState[serviceStateSessionName] = null;
  198:                             ViewState[processStateSessionName] = processState;
  199: 
  200:                             resultLabel.Text = "Service record '" + numberString + "' has its service suspension value updated to '" + (!serviceRequestService.ServiceSuspension).ToString().ToLower() + "'";
  201:                             resultLabel.CssClass = "success";
  202:                         }
  203:                         else
  204:                         {
  205:                             resultLabel.Text = result.Error;
  206:                             resultLabel.CssClass = "error";
  207:                         }
  208:                     }
  209:                     else
  210:                     {
  211:                         resultLabel.Text = @"The number '" + number + @"' does not belong to the network (الرقم لا ينتمي للشبكة).";
  212:                         resultLabel.CssClass = "error";
  213:                     }
  214:                 }
  215:                 else
  216:                 {
  217:                     resultLabel.Text = "Number format is incorrect. ";
  218:                     resultLabel.CssClass = "error";
  219:                 }
  220:             }
  221:             else
  222:             {
  223:                 resultLabel.Text = "You are not authorized to modify this value (لست مخولاً بتعديل هذه القيمة).";
  224:                 resultLabel.CssClass = "error";
  225:             }
  226: 
  227:             Page_DataBind();
  228:         }
  229:         */
  230:  
  231:         ////////////////////////////////////////////////////////////////////////////
  232:  
  233:         /// <summary>
  234:         ///
  235:         /// </summary>
  236:         private static void ServiceRequestAdministrativeIssueList_DataBind(ref Ia.Ftn.Wa.Models.Administration.ServiceRequestAdministrativeIssueViewModel serviceRequestAdministrativeIssueViewModel)
  237:         {
  238:             Ia.Ftn.Cl.Models.Business.ServiceRequestAdministrativeIssue.DisconnectionType disconnectionType;
  239:             Ia.Ftn.Cl.Models.Business.ServiceRequestAdministrativeIssue.ServiceRequestAdministrativeIssueType serviceRequestAdministrativeIssueType;
  240:  
  241:             serviceRequestAdministrativeIssueViewModel.Result = new Ia.Cl.Models.Result();
  242:             serviceRequestAdministrativeIssueViewModel.Result2 = new Ia.Cl.Models.Result();
  243:  
  244:             disconnectionType = Ia.Ftn.Cl.Models.Business.ServiceRequestAdministrativeIssue.DisconnectionType.ProgrammedAccounting;
  245:  
  246:             serviceRequestAdministrativeIssueType = Ia.Ftn.Cl.Models.Business.ServiceRequestAdministrativeIssue.ServiceRequestAdministrativeIssueTypeByDisconnectionType(disconnectionType);
  247:  
  248:             var list = Ia.Ftn.Cl.Models.Data.ServiceRequestAdministrativeIssue.ServiceList(disconnectionType);
  249:  
  250:             if (list.Count > 0)
  251:             {
  252:                 serviceRequestAdministrativeIssueViewModel.Result.AddSuccess(serviceRequestAdministrativeIssueType.NameArabicName + ": list contains " + list.Count + " services.");
  253:  
  254:                 var stringBuilder = new StringBuilder();
  255:  
  256:                 foreach (string s in list)
  257:                 {
  258:                     stringBuilder.Append(@"<a href=""../maintenance/find.aspx?input=" + s + @""">" + s + "</a> ");
  259:                 }
  260:  
  261:                 serviceRequestAdministrativeIssueViewModel.ListText = stringBuilder.ToString();
  262:             }
  263:             else
  264:             {
  265:                 serviceRequestAdministrativeIssueViewModel.Result.AddWarning(serviceRequestAdministrativeIssueType.NameArabicName + ": list contains no services.");
  266:             }
  267:  
  268:  
  269:             disconnectionType = Ia.Ftn.Cl.Models.Business.ServiceRequestAdministrativeIssue.DisconnectionType.ProgrammedInternationalCalling;
  270:  
  271:             serviceRequestAdministrativeIssueType = Ia.Ftn.Cl.Models.Business.ServiceRequestAdministrativeIssue.ServiceRequestAdministrativeIssueTypeByDisconnectionType(disconnectionType);
  272:  
  273:             var list2 = Ia.Ftn.Cl.Models.Data.ServiceRequestAdministrativeIssue.ServiceList(disconnectionType);
  274:  
  275:             if (list2.Count > 0)
  276:             {
  277:                 serviceRequestAdministrativeIssueViewModel.Result2.AddSuccess(serviceRequestAdministrativeIssueType.NameArabicName + ": list contains " + list2.Count + " services.");
  278:  
  279:                 var stringBuilder = new StringBuilder();
  280:  
  281:                 foreach (string s in list2)
  282:                 {
  283:                     stringBuilder.Append(@"<a href=""../maintenance/find.aspx?input=" + s + @""">" + s + "</a> ");
  284:                 }
  285:  
  286:                 serviceRequestAdministrativeIssueViewModel.List2Text = stringBuilder.ToString();
  287:             }
  288:             else
  289:             {
  290:                 serviceRequestAdministrativeIssueViewModel.Result2.AddWarning(serviceRequestAdministrativeIssueType.NameArabicName + ": list contains no services.");
  291:             }
  292:         }
  293:  
  294:         ////////////////////////////////////////////////////////////////////////////
  295:  
  296:         /// <summary>
  297:         ///
  298:         /// </summary>
  299:         private static void ServiceRequestAdministrativeIssueTypeList_DataBind(ref Ia.Ftn.Wa.Models.Administration.ServiceRequestAdministrativeIssueViewModel serviceRequestAdministrativeIssueViewModel)
  300:         {
  301:             var list = Ia.Ftn.Cl.Models.Business.ServiceRequestAdministrativeIssue.ServiceRequestAdministrativeIssueTypeList;
  302:  
  303:             var s = "NameArabicName<br/>\r\n";
  304:  
  305:             foreach (var l in list)
  306:             {
  307:                 s += l.NameArabicName + "<br/>\r\n";
  308:             }
  309:  
  310:             serviceRequestAdministrativeIssueViewModel.LiteralText = s;
  311:         }
  312:  
  313:         ////////////////////////////////////////////////////////////////////////////
  314:         ////////////////////////////////////////////////////////////////////////////
  315:     }
  316:  
  317:     ////////////////////////////////////////////////////////////////////////////
  318:     ////////////////////////////////////////////////////////////////////////////
  319: }