public async Task <IActionResult> Post(long id, [FromBody] OpinionInmobiliariaPost opinion)
        {
            Inmobiliaria inmo = await _serviceInmo.GetById(id);

            if (inmo == null)
            {
                return(BadRequest(new BadRequestApiResponse("No se encontró inmobiliaria con el Id ingresado")));
            }

            var clientIpAddress = HttpContext.Connection.RemoteIpAddress.ToString();

            if (!await _service.IsPossibleToCreateANewOpinionFor(id, clientIpAddress))
            {
                return(BadRequest(new BadRequestApiResponse("Ya se detectó otra opinion ingresada en el dia de hoy para la misma inmobiliaria y proveniente de la misma IP")));
            }
            opinion.IpOrigen = clientIpAddress;

            OpinionInmobiliaria createdOpinion = await _service.AddOpinionInmobiliaria(id, opinion);

            if (createdOpinion != null)
            {
                return(Ok(new OkApiResponse(createdOpinion)));
            }
            else
            {
                return(Conflict(new InternalErrorResponse("No se pudo completar la operación")));
            }
        }
Exemplo n.º 2
0
        public async Task <OpinionInmobiliaria> AddOpinionInmobiliaria(long inmobiliariaId, OpinionInmobiliariaPost model)
        {
            OpinionInmobiliaria newOpinion = _mapper.Map <OpinionInmobiliaria>(model);

            newOpinion.FechaOpinion   = DateTime.Today;
            newOpinion.InmobiliariaId = inmobiliariaId;
            await _context.OpinionesInmobiliarias.AddAsync(newOpinion);

            await _context.SaveChangesAsync();

            return(newOpinion);
        }