public async Task <ActionResult <Property> > PostProperty(Guid portfolioId, PropertyCreateDto @property) { //var address = _mapper.Map<Address>(@property.Address); var portfolio = await _portfolioService.GetPortfolio(portfolioId); var newProperty = _mapper.Map <Property>(@property); var result = await _propertyService.CreateProperty(portfolio, newProperty); return(CreatedAtAction("GetProperty", new { id = result.Id }, result)); }
public ActionResult <PropertyReadDto> CreateProperty(PropertyCreateDto propertyCreateDto) { var propertyModel = _mapper.Map <Property>(propertyCreateDto); propertyModel.Update(); _repository.CreateProperty(propertyModel); _repository.SaveChanges(); var propertyReadDto = _mapper.Map <PropertyReadDto>(propertyModel); return(CreatedAtRoute(nameof(GetPropertyById), new { Id = propertyReadDto.Id }, propertyReadDto)); }
public async Task AddProperty([FromForm] PropertyCreateDto propertyDto) { var user = await _authentication.GetCurrentUserAsync(); var property = _mapper.Map <Property>(propertyDto); property.Photos = new List <PropertyPhoto>(); foreach (var image in propertyDto.Photos) { property.Photos.Add(await UploadImage(image)); } property.Status = (int)PropertyStatus.LookingForAgent; property.CreatedById = user.Id; property.UserId = user.Id; await _unitOfWork.Repository <Property>().AddAsync(property); await _unitOfWork.SaveChangesAsync(); foreach (var agentId in propertyDto.AgentsId) { var agent = await _unitOfWork.Repository <AgentProfile>().GetAsync(a => a.Id == agentId); var offer = new Offer(); offer.AgentProfileId = agentId; offer.PropertyId = property.Id; offer.CreatedById = user.Id; offer.Rate = agent.DefaultRate; await _unitOfWork.Repository <Offer>().AddAsync(offer); } foreach (var questionDto in propertyDto.QuestionsDtos) { var question = _mapper.Map <Question>(questionDto); question.CreatedById = user.Id; question.PropertyId = property.Id; question.CreatedDateUtc = DateTime.Now; await _unitOfWork.Repository <Question>().AddAsync(question); } await _unitOfWork.SaveChangesAsync(); }
public async Task <IActionResult> AddProperty([FromBody] PropertyCreateDto propertyCreateDto) { var id = _userManager.GetUserId(User); int myId = Convert.ToInt32(id); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var property = _mapper.Map <Property>(propertyCreateDto); property.UserId = myId; _repo.Add(property); if (await _repo.SaveAll()) { var propertyToReturn = _mapper.Map <PropertyReturnDto>(property); return(CreatedAtRoute("GetProperty", new { id = property.PropertyId }, propertyToReturn)); } return(BadRequest("Failed to add property")); }
public async Task <ActionResult <PropertyDetailDto> > CreateProperty(Guid portfolioId, PropertyCreateDto @property) { if (ModelState.IsValid) { var newProperty = _mapper.Map <Property>(@property); await _propertyService.CreateProperty(newProperty, portfolioId); return(CreatedAtAction("GetPropertyById", new { portfolioId, newProperty.Id })); } return(BadRequest(ModelState)); }