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"))); } }
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); }