public void Remove(int id)
 {
     try
     {
         Notificacion razonsocial = db.Notificaciones.Find(id);
         razonsocial.estado          = false;
         db.Entry(razonsocial).State = EntityState.Modified;
         db.SaveChanges();
     }
     catch (Exception)
     {
     }
 }
        public NotificacionDTO Find(int?id)
        {
            try
            {
                var config = new MapperConfiguration(cfg =>
                {
                    cfg.CreateMap <Notificacion, NotificacionDTO>();
                });

                IMapper mapper = config.CreateMapper();
                //Mapeo de clase
                Notificacion    model    = db.Notificaciones.Find(id);
                NotificacionDTO response = mapper.Map <Notificacion, NotificacionDTO>(model);
                return(response);
            }
            catch (Exception)
            {
                throw;
            }
        }
 public void checkNotificaciones(string user)
 {
     try
     {
         Usuarios        usuario      = db.Usuarios.Include(x => x.notificaciones).FirstOrDefault(w => w.correo.Equals(user));
         var             userModel    = FindUser(user);
         NotificacionDTO notificacion = new NotificacionDTO();
         Notificacion    respone      = new Notificacion();
         usuario.notificaciones.ForEach(x =>
         {
             x.check = true;
         });
         db.Entry(usuario).State = EntityState.Modified;
         db.SaveChanges();
     }
     catch (Exception)
     {
         throw;
     }
 }
        public void Add(NotificacionDTO notificacion)
        {
            try
            {
                var config = new MapperConfiguration(cfg =>
                {
                    cfg.CreateMap <NotificacionDTO, Notificacion>();
                });

                IMapper mapper = config.CreateMapper();
                //Mapeo de clase

                Notificacion response = mapper.Map <NotificacionDTO, Notificacion>(notificacion);
                db.Notificaciones.Add(response);
                db.SaveChanges();
            }

            catch (Exception)
            {
                throw;
            }
        }
        public NotificacionDTO Update(NotificacionDTO notificacions)
        {
            try
            {
                var config = new MapperConfiguration(cfg => {
                    cfg.CreateMap <NotificacionDTO, Notificacion>();
                });
                IMapper      mapper             = config.CreateMapper();
                Notificacion notificacionsModel = mapper.Map <NotificacionDTO, Notificacion>(notificacions);

                db.Entry(notificacionsModel).State = EntityState.Modified;
                db.SaveChanges();

                notificacions = this.Find(notificacions.id);


                return(notificacions);
            }
            catch (Exception)
            {
                return(notificacions);
            }
        }
        public void crearNotificaciones(string user)
        {
            try
            {
                var             userModel    = FindUser(user);
                var             today        = DateTime.Today;
                NotificacionDTO notificacion = new NotificacionDTO();
                Notificacion    respone      = new Notificacion();
                userModel.anuncios.ForEach(x =>
                {
                    TimeSpan fechaResultado = (x.fechaCancelacion - today);
                    int totalDays           = (int)fechaResultado.TotalDays;

                    if (totalDays == 3)
                    {
                        notificacion.notificacion = Helpers.Constants.Anuncios.notif3dias;
                        notificacion.anuncio      = x;
                        notificacion.fecha        = DateTime.Today;
                        notificacion.check        = false;
                    }
                    else if (totalDays == 5)
                    {
                        notificacion.notificacion = Helpers.Constants.Anuncios.notif5dias;
                        notificacion.anuncio      = x;
                        notificacion.fecha        = DateTime.Today;
                        notificacion.check        = false;
                    }
                    else if (totalDays <= 0)
                    {
                        notificacion.notificacion = Helpers.Constants.Anuncios.notif0dias;
                        notificacion.anuncio      = x;
                        notificacion.fecha        = x.fechaCancelacion;
                        notificacion.check        = false;
                    }
                    bool exists        = false;
                    var notificaciones = getList(user);
                    if (!string.IsNullOrEmpty(notificacion.notificacion))
                    {
                        notificaciones.ForEach(y =>
                        {
                            if (notificacion.anuncio.id == y.anuncio.id && notificacion.notificacion.Equals(y.notificacion))
                            {
                                exists = true;
                            }
                        });

                        if (!exists)
                        {
                            Notificacion model = new Notificacion();
                            model.notificacion = notificacion.notificacion;
                            model.fecha        = x.fechaCancelacion;
                            model.check        = false;
                            model.anuncio      = db.Anuncios.First(z => z.id == notificacion.anuncio.id);
                            Usuarios usuario   = db.Usuarios.FirstOrDefault(w => w.correo.Equals(user));
                            usuario.notificaciones.Add(model);
                            db.Entry(usuario).State = EntityState.Modified;
                            db.SaveChanges();
                        }
                    }
                });
            }
            catch (Exception)
            {
                throw;
            }
        }