public async Task <IActionResult> CreateApartment([FromForm] ApartmentInsertDTO apartment) { try { await _apartmentService.InsertApartmentAsync(apartment); return(Ok()); } catch (DbUpdateConcurrencyException e) { return(BadRequest(e.Message)); } catch (Exception e) { return(BadRequest(e)); } }
public async Task InsertApartmentAsync(ApartmentInsertDTO apartmentInsertDTO) { var email = _httpContextAccessor.HttpContext.User.FindFirst(ClaimsIdentity.DefaultNameClaimType).Value; var owner = await(await _userRepository.GetAllAsync(x => x.Email.ToUpper().Equals(email.ToUpper()))) .FirstOrDefaultAsync(); var apartment = _mapper.Map <Apartment>(apartmentInsertDTO); var images = await _imagesService.UploadAsync(apartmentInsertDTO.Images, email); var apartmenrType = (await _apartmentTypeRepository.GetAllAsync(x => x.Name.ToUpper().Equals(apartmentInsertDTO.ApartmentTypeString.ToUpper()))) .FirstOrDefault(); apartment.ApartmentImages = images.Select(path => new ApartmentImage { Url = path }).ToList(); apartment.ApartmentType = apartmenrType ?? throw new EntityNotExistException("Current apartment type not exists"); apartment.Owner = owner; apartment.CreatedBy = owner.Id; /*apartment.ApartmentLocation.Coordinates = new Point(20.545, -80.4564){SRID = 4326};*/ await _apartmentRepository.InsertAsync(apartment); }