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));
        }
Exemplo n.º 3
0
        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"));
        }
Exemplo n.º 5
0
        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));
        }