public async Task <ActionResult <AdminResource> > UpdateAdmin(int id, [FromBody] AdminSaveResource admin) { var validator = new AdminSaveResourceValidator(); var validationResult = await validator.ValidateAsync(admin); var requestIsInvalid = id == 0 || !validationResult.IsValid; if (requestIsInvalid) { return(BadRequest(validationResult.Errors)); // this needs refining, but for demo it is ok } var adminToBeUpdate = await _adminService.GetById(id); if (adminToBeUpdate == null) { return(NotFound()); } var mappedAdmin = _mapper.Map <AdminSaveResource, Admin>(admin); await _adminService.UpdateAdmin(adminToBeUpdate, mappedAdmin); var updatedAdmin = await _adminService.GetById(id); var updatedAdminResource = _mapper.Map <Admin, AdminResource>(updatedAdmin); return(Ok(updatedAdminResource)); }
public async Task <ActionResult <AdminResource> > CreateAdmin([FromBody] AdminSaveResource admin) { var validator = new AdminSaveResourceValidator(); var validationResult = await validator.ValidateAsync(admin); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); // this needs refining, but for demo it is ok } var adminToCreate = _mapper.Map <AdminSaveResource, Admin>(admin); var newAdmin = await _adminService.CreateAdmin(adminToCreate); var createdAdmin = await _adminService.GetById(newAdmin.Id); var adminResource = _mapper.Map <Admin, AdminResource>(createdAdmin); return(Ok(adminResource)); }