public async Task <IActionResult> OnGetAsync(string indexForm) { WebAppUser user = await _userHandler.GetUserAsync(HttpContext.User); bool isViewer = await _userHandler.IsViewer(user, indexForm); bool OwnerRight = await _userHandler.IsRightAsync(user, RightsType.ViewOwn, indexForm); bool GroupRight = await _userHandler.IsRightAsync(user, RightsType.ViewGroup, indexForm); if (!isViewer & !OwnerRight & !GroupRight) { return(Forbid()); } MtdForm = await _context.MtdForm.FindAsync(indexForm); if (MtdForm == null) { return(NotFound()); } ViewData["IdForm"] = indexForm; return(Page()); }
public async Task <IActionResult> OnPostDeleteAsync() { string formId = Request.Form["IdForm"]; if (formId == null) { return(NotFound()); } IList <MtdFormPartField> fields = await _context.MtdFormList .Include(x => x.IdNavigation) .Where(x => x.MtdForm == formId) .Select(x => x.IdNavigation).ToListAsync(); MtdForm mtdForm = new MtdForm { Id = formId }; _context.MtdForm.Remove(mtdForm); if (fields != null) { _context.MtdFormPartField.RemoveRange(fields); } await _context.SaveChangesAsync(); return(Ok()); }
public async Task <IActionResult> OnGetAsync(string id) { MtdFormPartField = await _context.MtdFormPartField.Include(x => x.MtdFormList).FirstOrDefaultAsync(x => x.Id == id); if (MtdFormPartField == null) { return(NotFound()); } MtdFormPart selfPart = await _context.MtdFormPart.FindAsync(MtdFormPartField.MtdFormPart); MtdForm = await _context.MtdForm.Include(m => m.MtdFormHeader).FirstOrDefaultAsync(x => x.Id == selfPart.MtdForm); IList <MtdFormPart> parts = await _context.MtdFormPart.Where(x => x.MtdForm == MtdForm.Id).OrderBy(x => x.Sequence).ToListAsync(); FieldTypeName = await _context.MtdSysType.Where(x => x.Id == MtdFormPartField.MtdSysType).Select(x => x.Name).FirstOrDefaultAsync(); if (MtdFormPartField.MtdSysType == 11) { string formId = MtdFormPartField.MtdFormList.MtdForm; MtdForm selfForm = await _context.MtdForm.FindAsync(formId); NameFormSelector = selfForm.Name; } ViewData["Parts"] = new SelectList(parts, "Id", "Name", selfPart.Id); return(Page()); }
public async Task <IActionResult> OnGet(string idForm, string idStoreParent) { if (idForm == null) { return(NotFound()); } var user = await _userHandler.GetUserAsync(HttpContext.User); bool isCreator = await _userHandler.IsCreator(user, idForm); if (!isCreator) { return(Forbid()); } MtdForm = await _context.MtdForm.FindAsync(idForm); MtdStore mtdStoreParent = await _context.MtdStore.FirstOrDefaultAsync(x => x.Id == idStoreParent); MtdStore = new MtdStore { MtdForm = MtdForm.Id, MtdFormNavigation = MtdForm, Parent = idStoreParent, ParentNavigation = mtdStoreParent }; return(Page()); }
private async Task <bool> SendEmailApprove(ApprovalHandler approvalHandler) { string ownerId = await approvalHandler.GetOwnerID(); WebAppUser userCurrent = await _userHandler.GetUserAsync(HttpContext.User); WebAppUser userOwner = _userHandler.Users.Where(x => x.Id == ownerId).FirstOrDefault(); string storeId = await approvalHandler.GetStoreID(); MtdForm mtdForm = await approvalHandler.GetFormAsync(); MtdApprovalStage stageNext = await approvalHandler.GetNextStageAsync(); if (stageNext != null) { WebAppUser userNext = _userHandler.Users.Where(x => x.Id == stageNext.UserId).FirstOrDefault(); BlankEmail blankEmail = new BlankEmail { Subject = _localizer["Approval event"], Email = userNext.Email, Header = _localizer["Approval required"], Content = new List <string> { $"<strong>{_localizer["Document"]} - {mtdForm.Name}</strong>", $"{_localizer["User"]} {userCurrent.Title} {_localizer["approved the document at"]} {DateTime.Now}", $"{_localizer["Click on the link to view the document that required to approve."]}", $"<a href='http://{HttpContext.Request.Host}/workplace/store/details?id={storeId}'>{_localizer["Document link"]}</a>" } }; await _emailSender.SendEmailBlankAsync(blankEmail); } bool IsFirstStage = await approvalHandler.IsFirstStageAsync(); if (!IsFirstStage) { BlankEmail blankEmail = new BlankEmail { Subject = _localizer["Approval event"], Email = userOwner.Email, Header = _localizer["Approval process event"], Content = new List <string> { $"<strong>{_localizer["Document"]} - {mtdForm.Name}</strong>", $"{_localizer["User"]} {userCurrent.Title} {_localizer["approved the document at"]} {DateTime.Now}", $"{_localizer["Click on the link to view the document."]}", $"<a href='http://{HttpContext.Request.Host}/workplace/store/details?id={storeId}'>{_localizer["Document link"]}</a>" } }; await _emailSender.SendEmailBlankAsync(blankEmail); } return(true); }
public async Task <IActionResult> OnGetAsync() { MtdForm = new MtdForm { Id = Guid.NewGuid().ToString(), }; MtdForms = await _context.MtdForm.ToListAsync(); ViewData["Forms"] = new SelectList(MtdForms.OrderBy(x => x.Sequence), "Id", "Name"); return(Page()); }
public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } MtdForm oldForm = await _context.MtdForm.AsNoTracking().Include(x => x.ParentNavigation).FirstOrDefaultAsync(x => x.Id == MtdForm.Id); if (oldForm == null) { return(NotFound()); } MtdForm.Parent = oldForm.Parent; _context.Attach(MtdForm).State = EntityState.Modified; MtdForm.VisibleNumber = VisibleNumber ? (sbyte)1 : (sbyte)0; MtdForm.VisibleDate = VisibleDate ? (sbyte)1 : (sbyte)0; string idCheckBox = "header-delete"; if (Request.Form[idCheckBox].FirstOrDefault() == null || Request.Form[idCheckBox].FirstOrDefault() == "false") { string idInput = "header-file-upload-input"; IFormFile file = Request.Form.Files.FirstOrDefault(x => x.Name == idInput); if (file != null) { byte[] streamArray = new byte[file.Length]; await file.OpenReadStream().ReadAsync(streamArray, 0, streamArray.Length); MtdFormHeader header = new MtdFormHeader() { Id = MtdForm.Id, Image = streamArray, ImageSize = streamArray.Length, ImageType = file.ContentType }; bool exists = await _context.MtdFormHeader.Where(x => x.Id == MtdForm.Id).AnyAsync(); if (exists) { _context.Attach(header).State = EntityState.Modified; } else { _context.Attach(header).State = EntityState.Added; } } } else { MtdFormHeader header = new MtdFormHeader() { Id = MtdForm.Id }; _context.Attach(header).State = EntityState.Deleted; } string idCheckDeskBox = "desk-delete"; if (Request.Form[idCheckDeskBox].FirstOrDefault() == null || Request.Form[idCheckDeskBox].FirstOrDefault() == "false") { string idInput = "desk-file-upload-input"; IFormFile file = Request.Form.Files.FirstOrDefault(x => x.Name == idInput); if (file != null) { byte[] streamArray = new byte[file.Length]; await file.OpenReadStream().ReadAsync(streamArray, 0, streamArray.Length); MtdFormDesk desk = new MtdFormDesk() { Id = MtdForm.Id, Image = streamArray, ImageSize = streamArray.Length, ImageType = file.ContentType, ColorBack = "gray", ColorFont = "black" }; bool exists = await _context.MtdFormDesk.Where(x => x.Id == MtdForm.Id).AnyAsync(); if (exists) { _context.Attach(desk).State = EntityState.Modified; } else { _context.Attach(desk).State = EntityState.Added; } } } else { MtdFormDesk desk = new MtdFormDesk() { Id = MtdForm.Id }; _context.Attach(desk).State = EntityState.Deleted; } try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!MtdFormExists(MtdForm.Id)) { return(NotFound()); } else { throw; } } return(RedirectToPage("./Index")); }