1 zrobic model i viewmodele (wszystkie moga byc takie same, kopia modelu) 2 db set public DbSet Students { get; set; } 3 kontroler public class ZwierzeController : BaseController { private readonly IZwierzeService _zwierzeService; public ZwierzeController(IZwierzeService zwierzeService, IMapper mapper) : base(mapper) { _zwierzeService = zwierzeService; } public IActionResult Index() { var zwierzeVms = _zwierzeService.GetZwierzeta(); return View(zwierzeVms); } [HttpGet] public IActionResult AddZwierze() { return View(); } [HttpPost] public IActionResult AddZwierze(AddZwierzeVm addZwierzeVm) { var zwierzeVm = _zwierzeService.AddZwierze(addZwierzeVm); return View("Details", zwierzeVm); } [HttpGet] public IActionResult Details() { return View(); } [HttpGet] public IActionResult DeleteZwierze(int id) { var zwierzeVm = _zwierzeService.GetZwierze(zwierze => zwierze.Id == id); return View(_mapper.Map(zwierzeVm)); } [HttpPost] public IActionResult DeleteZwierze(DeleteZwierzeVm deleteZwierzeVm) { var zwierzeVm = _zwierzeService.DeleteZwierze(deleteZwierzeVm); return RedirectToAction("Index"); } [HttpGet] public IActionResult EditZwierze(int id) { var zwierzeVm = _zwierzeService.GetZwierze(zwierze => zwierze.Id == id); return View(_mapper.Map(zwierzeVm)); } [HttpPost] public IActionResult EditZwierze(EditZwierzeVm editZwierzeVm) { var zwierzeVm = _zwierzeService.EditZwierze(editZwierzeVm); return RedirectToAction("Index"); } } 4 widok lista Index @model IEnumerable @foreach(var m in Model) 5 dodac w _Layout Dodaj Zwierze Zwierzeta 6 mapowanie CreateMap().ReverseMap(); CreateMap().ReverseMap(); 7 interfejs public ZwierzeVm GetZwierze(Expression> filterPredicate); public IEnumerable GetZwierzeta(Expression> filterPredicate = null); public ZwierzeVm AddZwierze(AddZwierzeVm addZwierzeVm); // delete edit tak samo 8 serwis public class ZwierzeService : BaseService, IZwierzeService { public ZwierzeService(MyDbContext dbContext, IMapper mapper) : base(dbContext, mapper) { } public ZwierzeVm AddZwierze(AddZwierzeVm addZwierzeVm) { var zwierzeEntity = _mapper.Map(addZwierzeVm); _dbContext.Zwierzeta.Add(zwierzeEntity); _dbContext.SaveChanges(); var zwierzeVm = _mapper.Map(zwierzeEntity); return zwierzeVm; } public DeleteZwierzeVm DeleteZwierze(DeleteZwierzeVm deleteZwierzeVm) { var zwierzeEntity = _mapper.Map(deleteZwierzeVm); _dbContext.Zwierzeta.Remove(zwierzeEntity); _dbContext.SaveChanges(); return deleteZwierzeVm; } public EditZwierzeVm EditZwierze(EditZwierzeVm editZwierzeVm) { var zwierzeEntity = _mapper.Map(editZwierzeVm); _dbContext.Zwierzeta.Update(zwierzeEntity); _dbContext.SaveChanges(); return editZwierzeVm; } public ZwierzeVm GetZwierze(Expression> filterPredicate) { var zwierzeEntity = _dbContext.Zwierzeta.FirstOrDefault(filterPredicate); var zwierzeVm = _mapper.Map(zwierzeEntity); return zwierzeVm; } public StudentVm AddStudent(AddStudentVm addStudentVm) { var studentEntity = _mapper.Map(addStudentVm); _dbContext.Students.Add(studentEntity); _dbContext.SaveChanges(); var studentVm = _mapper.Map(studentEntity); return studentVm; } public IEnumerable GetStudents(Expression> filterPredicate = null) { IEnumerable students = null; if(filterPredicate != null) { students = _dbContext.Students.Where(filterPredicate).ToList(); } else { students = _dbContext.Students.ToList(); } var studentVms = _mapper.Map>(students); return studentVms; } } 9 dodac w program.cs builder.Services.AddScoped(); 10 widok add

11 widok details @model ViewModels.ViewModels.ZwierzeVm

Dodano Zwierze:

@Model.Imie

@Model.Gatunek

@Model.RokUr