public IActionResult CreateAdvertisement([FromBody] AdvertisementForCreationDto advertisement)
        {
            try
            {
                if (advertisement == null)
                {
                    _logger.LogError("advertisement object sent from client is null.");
                    return(BadRequest("advertisement object is null"));
                }
                if (!ModelState.IsValid)
                {
                    _logger.LogError("Invalid advertisement object sent from client.");
                    return(BadRequest("Invalid model object"));
                }

                var advertisementEntity = _mapper.Map <Advertisement>(advertisement);

                _repository.Advertisement.CreateAdvertisement(advertisementEntity);
                _repository.Save();

                var createdAdvertisement = _mapper.Map <AdvertisementDto>(advertisementEntity);

                return(CreatedAtRoute("AdvertisementById", new { id = createdAdvertisement.AdvertisementId }, createdAdvertisement));
            }
            catch (Exception ex)
            {
                _logger.LogError($"Something went wrong inside CreateAdvertisement action: {ex.InnerException.Message}");
                return(StatusCode(500, "Internal server error"));
            }
        }
Ejemplo n.º 2
0
        public ActionResult <AdvertismentSimpleDto> CreateRealEstate(
            [FromBody] AdvertisementForCreationDto advertisement)
        {
            try
            {
                if (advertisement == null)
                {
                    return(BadRequest("Advertisement object is null"));
                }
                if (!ModelState.IsValid)
                {
                    return(BadRequest("Invalid model object"));
                }
                var    advertismentEntity = _mapper.Map <Advertisement>(advertisement);
                string userName           = User.Identity.Name;
                string userId             = _advertisementRepository.GetUserIdFromUserName(userName);


                advertismentEntity.UserId = userId;
                if (advertismentEntity.RentingPrice != null)
                {
                    advertismentEntity.CanBeRented = true;
                }
                if (advertismentEntity.SellingPrice != null)
                {
                    advertismentEntity.CanBeSold = true;
                }
                advertismentEntity.CreatedOn = Helpers.GetCurrentDateUTC.GetDateTimeUTC();

                _advertisementRepository.Add(advertismentEntity);
                // TODO might be problem
                _advertisementRepository.Save();

                var advertismentToReturn = _mapper.Map <AdvertismentSimpleDto>(advertismentEntity);
                return(CreatedAtAction("GetRealEstateById", new { realestateId = advertismentToReturn.Id }, advertismentToReturn));
            }
            catch (Exception ex)
            {
                //TODO - create logging for errors
                //_logger.LogError($"Something went wrong inside the CreateRealEstate action");
                return(StatusCode(500, ex.Message));
            }
        }