Esempio n. 1
0
        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()));
            }
        }
Esempio n. 2
0
        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));
            }
        }