)>}]
شركة التطبيقات المتكاملة لتصميم وبرمجة البرمجيات الخاصة ش.ش.و.
Integrated Applications Programming Company
Home » Code Library » ApplicationController (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: using System.Net;
    6:  
    7: namespace Ia.Ftn.Wa.Controllers
    8: {
    9:     ////////////////////////////////////////////////////////////////////////////
   10:  
   11:     /// <summary publish="true">
   12:     ///
   13:     /// </summary>
   14:     /// 
   15:     /// <remarks> 
   16:     /// Copyright � 2006-2025 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
   17:     /// </remarks> 
   18:     [Authorize]
   19:     public class ApplicationController : Controller
   20:     {
   21:         private readonly UserManager<Ia.Ftn.Cl.Models.StaffIdentityUser> userManager;
   22:         private readonly RoleManager<IdentityRole> roleManager;
   23:  
   24:         private static Ia.Ftn.Wa.Models.Application.IdentityViewModel currentIdentityViewModel = new Ia.Ftn.Wa.Models.Application.IdentityViewModel();
   25:  
   26:         /////////////////////////////////////////////////////////////////////////////////
   27:  
   28:         /// <summary>
   29:         ///
   30:         /// </summary>
   31:         public ApplicationController(UserManager<Ia.Ftn.Cl.Models.StaffIdentityUser> _userManager, RoleManager<IdentityRole> _roleManager)
   32:         {
   33:             userManager = _userManager;
   34:             roleManager = _roleManager;
   35:         }
   36:  
   37:         /////////////////////////////////////////////////////////////////////////////////
   38:  
   39:         /// <summary>
   40:         ///
   41:         /// </summary>
   42:         [HttpGet]
   43:         public IActionResult Index()
   44:         {
   45:             return View();
   46:         }
   47:  
   48:         /////////////////////////////////////////////////////////////////////////////////
   49:  
   50:         /// <summary>
   51:         ///
   52:         /// </summary>
   53:         [HttpGet]
   54:         public IActionResult Configuration()
   55:         {
   56:             var applicationViewModel = new Ia.Ftn.Wa.Models.Application.ApplicationViewModel();
   57:  
   58:             Ia.Ftn.Wa.Models.Application.Index.Configuration(roleManager, ref applicationViewModel);
   59:  
   60:             return View(applicationViewModel);
   61:         }
   62:  
   63:         /////////////////////////////////////////////////////////////////////////////////
   64:         /////////////////////////////////////////////////////////////////////////////////
   65:  
   66:         /// <summary>
   67:         ///
   68:         /// </summary>
   69:         [HttpGet]
   70:         public IActionResult Setting()
   71:         {
   72:             var applicationViewModel = new Ia.Ftn.Wa.Models.Application.ApplicationViewModel();
   73:  
   74:             Ia.Ftn.Wa.Models.Application.Index.SettingViewModel(userManager, ref applicationViewModel);
   75:  
   76:             return View(applicationViewModel);
   77:         }
   78:  
   79:         /////////////////////////////////////////////////////////////////////////////////
   80:  
   81:         /// <summary>
   82:         ///
   83:         /// </summary>
   84:         [HttpPost]
   85:         public IActionResult Setting(Ia.Ftn.Wa.Models.Application.ApplicationViewModel applicationViewModel, string commandName)
   86:         {
   87:             Ia.Ftn.Wa.Models.Application.Index.SettingPost(userManager, roleManager, ref applicationViewModel, commandName);
   88:  
   89:             Ia.Ftn.Wa.Models.Application.Index.SettingViewModel(userManager, ref applicationViewModel);
   90:  
   91:             return View(applicationViewModel);
   92:         }
   93:  
   94:         /////////////////////////////////////////////////////////////////////////////////
   95:  
   96:         /// <summary>
   97:         ///
   98:         /// </summary>
   99:         [HttpGet]
  100:         public IActionResult Contact()
  101:         {
  102:             return View();
  103:         }
  104:  
  105:         /////////////////////////////////////////////////////////////////////////////////
  106:         /////////////////////////////////////////////////////////////////////////////////
  107:  
  108:         /// <summary>
  109:         ///
  110:         /// </summary>
  111:         [HttpGet]
  112:         public IActionResult Mail()
  113:         {
  114:             var applicationViewModel = new Ia.Ftn.Wa.Models.Application.ApplicationViewModel();
  115:  
  116:             Ia.Ftn.Wa.Models.Application.Index.SettingViewModel(userManager, ref applicationViewModel);
  117:  
  118:             return View(applicationViewModel);
  119:         }
  120:  
  121:         /////////////////////////////////////////////////////////////////////////////////
  122:  
  123:         /// <summary>
  124:         ///
  125:         /// </summary>
  126:         [HttpPost]
  127:         public IActionResult Mail(Ia.Ftn.Wa.Models.Application.ApplicationViewModel applicationViewModel)
  128:         {
  129:             Ia.Ftn.Wa.Models.Application.Index.MailPost(userManager, roleManager, ref applicationViewModel, applicationViewModel.MailSelectedValue);
  130:  
  131:             Ia.Ftn.Wa.Models.Application.Index.SettingViewModel(userManager, ref applicationViewModel);
  132:  
  133:             return View(applicationViewModel);
  134:         }
  135:  
  136:         /////////////////////////////////////////////////////////////////////////////////
  137:         /////////////////////////////////////////////////////////////////////////////////
  138:  
  139:         /// <summary>
  140:         ///
  141:         /// </summary>
  142:         [HttpGet]
  143:         public IActionResult Telegram()
  144:         {
  145:             return View();
  146:         }
  147:  
  148:         /////////////////////////////////////////////////////////////////////////////////
  149:         /////////////////////////////////////////////////////////////////////////////////
  150:  
  151:         /*
  152: 
  153:         /////////////////////////////////////////////////////////////////////////////////
  154: 
  155:         /// <summary>
  156:         ///
  157:         /// </summary>
  158:         [HttpPost]
  159:         [ValidateAntiForgeryToken]
  160:         [Route("application/register")]
  161:         public async Task<IActionResult> Register(Ia.Ftn.Wa.Models.AccountViewModels.RegisterViewModel model, string returnUrl = null)
  162:         {
  163:             ViewData["ReturnUrl"] = returnUrl;
  164:             if (ModelState.IsValid)
  165:             {
  166:                 var user = new Ia.Ftn.Cl.Models.StaffIdentityUser { UserName = model.Email, Email = model.Email };
  167:                 var result = await userManager.CreateAsync(user, model.Password);
  168:                 if (result.Succeeded)
  169:                 {
  170:                     // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=532713
  171:                     // Send an email with this link
  172:                     //var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
  173:                     //var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: HttpContext.Request.Scheme);
  174:                     //await _emailSender.SendEmailAsync(model.Email, "Confirm your account",
  175:                     //    "Please confirm your account by clicking this link: <a href=\"" + callbackUrl + "\">link</a>");
  176:                     await signInManager.SignInAsync(user, isPersistent: false);
  177:                     _logger.LogInformation(3, "User created a new account with password.");
  178:                     return RedirectToLocal(returnUrl);
  179:                 }
  180:                 AddErrors(result);
  181:             }
  182: 
  183:             // If we got this far, something failed, redisplay form
  184:             return View(model);
  185:         }
  186:         */
  187:  
  188:         /////////////////////////////////////////////////////////////////////////////////
  189:         /////////////////////////////////////////////////////////////////////////////////
  190:  
  191:         /// <summary>
  192:         ///
  193:         /// </summary>
  194:         [HttpGet]
  195:         [Route("application/register")]
  196:         public IActionResult Register()
  197:         {
  198:             var identityViewModel = new Ia.Ftn.Wa.Models.Application.IdentityViewModel();
  199:  
  200:             identityViewModel.CurrentStaffIdentityUser = userManager.GetUserAsync(this.User).Result;
  201:  
  202:             Ia.Ftn.Wa.Models.Application.Index2.RegisterViewModel(ref currentIdentityViewModel, ref identityViewModel);
  203:  
  204:             return View("Register", identityViewModel);
  205:         }
  206:  
  207:         /////////////////////////////////////////////////////////////////////////////////
  208:  
  209:         /// <summary>
  210:         ///
  211:         /// </summary>
  212:         [HttpPost]
  213:         [Route("application/register")]
  214:         public IActionResult Register(Ia.Ftn.Wa.Models.Application.IdentityViewModel identityViewModel, string commandName)
  215:         {
  216:             identityViewModel.CurrentStaffIdentityUser = userManager.GetUserAsync(this.User).Result;
  217:  
  218:             if (commandName == "insert")
  219:             {
  220:                 Ia.Ftn.Wa.Models.Application.Index2.CreateUser(userManager, roleManager, ref identityViewModel);
  221:             }
  222:             else if (commandName == "delete")
  223:             {
  224:                 var userName = WebUtility.HtmlDecode(identityViewModel.UserSelectedValue);
  225:  
  226:                 Ia.Ftn.Wa.Models.Application.Index2.DeleteUser(userManager, ref identityViewModel, userName);
  227:             }
  228:             else
  229:             {
  230:             }
  231:  
  232:             Ia.Ftn.Wa.Models.Application.Index2.RegisterViewModel(ref currentIdentityViewModel, ref identityViewModel);
  233:  
  234:             return View("Register", identityViewModel);
  235:         }
  236:  
  237:         /////////////////////////////////////////////////////////////////////////////////
  238:         /////////////////////////////////////////////////////////////////////////////////
  239:  
  240:         /// <summary>
  241:         ///
  242:         /// </summary>
  243:         [HttpGet]
  244:         [Route("application/role")]
  245:         public IActionResult Role()
  246:         {
  247:             var identityViewModel = new Ia.Ftn.Wa.Models.Application.IdentityViewModel();
  248:  
  249:             Ia.Ftn.Wa.Models.Application.Index2.RoleViewModel(roleManager, ref identityViewModel);
  250:  
  251:             return View(identityViewModel);
  252:         }
  253:  
  254:         /////////////////////////////////////////////////////////////////////////////////
  255:  
  256:         /// <summary>
  257:         ///
  258:         /// </summary>
  259:         [HttpPost]
  260:         [Route("application/role")]
  261:         public IActionResult ManageRole(Ia.Ftn.Wa.Models.Application.IdentityViewModel identityViewModel, string commandName)
  262:         {
  263:             string roleName;
  264:  
  265:             if (commandName == "createRole")
  266:             {
  267:                 roleName = WebUtility.HtmlDecode(identityViewModel.CreateRoleNameText);
  268:  
  269:                 Ia.Ftn.Wa.Models.Application.Index2.CreateRole(roleManager, ref identityViewModel, roleName);
  270:             }
  271:             else if (commandName == "deleteRole")
  272:             {
  273:                 roleName = WebUtility.HtmlDecode(identityViewModel.RoleSelectedValue);
  274:  
  275:                 Ia.Ftn.Wa.Models.Application.Index2.DeleteRole(roleManager, ref identityViewModel, roleName);
  276:             }
  277:             else
  278:             {
  279:             }
  280:  
  281:             Ia.Ftn.Wa.Models.Application.Index2.RoleViewModel(roleManager, ref identityViewModel);
  282:  
  283:             return View("Role", identityViewModel);
  284:         }
  285:  
  286:         /////////////////////////////////////////////////////////////////////////////////
  287:         /////////////////////////////////////////////////////////////////////////////////
  288:  
  289:         /// <summary>
  290:         ///
  291:         /// </summary>
  292:         [HttpGet]
  293:         [Route("application/user")]
  294:         public new IActionResult User_()
  295:         {
  296:             var identityViewModel = new Ia.Ftn.Wa.Models.Application.IdentityViewModel();
  297:  
  298:             identityViewModel.CurrentStaffIdentityUser = userManager.GetUserAsync(this.User).Result;
  299:             identityViewModel.UserManager = userManager;
  300:             identityViewModel.RoleManager = roleManager;
  301:  
  302:             Ia.Ftn.Wa.Models.Application.Index2.RegisterViewModel(ref currentIdentityViewModel, ref identityViewModel);
  303:  
  304:             return View("User", identityViewModel);
  305:         }
  306:  
  307:         /////////////////////////////////////////////////////////////////////////////////
  308:  
  309:         /// <summary>
  310:         ///
  311:         /// </summary>
  312:         [HttpPost]
  313:         [Route("application/user")]
  314:         public IActionResult User_(Ia.Ftn.Wa.Models.Application.IdentityViewModel identityViewModel, string commandName, string userId)
  315:         {
  316:             identityViewModel.CurrentStaffIdentityUser = userManager.GetUserAsync(this.User).Result;
  317:             identityViewModel.UserManager = userManager;
  318:             identityViewModel.RoleManager = roleManager;
  319:  
  320:             Ia.Ftn.Wa.Models.Application.Index2.IdentityPost(ref identityViewModel, commandName, userId);
  321:  
  322:             Ia.Ftn.Wa.Models.Application.Index2.RegisterViewModel(ref currentIdentityViewModel, ref identityViewModel);
  323:  
  324:             return View("User", identityViewModel);
  325:         }
  326:  
  327:         /////////////////////////////////////////////////////////////////////////////////
  328:         /////////////////////////////////////////////////////////////////////////////////
  329:  
  330:         /// <summary>
  331:         ///
  332:         /// </summary>
  333:         [HttpGet]
  334:         [Route("application/user-role")]
  335:         public new IActionResult UserRole()
  336:         {
  337:             var identityViewModel = new Ia.Ftn.Wa.Models.Application.IdentityViewModel();
  338:  
  339:             identityViewModel.CurrentStaffIdentityUser = userManager.GetUserAsync(this.User).Result;
  340:  
  341:             Ia.Ftn.Wa.Models.Application.Index2.UserRoleViewModel(userManager, roleManager, ref currentIdentityViewModel, ref identityViewModel);
  342:  
  343:             return View("UserRole", identityViewModel);
  344:         }
  345:  
  346:         /////////////////////////////////////////////////////////////////////////////////
  347:  
  348:         /// <summary>
  349:         ///
  350:         /// </summary>
  351:         [HttpPost]
  352:         [Route("application/user-role")]
  353:         public IActionResult UserRole(Ia.Ftn.Wa.Models.Application.IdentityViewModel identityViewModel, string commandName)
  354:         {
  355:             identityViewModel.CurrentStaffIdentityUser = userManager.GetUserAsync(this.User).Result;
  356:  
  357:             if (commandName == "addUserToRole")
  358:             {
  359:                 Ia.Ftn.Wa.Models.Application.Index2.AddUserToRole(userManager, roleManager, ref identityViewModel);
  360:             }
  361:             else if (commandName == "deleteUserFromRole")
  362:             {
  363:                 var userName = WebUtility.HtmlDecode(identityViewModel.UserSelectedValue);
  364:  
  365:                 Ia.Ftn.Wa.Models.Application.Index2.DeleteUserFromRole(userManager, roleManager, ref identityViewModel);
  366:             }
  367:             else
  368:             {
  369:             }
  370:  
  371:             Ia.Ftn.Wa.Models.Application.Index2.UserRoleViewModel(userManager, roleManager, ref currentIdentityViewModel, ref identityViewModel);
  372:  
  373:             return View("UserRole", identityViewModel);
  374:         }
  375:  
  376:         /////////////////////////////////////////////////////////////////////////////////
  377:  
  378:         /// <summary>
  379:         ///
  380:         /// </summary>
  381:         [HttpGet]
  382:         [Route("/application/user-guide")]
  383:         public IActionResult UserGuide()
  384:         {
  385:             return View();
  386:         }
  387:  
  388:         /////////////////////////////////////////////////////////////////////////////////
  389:  
  390:         /// <summary>
  391:         ///
  392:         /// </summary>
  393:         [HttpGet]
  394:         [Route("/application/maintenance-guide")]
  395:         public IActionResult MaintenanceGuide()
  396:         {
  397:             return View();
  398:         }
  399:  
  400:         /////////////////////////////////////////////////////////////////////////////////
  401:  
  402:         /// <summary>
  403:         ///
  404:         /// </summary>
  405:         [HttpGet]
  406:         public IActionResult Glossary()
  407:         {
  408:             return View();
  409:         }
  410:  
  411:         /////////////////////////////////////////////////////////////////////////////////
  412:  
  413:         /// <summary>
  414:         ///
  415:         /// </summary>
  416:         [HttpGet]
  417:         public IActionResult Api()
  418:         {
  419:             return View();
  420:         }
  421:  
  422:         /////////////////////////////////////////////////////////////////////////////////
  423:         /////////////////////////////////////////////////////////////////////////////////
  424:  
  425:         /// <summary>
  426:         ///
  427:         /// </summary>
  428:         [HttpGet]
  429:         public IActionResult Credential()
  430:         {
  431:             var parameterViewModel = new Ia.Ftn.Wa.Models.ParameterViewModel();
  432:  
  433:             ApiKeyList(ref parameterViewModel);
  434:  
  435:             return View("Credential", parameterViewModel);
  436:         }
  437:  
  438:         /////////////////////////////////////////////////////////////////////////////////
  439:  
  440:         /// <summary>
  441:         ///
  442:         /// </summary>
  443:         [HttpPost]
  444:         public IActionResult Credential(Ia.Ftn.Wa.Models.ParameterViewModel parameterViewModel)
  445:         {
  446:             parameterViewModel.String1 = Ia.Cl.Models.Cryptography.ApiKey.Generate();
  447:  
  448:             ApiKeyList(ref parameterViewModel);
  449:  
  450:             return View("Credential", parameterViewModel);
  451:         }
  452:  
  453:         ////////////////////////////////////////////////////////////////////////////
  454:  
  455:         /// <summary>
  456:         ///
  457:         /// </summary>
  458:         private void ApiKeyList(ref Ia.Ftn.Wa.Models.ParameterViewModel parameterViewModel)
  459:         {
  460:             var list = Ia.Ftn.Cl.Models.Business.Application.Default.ApiKeyList;
  461:  
  462:             var s = string.Empty;
  463:  
  464:             s += "Name&nbsp;|&nbsp;" + "Created&nbsp;|&nbsp;" + "Key<br/>\r\n";
  465:  
  466:             foreach (var l in list)
  467:             {
  468:                 s += l.Name + "&nbsp;|&nbsp;" + l.Created + "&nbsp;|&nbsp;" + l.Key + "<br/>\r\n";
  469:             }
  470:  
  471:             parameterViewModel.String2 = s;
  472:         }
  473:  
  474:         /////////////////////////////////////////////////////////////////////////////////
  475:         /////////////////////////////////////////////////////////////////////////////////
  476:  
  477:         /// <summary>
  478:         ///
  479:         /// </summary>
  480:         [HttpGet]
  481:         public IActionResult Ont()
  482:         {
  483:             var applicationViewModel = new Ia.Ftn.Wa.Models.Application.ApplicationViewModel();
  484:  
  485:             applicationViewModel.NokiaEquipmentTypeList = Ia.Ftn.Cl.Models.Business.Nokia.Ont.EquipmentTypeList.ToList();
  486:  
  487:             applicationViewModel.HuaweiEquipmentTypeList = Ia.Ftn.Cl.Models.Business.Huawei.Ont.EquipmentTypeList.ToList();
  488:  
  489:             return View("Ont", applicationViewModel);
  490:         }
  491:  
  492:         /////////////////////////////////////////////////////////////////////////////////
  493:         /////////////////////////////////////////////////////////////////////////////////
  494:  
  495:         /// <summary>
  496:         ///
  497:         /// </summary>
  498:         [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
  499:         public IActionResult Error()
  500:         {
  501:             return View(new Ia.Ftn.Wa.Models.ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
  502:         }
  503:  
  504:         /////////////////////////////////////////////////////////////////////////////////
  505:         /////////////////////////////////////////////////////////////////////////////////
  506:     }
  507:  
  508:     /////////////////////////////////////////////////////////////////////////////////
  509:     /////////////////////////////////////////////////////////////////////////////////
  510: }