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

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

    1: using Ia.Ftn.Wa.Models;
    2: using Microsoft.AspNetCore.Authorization;
    3: using Microsoft.AspNetCore.Mvc;
    4: using Microsoft.AspNetCore.Mvc.Rendering;
    5: using System.Diagnostics;
    6: using System.Net;
    7:  
    8: namespace Ia.Ftn.Wa.Controllers
    9: {
   10:     ////////////////////////////////////////////////////////////////////////////
   11:  
   12:     /// <summary publish="true">
   13:     ///
   14:     /// </summary>
   15:     /// 
   16:     /// <remarks> 
   17:     /// Copyright © 2006-2025 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
   18:     /// </remarks> 
   19:     [Authorize]
   20:     public class MaintenanceEventController : Controller
   21:     {
   22:         ////////////////////////////////////////////////////////////////////////////
   23:  
   24:         /// <summary>
   25:         /// 
   26:         /// </summary>
   27:         [Route("/maintenance/event")]
   28:         public IActionResult Index()
   29:         {
   30:             var maintenanceEventViewModel = new Ia.Ftn.Wa.Models.Maintenance.MaintenanceEventViewModel();
   31:  
   32:             SelectList_ViewModel(ref maintenanceEventViewModel);
   33:  
   34:             return View(maintenanceEventViewModel);
   35:         }
   36:  
   37:         ////////////////////////////////////////////////////////////////////////////
   38:  
   39:         /// <summary>
   40:         /// 
   41:         /// </summary>
   42:         [Route("/maintenance/event/ams")]
   43:         public IActionResult Ams()
   44:         {
   45:             var maintenanceEventViewModel = new Ia.Ftn.Wa.Models.Maintenance.MaintenanceEventViewModel();
   46:  
   47:             SelectList_ViewModel(ref maintenanceEventViewModel);
   48:  
   49:             return View(maintenanceEventViewModel);
   50:         }
   51:  
   52:         ////////////////////////////////////////////////////////////////////////////
   53:  
   54:         /// <summary>
   55:         /// 
   56:         /// </summary>
   57:         [HttpPost]
   58:         [Route("/maintenance/event/ams")]
   59:         public IActionResult Search(Ia.Ftn.Wa.Models.Maintenance.MaintenanceEventViewModel maintenanceEventViewModel)
   60:         {
   61:             SelectList_ViewModel(ref maintenanceEventViewModel);
   62:  
   63:             var rawInput = WebUtility.HtmlDecode(maintenanceEventViewModel.TextInput);
   64:  
   65:             var result = new Ia.Cl.Models.Result();
   66:  
   67:             if (string.IsNullOrEmpty(rawInput))
   68:             {
   69:                 if (maintenanceEventViewModel.CauseSelectList.Count() > 0)
   70:                 {
   71:                     if (maintenanceEventViewModel.SeveritySelectList.Count() > 0)
   72:                     {
   73:                         if (maintenanceEventViewModel.ServiceEffectSelectList.Count() > 0)
   74:                         {
   75:                             if (maintenanceEventViewModel.CauseSelectList.Count() > 0)
   76:                             {
   77:                                 var classId = maintenanceEventViewModel.ClassSelectedValue;
   78:                                 var severityId = maintenanceEventViewModel.SeveritySelectedValue;
   79:                                 var serviceEffectId = maintenanceEventViewModel.ServiceEffectSelectedValue;
   80:                                 var causeId = maintenanceEventViewModel.CauseSelectedValue;
   81:  
   82:                                 // to send string.Empty if the value is '*'
   83:                                 if (classId == "All") classId = string.Empty;
   84:                                 if (severityId == "All") severityId = string.Empty;
   85:                                 if (serviceEffectId == "All") serviceEffectId = string.Empty;
   86:                                 if (causeId == "All") causeId = string.Empty;
   87:  
   88:                                 var list = Ia.Ftn.Cl.Models.Data.Event.ReadTakeNOrderByIdDescendingListFromNddOntId(string.Empty, classId, severityId, serviceEffectId, causeId, 100);
   89:  
   90:                                 if (list.Count > 0)
   91:                                 {
   92:                                     maintenanceEventViewModel.EventList = list;
   93:  
   94:                                     result.AddSuccess("Search for Nokia AMS events returned " + list.Count + " records.");
   95:                                 }
   96:                                 else
   97:                                 {
   98:                                     result.AddWarning("No event records were found (لا توجد أحداث قريبة العهد).");
   99:                                 }
  100:                             }
  101:                             else
  102:                             {
  103:                                 result.AddError("causeDropDownList contains not items.");
  104:                             }
  105:                         }
  106:                         else
  107:                         {
  108:                             result.AddError("serviceEffectDropDownList contains not items.");
  109:                         }
  110:                     }
  111:                     else
  112:                     {
  113:                         result.AddError("severityDropDownList contains not items.");
  114:                     }
  115:                 }
  116:                 else
  117:                 {
  118:                     result.AddError("classDropDownList contains not items.");
  119:                 }
  120:             }
  121:             else
  122:             {
  123:                 var input = rawInput.Trim();
  124:  
  125:                 if (Ia.Ftn.Cl.Models.Business.Access.AccessNameIsInAValidFormat(input))
  126:                 {
  127:                     if (maintenanceEventViewModel.CauseSelectList.Count() > 0)
  128:                     {
  129:                         if (maintenanceEventViewModel.SeveritySelectList.Count() > 0)
  130:                         {
  131:                             if (maintenanceEventViewModel.ServiceEffectSelectList.Count() > 0)
  132:                             {
  133:                                 if (maintenanceEventViewModel.CauseSelectList.Count() > 0)
  134:                                 {
  135:                                     var nddOnt = Ia.Ftn.Cl.Models.Business.Default.NddOntUsingExtractedAccessNameWithValidSymbolAndLegalFormatForPonAndOntFromValue(input);
  136:  
  137:                                     if (nddOnt != null)
  138:                                     {
  139:                                         if (nddOnt.Pon.PonGroup.Olt.Odf.Vendor == Ia.Ftn.Cl.Models.Business.NetworkDesignDocument.Vendor.Nokia)
  140:                                         {
  141:                                             var classId = maintenanceEventViewModel.ClassSelectedValue;
  142:                                             var severityId = maintenanceEventViewModel.SeveritySelectedValue;
  143:                                             var serviceEffectId = maintenanceEventViewModel.ServiceEffectSelectedValue;
  144:                                             var causeId = maintenanceEventViewModel.CauseSelectedValue;
  145:  
  146:                                             // to send string.Empty if the value is '*'
  147:                                             if (classId == "All") classId = string.Empty;
  148:                                             if (severityId == "All") severityId = string.Empty;
  149:                                             if (serviceEffectId == "All") serviceEffectId = string.Empty;
  150:                                             if (causeId == "All") causeId = string.Empty;
  151:  
  152:                                             var list = Ia.Ftn.Cl.Models.Data.Event.ReadTakeNOrderByIdDescendingListFromNddOntId(nddOnt.Id, classId, severityId, serviceEffectId, causeId, 100);
  153:  
  154:                                             if (list.Count > 0)
  155:                                             {
  156:                                                 maintenanceEventViewModel.EventList = list;
  157:  
  158:                                                 result.AddSuccess("Search for \"" + rawInput + "\" Nokia AMS events returned " + list.Count + " records.");
  159:                                             }
  160:                                             else
  161:                                             {
  162:                                                 result.AddWarning("No event records were found for \"" + rawInput + "\" (لا توجد أحداث قريبة العهد للجهاز).");
  163:                                             }
  164:                                         }
  165:                                         else
  166:                                         {
  167:                                             result.AddError("The ONT \"" + input + "\" does not belong to Nokia Access network (الجهاز لا ينتمي لشبكة الخطوط الطرفية التابعة لنوكيا).");
  168:                                         }
  169:                                     }
  170:                                     else
  171:                                     {
  172:                                         result.AddError("The ONT \"" + input + "\" does not belong to the network (الجهاز لا ينتمي للشبكة).");
  173:                                     }
  174:                                 }
  175:                                 else
  176:                                 {
  177:                                     result.AddError("causeDropDownList contains not items.");
  178:                                 }
  179:                             }
  180:                             else
  181:                             {
  182:                                 result.AddError("serviceEffectDropDownList contains not items.");
  183:                             }
  184:                         }
  185:                         else
  186:                         {
  187:                             result.AddError("severityDropDownList contains not items.");
  188:                         }
  189:                     }
  190:                     else
  191:                     {
  192:                         result.AddError("classDropDownList contains not items.");
  193:                     }
  194:                 }
  195:                 else
  196:                 {
  197:                     result.AddError("Input format is unknown (قيمة غير مفهومة). ");
  198:                 }
  199:             }
  200:  
  201:             maintenanceEventViewModel.Result = result;
  202:  
  203:             return View("Ams", maintenanceEventViewModel);
  204:         }
  205:  
  206:         ////////////////////////////////////////////////////////////////////////////
  207:         ////////////////////////////////////////////////////////////////////////////
  208:  
  209:         /// <summary>
  210:         ///
  211:         /// </summary>
  212:         public void SelectList_ViewModel(ref Ia.Ftn.Wa.Models.Maintenance.MaintenanceEventViewModel maintenanceEventViewModel)
  213:         {
  214:             ClassList(ref maintenanceEventViewModel);
  215:             SeverityList(ref maintenanceEventViewModel);
  216:             ServiceEffectList(ref maintenanceEventViewModel);
  217:             CauseList(ref maintenanceEventViewModel);
  218:         }
  219:  
  220:         ////////////////////////////////////////////////////////////////////////////
  221:  
  222:         /// <summary>
  223:         ///
  224:         /// </summary>
  225:         protected void ClassList(ref Ia.Ftn.Wa.Models.Maintenance.MaintenanceEventViewModel maintenanceEventViewModel)
  226:         {
  227:             var list = Ia.Ftn.Cl.Models.Data.Event.ClassList;
  228:             list.Insert(0, "All");
  229:  
  230:             maintenanceEventViewModel.ClassSelectList = new SelectList(list);
  231:  
  232:             maintenanceEventViewModel.ButtonEnabled = true; // (Ia.Ftn.Cl.Model.Business.Authority.StaffCanExecuteTasks(staff)) ? true : false;
  233:         }
  234:  
  235:         ////////////////////////////////////////////////////////////////////////////
  236:  
  237:         /// <summary>
  238:         ///
  239:         /// </summary>
  240:         protected void SeverityList(ref Ia.Ftn.Wa.Models.Maintenance.MaintenanceEventViewModel maintenanceEventViewModel)
  241:         {
  242:             var list = Ia.Ftn.Cl.Models.Data.Event.SeverityList;
  243:             list.Insert(0, new Ia.Ftn.Cl.Models.Data.Event.Severity("All", "All"));
  244:  
  245:             maintenanceEventViewModel.SeveritySelectList = new SelectList(list, "Id", "Name");
  246:  
  247:             maintenanceEventViewModel.ButtonEnabled = true; // (Ia.Ftn.Cl.Model.Business.Authority.StaffCanExecuteTasks(staff)) ? true : false;
  248:         }
  249:  
  250:         ////////////////////////////////////////////////////////////////////////////
  251:  
  252:         /// <summary>
  253:         ///
  254:         /// </summary>
  255:         protected void ServiceEffectList(ref Ia.Ftn.Wa.Models.Maintenance.MaintenanceEventViewModel maintenanceEventViewModel)
  256:         {
  257:             var list = Ia.Ftn.Cl.Models.Data.Event.ServiceEffectList;
  258:             list.Insert(0, new Ia.Ftn.Cl.Models.Data.Event.ServiceEffect("All", "All"));
  259:  
  260:             maintenanceEventViewModel.ServiceEffectSelectList = new SelectList(list, "Id", "Name");
  261:  
  262:             maintenanceEventViewModel.ButtonEnabled = true; // (Ia.Ftn.Cl.Model.Business.Authority.StaffCanExecuteTasks(staff)) ? true : false;
  263:         }
  264:  
  265:         ////////////////////////////////////////////////////////////////////////////
  266:  
  267:         /// <summary>
  268:         ///
  269:         /// </summary>
  270:         protected void CauseList(ref Ia.Ftn.Wa.Models.Maintenance.MaintenanceEventViewModel maintenanceEventViewModel)
  271:         {
  272:             var list = Ia.Ftn.Cl.Models.Data.Event.CauseList;
  273:             list.Insert(0, "All");
  274:  
  275:             maintenanceEventViewModel.CauseSelectList = new SelectList(list);
  276:  
  277:             maintenanceEventViewModel.ButtonEnabled = true; // (Ia.Ftn.Cl.Model.Business.Authority.StaffCanExecuteTasks(staff)) ? true : false;
  278:         }
  279:  
  280:         ////////////////////////////////////////////////////////////////////////////
  281:         ////////////////////////////////////////////////////////////////////////////
  282:  
  283:         /// <summary>
  284:         ///
  285:         /// </summary>
  286:         [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
  287:         public IActionResult Error()
  288:         {
  289:             return View(new Ia.Ftn.Wa.Models.ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
  290:         }
  291:  
  292:         ////////////////////////////////////////////////////////////////////////////
  293:         ////////////////////////////////////////////////////////////////////////////
  294:     }
  295:  
  296:     ////////////////////////////////////////////////////////////////////////////
  297:     ////////////////////////////////////////////////////////////////////////////
  298: }