コード例 #1
0
        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());
        }
コード例 #2
0
ファイル: DataController.cs プロジェクト: lulzzz/OrderMaker
        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());
        }
コード例 #3
0
        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());
        }
コード例 #4
0
        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());
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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());
        }
コード例 #7
0
        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"));
        }