public IActionResult Post([FromBody] StateForCreationDto state) { try{ if (state == null) { //_logger.LogError("Owner object sent from client is null."); return(BadRequest("Owner object is null")); } if (!ModelState.IsValid) { //_logger.LogError("Invalid owner object sent from client."); return(BadRequest("Invalid model object")); } var Entity = _mapper.Map <State>(state); _stateService.Create(Entity); var EntityToReturn = _mapper.Map <StateDto>(Entity); return(CreatedAtRoute("GetById", new { id = EntityToReturn.Id }, EntityToReturn)); } catch (Exception ex) { //_logger.LogError($"Something went wrong inside CreateOwner action: {ex.Message}"); return(StatusCode(500, "Internal server error" + ex.ToString())); } }
public async Task <IActionResult> CreateState([FromBody] StateForCreationDto state) { try { if (state == null) { _logger.LogError("State received is a Null Object."); return(BadRequest("Rent object is null. Please send full request.")); } else if (!ModelState.IsValid) { _logger.LogError("Invalid State object sent from client."); return(BadRequest("State object is not Valid")); } var relatedRentExist = await _repositoryWrapper.Rent.GetRentById(state.RentId); if (relatedRentExist == null) { return(BadRequest($"State cannot be created, Rent with id: {state.RentId} does not exist in DB.")); } Boolean IsInitialExists = await _repositoryWrapper.State.CheckIsInitialStateWithRentIdExist(state.RentId); if (IsInitialExists && state.IsInitial) { _logger.LogError("User tried to create 'Initial State', but 'Initial State' already exist in DB"); return(BadRequest($"Initial State cannot be created, Rent with id: {state.RentId} already has its Initial State.")); } else if (!IsInitialExists && !state.IsInitial) { _logger.LogError("User tried to create 'Non Initial State', but 'Initial State' not yet exist in DB."); return(BadRequest($"Non Initial State cannot be created, Rent with id: {state.RentId} doesn't have it's initial state. Contact Landlord to create it first.")); } var stateEntity = _mapper.Map <State>(state); _repositoryWrapper.State.CreateState(stateEntity); await _repositoryWrapper.Save(); var createdState = _mapper.Map <StateDto>(stateEntity); return(CreatedAtRoute("RentById", new { id = createdState.Id }, createdState)); } catch (Exception e) { _logger.LogError($"Something went wrong inside CreateState(StateForCreationDto) action: {e.Message}"); return(StatusCode(500, e.Message)); } }