コード例 #1
0
        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));
            }
        }
コード例 #2
0
ファイル: RateController.cs プロジェクト: stasiu9/foodie
        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));
        }
コード例 #3
0
        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));
        }