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

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

    1: using Microsoft.AspNetCore.Authorization;
    2: using Microsoft.AspNetCore.Identity;
    3: using Microsoft.AspNetCore.Mvc;
    4: using System.Diagnostics;
    5:  
    6: namespace Ia.Ftn.Wa.Controllers
    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:     [Authorize]
   18:     public class AdministrationController : Controller
   19:     {
   20:         private static Ia.Ftn.Wa.Models.Administration.AccessNetworkViewModel currentAccessNetworkViewModel = new Ia.Ftn.Wa.Models.Administration.AccessNetworkViewModel();
   21:         private readonly UserManager<Ia.Ftn.Cl.Models.StaffIdentityUser> userManager;
   22:  
   23:         /////////////////////////////////////////////////////////////////////////////////
   24:  
   25:         /// <summary>
   26:         ///
   27:         /// </summary>
   28:         public AdministrationController(UserManager<Ia.Ftn.Cl.Models.StaffIdentityUser> _userManager)
   29:         {
   30:             userManager = _userManager;
   31:         }
   32:  
   33:         /////////////////////////////////////////////////////////////////////////////////
   34:  
   35:         /// <summary>
   36:         ///
   37:         /// </summary>
   38:         [HttpGet]
   39:         public IActionResult Index()
   40:         {
   41:             var administrationViewModel = new Ia.Ftn.Wa.Models.Administration.IndexViewModel();
   42:  
   43:             administrationViewModel.OfficialWorkingTimeText = Ia.Ftn.Cl.Models.Business.Administration.OfficialWorkingTimeString();
   44:  
   45:             administrationViewModel.NowIsOfficialWorkingTimeText = Ia.Cl.Models.Default.YesNo(Ia.Ftn.Cl.Models.Business.Administration.NowIsOfficialWorkingTime);
   46:  
   47:             administrationViewModel.ServiceSuspensionIsEnabledText = Ia.Cl.Models.Default.YesNo(Ia.Ftn.Cl.Models.Business.Administration.ServiceSuspensionIsEnabled);
   48:  
   49:             return View(administrationViewModel);
   50:         }
   51:  
   52:         /////////////////////////////////////////////////////////////////////////////////
   53:  
   54:         /// <summary>
   55:         ///
   56:         /// </summary>
   57:         [HttpGet]
   58:         [Route("/administration/access-network")]
   59:         public IActionResult AccessNetwork()
   60:         {
   61:             var accessNetworkViewModel = new Ia.Ftn.Wa.Models.Administration.AccessNetworkViewModel();
   62:  
   63:             Ia.Ftn.Wa.Models.Administration.AccessNetwork.ViewModel(ref currentAccessNetworkViewModel, ref accessNetworkViewModel);
   64:  
   65:             return View("AccessNetwork", accessNetworkViewModel);
   66:         }
   67:  
   68:         ////////////////////////////////////////////////////////////////////////////
   69:  
   70:         /// <summary>
   71:         ///
   72:         /// </summary>
   73:         [HttpPost]
   74:         [Route("/administration/access-network")]
   75:         public IActionResult ManageAccessNetwork(Ia.Ftn.Wa.Models.Administration.AccessNetworkViewModel accessNetworkViewModel)
   76:         {
   77:             Ia.Ftn.Wa.Models.Administration.AccessNetwork.ViewModel(ref currentAccessNetworkViewModel, ref accessNetworkViewModel);
   78:  
   79:             return View("AccessNetwork", accessNetworkViewModel);
   80:         }
   81:  
   82:         /////////////////////////////////////////////////////////////////////////////////
   83:  
   84:         /// <summary>
   85:         ///
   86:         /// </summary>
   87:         [HttpGet]
   88:         public IActionResult Framework()
   89:         {
   90:             string table = Ia.Ftn.Cl.Models.Ui.Administration.Framework.StructureDataTable();
   91:  
   92:             return View("Framework", table);
   93:         }
   94:  
   95:         /////////////////////////////////////////////////////////////////////////////////
   96:  
   97:         /// <summary>
   98:         ///
   99:         /// </summary>
  100:         [HttpGet]
  101:         public IActionResult Staff()
  102:         {
  103:             var staffViewModel = new Ia.Ftn.Wa.Models.Administration.StaffViewModel();
  104:  
  105:             var identityUsers = Ia.Ftn.Cl.Models.Identity.StaffIdentityUserList();
  106:  
  107:             staffViewModel.UserSelectList = identityUsers;
  108:  
  109:             return View("Staff", staffViewModel);
  110:         }
  111:  
  112:         /////////////////////////////////////////////////////////////////////////////////
  113:  
  114:         /// <summary>
  115:         ///
  116:         /// </summary>
  117:         [HttpGet]
  118:         [Route("/administration/network-design-document")]
  119:         public IActionResult NetworkDesignDocument()
  120:         {
  121:             string table = Ia.Ftn.Cl.Models.Ui.NetworkDesignDocument.StructureDataTable();
  122:  
  123:             return View("NetworkDesignDocument", table);
  124:         }
  125:  
  126:         /////////////////////////////////////////////////////////////////////////////////
  127:  
  128:         /// <summary>
  129:         ///
  130:         /// </summary>
  131:         [HttpGet]
  132:         public IActionResult Statistics()
  133:         {
  134:             var statisticsViewModel = new Ia.Ftn.Wa.Models.Administration.StatisticsViewModel();
  135:  
  136:             Ia.Ftn.Wa.Models.Administration.Statistics.SiteStatisticViewModel(ref statisticsViewModel);
  137:             Ia.Ftn.Wa.Models.Administration.Statistics.AreaStatisticViewModel(ref statisticsViewModel);
  138:  
  139:             return View("Statistics", statisticsViewModel);
  140:         }
  141:  
  142:         /////////////////////////////////////////////////////////////////////////////////
  143:  
  144:         /// <summary>
  145:         ///
  146:         /// </summary>
  147:         [HttpGet]
  148:         [Route("/administration/service-status")]
  149:         public IActionResult ServiceStatus()
  150:         {
  151:             var serviceStatusViewModel = new Ia.Ftn.Wa.Models.Administration.ServiceStatusViewModel();
  152:  
  153:             Ia.Ftn.Wa.Models.Administration.ServiceStatus.ViewModel(ref serviceStatusViewModel);
  154:  
  155:             return View("ServiceStatus", serviceStatusViewModel);
  156:         }
  157:  
  158:         /////////////////////////////////////////////////////////////////////////////////
  159:  
  160:         /// <summary>
  161:         ///
  162:         /// </summary>
  163:         [HttpPost]
  164:         [Route("/administration/service-status")]
  165:         public IActionResult ServiceStatusCategorize_Submit(Ia.Ftn.Wa.Models.Administration.ServiceStatusViewModel serviceStatusViewModel)
  166:         {
  167:             Ia.Ftn.Wa.Models.Administration.ServiceStatus.Categorize(ref serviceStatusViewModel);
  168:  
  169:             Ia.Ftn.Wa.Models.Administration.ServiceStatus.ViewModel(ref serviceStatusViewModel);
  170:  
  171:             return View("ServiceStatus", serviceStatusViewModel);
  172:         }
  173:  
  174:         /////////////////////////////////////////////////////////////////////////////////
  175:  
  176:         /// <summary>
  177:         ///
  178:         /// </summary>
  179:         [HttpGet]
  180:         [Route("administration/service-request-administrative-issue")]
  181:         public IActionResult ServiceRequestAdministrativeIssue()
  182:         {
  183:             var serviceRequestAdministrativeIssueViewModel = new Ia.Ftn.Wa.Models.Administration.ServiceRequestAdministrativeIssueViewModel();
  184:  
  185:             Ia.Ftn.Wa.Models.Administration.ServiceRequestAdministrativeIssue.ViewModel(ref serviceRequestAdministrativeIssueViewModel);
  186:  
  187:             return View("ServiceRequestAdministrativeIssue", serviceRequestAdministrativeIssueViewModel);
  188:         }
  189:  
  190:         /////////////////////////////////////////////////////////////////////////////////
  191:  
  192:         /// <summary>
  193:         ///
  194:         /// </summary>
  195:         [HttpGet]
  196:         public IActionResult Monitor()
  197:         {
  198:             string text;
  199:             int withinLastNMinutes = 20;
  200:  
  201:             var dictionary = Ia.Ftn.Wa.Models.Business.Default.HeartbeatAssemblyNameToCreatedDateTimeDictionary;
  202:  
  203:             if (dictionary.Count > 0)
  204:             {
  205:                 text = Ia.Ftn.Cl.Models.Business.Heartbeat.WithinLastNMinuteHtmlTable(dictionary, withinLastNMinutes);
  206:             }
  207:             else text = "No heartbeat data from secretary. Try to refresh within a few minutes.";
  208:  
  209:             return View("Monitor", text);
  210:         }
  211:  
  212:         /////////////////////////////////////////////////////////////////////////////////
  213:  
  214:         /// <summary>
  215:         ///
  216:         /// </summary>
  217:         [HttpGet]
  218:         [Route("/administration/area-readiness")]
  219:         public IActionResult AreaReadiness()
  220:         {
  221:             var areaReadinessListViewModel = Ia.Ftn.Wa.Models.Administration.AreaReadiness.AreaReadinessList();
  222:  
  223:             return View("AreaReadiness", areaReadinessListViewModel);
  224:         }
  225:  
  226:         /////////////////////////////////////////////////////////////////////////////////
  227:  
  228:         /// <summary>
  229:         ///
  230:         /// </summary>
  231:         [HttpGet]
  232:         public IActionResult Kpi()
  233:         {
  234:             var kpiViewModel = Ia.Ftn.Wa.Models.Administration.Kpi.ViewModel();
  235:  
  236:             return View("Kpi", kpiViewModel);
  237:         }
  238:  
  239:         /////////////////////////////////////////////////////////////////////////////////
  240:  
  241:         /// <summary>
  242:         ///
  243:         /// </summary>
  244:         [HttpGet]
  245:         [Route("/administration/sdc")]
  246:         public IActionResult Sdc()
  247:         {
  248:             var sdcViewModel = Ia.Ftn.Wa.Models.Administration.Sdc.ViewModel();
  249:  
  250:             return View("Sdc", sdcViewModel);
  251:         }
  252:  
  253:         /////////////////////////////////////////////////////////////////////////////////
  254:  
  255:         /// <summary>
  256:         ///
  257:         /// </summary>
  258:         [HttpPost]
  259:         [Route("/administration/sdc")]
  260:         public IActionResult Sdc(Ia.Ftn.Wa.Models.Administration.SdcViewModel sdcViewModel)
  261:         {
  262:             Ia.Ftn.Wa.Models.Administration.Sdc.ViewModel(ref sdcViewModel);
  263:  
  264:             return View("Sdc", sdcViewModel);
  265:         }
  266:  
  267:         /////////////////////////////////////////////////////////////////////////////////
  268:  
  269:         /// <summary>
  270:         ///
  271:         /// </summary>
  272:         [HttpGet]
  273:         [Route("/administration/sdc/pon-bandwidth-utilization")]
  274:         public IActionResult SdcPonBandwidthUtilization()
  275:         {
  276:             var sdcViewModel = Ia.Ftn.Wa.Models.Administration.Sdc.SdcPonBandwidthUtilizationViewModel();
  277:  
  278:             return View("SdcPonBandwidthUtilization", sdcViewModel);
  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: }