public Denounced create(Denounced denounced)
        {
            foodForAllContext.Denounced.Add(denounced);
            foodForAllContext.SaveChanges();

            int complaints = findByIdUser(denounced.IdUser);

            if (complaints == 5)
            {
                User user = userService.findById(denounced.IdUser);

                ListBlack listBlack = new ListBlack();

                listBlack.IdUser            = user.Id;
                listBlack.OneSignalPlayerId = user.OneSignalPlayerId;
                listBlack.Phone             = user.Phone;
                listBlack.Email             = user.Email;

                listBlackService.create(listBlack);

                userService.deleteById(user.Id);
            }

            return(denounced);
        }
        public Denounced findByIdUserAndIdUserAccuser(int idUser, int idUserAccuser)
        {
            Denounced denounced = (from d in foodForAllContext.Denounced where d.IdUser == idUser && d.IdUserAccuser == idUserAccuser select d).FirstOrDefault();

            return(denounced);
        }
        public IActionResult findByIdUserAndIdUserAccuser([FromHeader(Name = "Authorization")] string token, int idUser, int idUserAccuser)
        {
            try
            {
                if (string.IsNullOrEmpty(token))
                {
                    return(Ok(new
                    {
                        message = "El Token es requerido.",
                        statusCode = HttpStatusCode.NoContent
                    }));
                }
                else
                {
                    string host          = Request.HttpContext.Connection.RemoteIpAddress.ToString();
                    Token  tokenExisting = tokenService.findByToken(token, host);

                    if (tokenExisting != null)
                    {
                        Denounced denounced = denouncedService.findByIdUserAndIdUserAccuser(idUser, idUserAccuser);

                        if (denounced != null)
                        {
                            EventLog eventLog = new EventLog();

                            eventLog.IdUser         = tokenExisting.IdUser;
                            eventLog.IdEventLogType = 1;
                            eventLog.Host           = Request.HttpContext.Connection.RemoteIpAddress.ToString();
                            eventLog.HttpMethod     = ControllerContext.HttpContext.Request.Method;
                            eventLog.Controller     = ControllerContext.ActionDescriptor.ControllerName;
                            eventLog.Method         = ControllerContext.ActionDescriptor.ActionName;

                            eventLogService.create(eventLog);

                            return(Ok(new
                            {
                                denounced = denounced,
                                statusCode = HttpStatusCode.OK
                            }));
                        }
                        else
                        {
                            return(Ok(new
                            {
                                message = "La Denuncia no existe.",
                                statusCode = HttpStatusCode.NotFound
                            }));
                        }
                    }
                    else
                    {
                        return(Ok(new
                        {
                            message = "Token no permitido.",
                            statusCode = HttpStatusCode.Forbidden
                        }));
                    }
                }
            }
            catch (Exception exception)
            {
                EventLog eventLog = new EventLog();

                eventLog.IdEventLogType = 2;
                eventLog.Host           = Request.HttpContext.Connection.RemoteIpAddress.ToString();
                eventLog.HttpMethod     = ControllerContext.HttpContext.Request.Method;
                eventLog.Controller     = ControllerContext.ActionDescriptor.ControllerName;
                eventLog.Method         = ControllerContext.ActionDescriptor.ActionName;
                eventLog.Message        = exception.InnerException != null ? exception.InnerException.Message : exception.Message;

                eventLogService.create(eventLog);

                return(Ok(new
                {
                    message = "Upps!!, tenemos un problema, intentalo nuevamente.",
                    statusCode = HttpStatusCode.InternalServerError
                }));
            }
        }