using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkTenantVMs; using System.Linq; namespace WalkingTec.Mvvm.Mvc.Admin.Controllers { [Area("_Admin")] [ActionDescription("MenuKey.FrameworkTenant")] [FixConnection(CsName = "default")] public partial class FrameworkTenantController : BaseController { #region Search [ActionDescription("Sys.Search")] public ActionResult Index() { if(CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } var vm = Wtm.CreateVM(); return PartialView(vm); } [ActionDescription("Sys.Search")] [HttpPost] public IActionResult Search(FrameworkTenantSearcher searcher) { if (CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } var vm = Wtm.CreateVM(passInit: true); if (ModelState.IsValid) { vm.Searcher = searcher; return Content(vm.GetJson(false)); } else { return Content(vm.GetError()); } } #endregion #region Create [ActionDescription("Sys.Create")] public ActionResult Create() { if (CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } var vm = Wtm.CreateVM(); return PartialView(vm); } [HttpPost] [ActionDescription("Sys.Create")] public ActionResult Create(FrameworkTenantVM vm) { if (CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } if (!ModelState.IsValid) { return PartialView(vm); } else { vm.DoAdd(); if (!ModelState.IsValid) { vm.DoReInit(); return PartialView(vm); } else { return FFResult().CloseDialog().RefreshGrid(); } } } #endregion #region Edit [ActionDescription("Sys.Edit")] public ActionResult Edit(string id) { if (CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } var vm = Wtm.CreateVM(id); return PartialView(vm); } [ActionDescription("Sys.Edit")] [HttpPost] [ValidateFormItemOnly] public ActionResult Edit(FrameworkTenantVM vm) { if (CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } if (!ModelState.IsValid) { return PartialView(vm); } else { vm.DoEdit(); if (!ModelState.IsValid) { vm.DoReInit(); return PartialView(vm); } else { return FFResult().CloseDialog().RefreshGridRow(vm.Entity.ID); } } } #endregion #region Delete [ActionDescription("Sys.Delete")] public ActionResult Delete(string id) { if (CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } var vm = Wtm.CreateVM(id); return PartialView(vm); } [ActionDescription("Sys.Delete")] [HttpPost] public ActionResult Delete(string id, IFormCollection nouse) { if (CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } var vm = Wtm.CreateVM(id); vm.DoDelete(); if (!ModelState.IsValid) { return PartialView(vm); } else { return FFResult().CloseDialog().RefreshGrid(); } } #endregion #region Details [ActionDescription("Sys.Details")] public ActionResult Details(string id) { if (CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } var vm = Wtm.CreateVM(id); return PartialView(vm); } #endregion #region BatchEdit [HttpPost] [ActionDescription("Sys.BatchEdit")] public ActionResult BatchEdit(string[] IDs) { if (CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); } [HttpPost] [ActionDescription("Sys.BatchEdit")] public ActionResult DoBatchEdit(FrameworkTenantBatchVM vm, IFormCollection nouse) { if (CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } if (!ModelState.IsValid || !vm.DoBatchEdit()) { return PartialView("BatchEdit",vm); } else { return FFResult().CloseDialog().RefreshGrid().Alert(Localizer["Sys.BatchEditSuccess", vm.Ids.Length]); } } #endregion #region BatchDelete [HttpPost] [ActionDescription("Sys.BatchDelete")] public ActionResult BatchDelete(string[] IDs) { if (CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } var vm = Wtm.CreateVM(Ids: IDs); return PartialView(vm); } [HttpPost] [ActionDescription("Sys.BatchDelete")] public ActionResult DoBatchDelete(FrameworkTenantBatchVM vm, IFormCollection nouse) { if (CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } if (!ModelState.IsValid || !vm.DoBatchDelete()) { return PartialView("BatchDelete",vm); } else { Cache.Delete(nameof(GlobalData.AllTenant)); return FFResult().CloseDialog().RefreshGrid().Alert(Localizer["Sys.BatchDeleteSuccess", vm.Ids.Length]); } } #endregion #region Import [ActionDescription("Sys.Import")] public ActionResult Import() { if (CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } var vm = Wtm.CreateVM(); return PartialView(vm); } [HttpPost] [ActionDescription("Sys.Import")] public ActionResult Import(FrameworkTenantImportVM vm, IFormCollection nouse) { if (CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) { return PartialView(vm); } else { return FFResult().CloseDialog().RefreshGrid().Alert(Localizer["Sys.ImportSuccess", vm.EntityList.Count.ToString()]); } } #endregion [ActionDescription("Sys.Export")] [HttpPost] public IActionResult ExportExcel(FrameworkTenantListVM vm) { if (CanUseTenant() == false) { return Content(Localizer["_Admin.TenantNotAllowed"]); } return vm.GetExportData(); } private bool CanUseTenant() { if(Wtm.LoginUserInfo != null && (Wtm.LoginUserInfo.CurrentTenant == null || Wtm.GlobaInfo.AllTenant.Any(x=>x.TCode == Wtm.LoginUserInfo.CurrentTenant && x.Enabled==true && x.EnableSub == true))) { return true; } return false; } } }