Skip to content

Parte 18

WILSON DE OLIVEIRA JUNIOR edited this page Mar 9, 2020 · 1 revision

Modelo final da Item de categoria

  1. Altere o arquivo Item.cshtml para que fique da seguinte forma:
@page
@model Taste.Web.Pages.Settings.Category.ItemModel

<form method="post" asp-action="Item">
    <div class="container">
        <div class="row px-2 mx-2 backgroundWhite border">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <input type="hidden" asp-for="CategoryObj.Id" />
            <div class="col-12 px-3" style="border-bottom: 1px solid #325d88">
                <h2 class="text-primary">Categoria</h2>
            </div>
            <div class="col-8 pt-3">
                <div class="form-group row">
                    <div class="col-3">
                        <label asp-for="CategoryObj.Name"></label>
                    </div>
                    <div class="col-9">
                        <input class="form-control" asp-for="CategoryObj.Name" />
                        <span class="text-danger" asp-validation-for="CategoryObj.Name"></span>
                    </div>
                </div>
                <div class="form-group row">
                    <div class="col-3">
                        <label asp-for="CategoryObj.Order"></label>
                    </div>
                    <div class="col-9">
                        <input class="form-control" asp-for="CategoryObj.Order" />
                        <span class="text-danger" asp-validation-for="CategoryObj.Order"></span>
                    </div>
                </div>
                <div class="form-group row">
                    <div class="col-9 offset-3">
                        <div class="row">
                            <div class="col-6">
                                <button type="submit" class="btn btn-primary">
                                    <i class="fas fa-save"></i>
                                    Salvar
                                </button>
                            </div>
                            <div class="col-6">
                                <a asp-page="./Index" class="btn btn-danger">
                                    <i class="fas fa-undo"></i>
                                    Cancelar
                                </a>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</form>
  1. Altere o CODE-BEHIND Item.cshtml.cs do arquivo para que fique da seguinte forma:
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using System.Threading.Tasks;
using Taste.Domain.Interfaces;

namespace Taste.Web.Pages.Settings.Category
{
    public class ItemModel : PageModel
    {
        private readonly IUnitOfWork unitOfWork;

        public ItemModel(IUnitOfWork _unitOfWork)
        {
            this.unitOfWork = _unitOfWork;
        }

        [BindProperty]
        public Taste.Domain.Entities.Category CategoryObj { get; set; }

        public async Task<IActionResult> OnGet(int? id)
        {
            CategoryObj = new Domain.Entities.Category();

            if (id != null && id != 0)
            {
                this.CategoryObj = await this.unitOfWork.Category.GetFirstOrDefault(i => i.Id == id);
                if (this.CategoryObj == null)
                {
                    return NotFound();
                }
            }

            return Page();
        }

        public async Task<IActionResult> OnPost()
        {
            if (!ModelState.IsValid) return Page();

            if (CategoryObj.Id == 0)
                await unitOfWork.Category.Add(CategoryObj);
            else
                await unitOfWork.Category.Update(CategoryObj);

            await unitOfWork.Save();

            return RedirectToPage("./Index");
        }
    }
}

Clone this wiki locally