public async Task <IActionResult> CreateRate([FromBody] RateForCreationDto rate) { try { if (rate == null) { _logger.LogError("Rate received is a Null Object."); return(BadRequest("Rate object is null. Please send full request.")); } else if (!ModelState.IsValid) { _logger.LogError("Invalid Rate object sent from client."); return(BadRequest("Rate object is not Valid")); } Boolean propertyExist = await _repositoryWrapper.Property.CheckIfPropertyExistByPropertyId(rate.PropertyId); if (!propertyExist) { _logger.LogError($"User tried to create Rate with related property_id: {rate.PropertyId} which does not exist in DB."); return(NotFound($"Related Property with id: {rate.PropertyId} does not exist.")); } var rateAlreadyInDB = await _repositoryWrapper.Rate.GetRateByPropertyId(rate.PropertyId); if (rateAlreadyInDB != null) { _logger.LogError("Rate with given PropertyId already exist in Db, cannot create."); return(BadRequest("Rate already in Database")); } var rateEntity = _mapper.Map <Rate>(rate); _repositoryWrapper.Rate.CreateRate(rateEntity); await _repositoryWrapper.Save(); var createdRate = _mapper.Map <RateDto>(rateEntity); return(CreatedAtRoute("RateById", new { id = createdRate.Id }, createdRate)); } catch (Exception e) { _logger.LogError($"Something went wrong inside CreateRate(RateForCreationDto) action: {e.Message}"); return(StatusCode(500, e.Message)); } }
public async Task <IActionResult> CreateRate([FromBody] RateForCreationDto rate) { if (rate == null) { return(BadRequest("RateForCreationDto object is null")); } if (!ModelState.IsValid) { return(UnprocessableEntity(ModelState)); } var rateEntity = _mapper.Map <Rate>(rate); _repository.Rate.CreateRate(rateEntity); await _repository.SaveAsync(); var rateToReturn = _mapper.Map <RateDto>(rateEntity); return(CreatedAtRoute("AllRatesforUser", new { id = rateToReturn.Id }, rateToReturn)); }
public async Task <IActionResult> AddRate([FromBody] RateForCreationDto rateDto) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } // Если нет, то создаем новую var rateEntity = Mapper.Map <CurrencyRate>(rateDto); rateEntity.Id = Guid.NewGuid(); _rep.AddRateForCurrency(rateEntity); if (!_rep.Save()) { return(StatusCode(500, "A problem happened with handling your request.")); } var dataToReturn = Mapper.Map <RateDto>(rateEntity); return(CreatedAtRoute("GetRate", new { id = dataToReturn.Id }, dataToReturn)); }