public async Task <ActionResult <Shelter> > PostShelter(Shelter shelter) { try { _repository.AddShelter(shelter); } catch (DbUpdateException) { if (ShelterExists(shelter.Id)) { return(Conflict()); } else { throw; } } return(Ok()); }
public async Task <ServiceResponse <ShelterDto, GetAccountDto> > AddShelter(ShelterDto shelterDto) { var shelter = mapper.Map <Shelter>(shelterDto); shelter.IsApproved = true; var addShelterResult = await shelterRepository.AddShelter(shelter); var serviceResponse = mapper.Map <RepositoryResponse <Shelter>, ServiceResponse <ShelterDto, GetAccountDto> >(addShelterResult); if (addShelterResult.Successful) { var addAccountResult = await accountService.AddShelterAccount(addShelterResult.Data); if (addAccountResult.Successful) { serviceResponse.Metadata = addAccountResult.Data; } else { serviceResponse.Data = null; serviceResponse.Successful = false; var deleteResult = await shelterRepository.DeleteShelter(addShelterResult.Data.Id); if (deleteResult.Successful) { serviceResponse.Message = $"Failed to add shelter acccount: {addAccountResult.Message}"; } else { serviceResponse.Message = $"Data corrupted! Failed to add shelter account and remove shelter after failing to add acccount: {addAccountResult.Message} {deleteResult.Message}"; } } } else { serviceResponse.StatusCode = StatusCodes.Status400BadRequest; } return(serviceResponse); }
public IActionResult Create(Shelter newShelter) { repository.AddShelter(newShelter); return(RedirectToAction("List")); }
public async void AddShelterSuccessfulForValidShelter() { var addShelter = GetValidShelter(); var result = await shelterRepository.AddShelter(addShelter); Assert.True(result.Successful); }