示例#1
0
        public override Task <IViewProviderResult> BuildEditAsync(LabelAdmin label, IViewProviderContext updater)
        {
            EditLabelViewModel editLabelViewModel = null;

            if (label.Id == 0)
            {
                editLabelViewModel = new EditLabelViewModel()
                {
                    IsNewLabel = true
                };
            }
            else
            {
                editLabelViewModel = new EditLabelViewModel()
                {
                    Id          = label.Id,
                    Name        = label.Name,
                    Description = label.Description,
                    ForeColor   = label.ForeColor,
                    BackColor   = label.BackColor
                };
            }

            return(Task.FromResult(Views(
                                       View <EditLabelViewModel>("Admin.Edit.Header", model => editLabelViewModel).Zone("header").Order(1),
                                       View <EditLabelViewModel>("Admin.Edit.Content", model => editLabelViewModel).Zone("content").Order(1),
                                       View <EditLabelViewModel>("Admin.Edit.Footer", model => editLabelViewModel).Zone("actions").Order(1),
                                       View <EditLabelViewModel>("Admin.Edit.Actions", model => editLabelViewModel).Zone("actions-right").Order(1)
                                       )));
        }
示例#2
0
        public async Task <IActionResult> Edit(Guid id)
        {
            var label = await _todoRepository.GetLabelAsync(id);

            var model = EditLabelViewModel.FromEntity(label);

            return(View(model));
        }
示例#3
0
        public async Task <IActionResult> CreatePost(EditLabelViewModel viewModel)
        {
            var user = await _contextFacade.GetAuthenticatedUserAsync();

            if (user == null)
            {
                return(Unauthorized());
            }

            if (!ModelState.IsValid)
            {
                return(View(viewModel));
            }

            // Create label
            var label = new Label()
            {
                FeatureId     = await GetFeatureIdAsync(),
                Name          = viewModel.Name,
                Description   = viewModel.Description,
                ForeColor     = viewModel.ForeColor,
                BackColor     = viewModel.BackColor,
                CreatedUserId = user.Id,
                CreatedDate   = DateTimeOffset.UtcNow
            };

            // Persist label
            var result = await _labelManager.CreateAsync(label);

            if (result.Succeeded)
            {
                // Indicate new label
                result.Response.IsNewLabel = true;

                // Execute view providers
                await _viewProvider.ProvideUpdateAsync(result.Response, this);

                // Add confirmation
                _alerter.Success(T["Label Added Successfully!"]);

                // Return
                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            return(View(viewModel));
        }
示例#4
0
        public ViewResult Edit(Guid id)
        {
            var label = _databaseContext.Label
                        .FirstOrDefault(p => p.LabelID == id);

            ViewData["Success"] = TempData["Success"];

            var model = new EditLabelViewModel
            {
                Label = label
            };

            return(View(model));
        }
示例#5
0
        public IActionResult Update(Guid id, EditLabelViewModel model)
        {
            if (ModelState.IsValid)
            {
                var label = _databaseContext.Label

                            .FirstOrDefault(m => m.LabelID == id);

                label.LabelName = model.Label.LabelName;

                TempData["Success"] = true;


                _databaseContext.SaveChanges();
            }
            return(RedirectToAction(nameof(Index)));
        }
示例#6
0
        public async Task <IActionResult> Edit(EditLabelViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var label = await _todoRepository.GetLabelAsync(model.Id);

            label.Value = model.Value;
            if (!await _todoRepository.UpdateLabelAsync(label))
            {
                ModelState.AddModelError("Value", "Label is already added.");
                return(View(model));
            }

            return(RedirectToAction("Index"));
        }
示例#7
0
        public override async Task <IViewProviderResult> BuildUpdateAsync(LabelAdmin label, IViewProviderContext context)
        {
            if (label == null)
            {
                throw new ArgumentNullException(nameof(label));
            }

            if (label.IsNewLabel)
            {
                return(await BuildEditAsync(label, context));
            }

            var model = new EditLabelViewModel();

            if (!await context.Updater.TryUpdateModelAsync(model))
            {
                return(await BuildEditAsync(label, context));
            }

            model.Name        = model.Name?.Trim();
            model.Description = model.Description?.Trim();

            if (context.Updater.ModelState.IsValid)
            {
                label.Name        = model.Name;
                label.Description = model.Description;
                label.ForeColor   = model.ForeColor;
                label.BackColor   = model.BackColor;

                var result = await _labelManager.UpdateAsync((Label)label);

                foreach (var error in result.Errors)
                {
                    context.Updater.ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            return(await BuildEditAsync(label, context));
        }