// GET: Alerte/Create
        public ActionResult Create()
        {
            AlerteVM        avm            = new AlerteVM();
            IServiceDisease servicealerte  = new ServiceDisease();
            IServiceSymptom servicesymptom = new ServiceSymptom();

            avm.AllDisease = (ICollection <Disease>)servicealerte.GetAll();
            foreach (var x in avm.AllDisease)
            {
                x.Symptoms = servicesymptom.GetByDisease(x);
            }
            return(View(avm));
        }
        public ActionResult Create(AlerteVM avm)
        {
            IServiceDisease service       = new ServiceDisease();
            IServiceAlerte  serviceAlerte = new ServiceAlerte();
            IServiceDanger  servicedanger = new ServiceDanger();
            IWContext       context       = new IWContext();

            avm.NameDiseas = avm.NameDiseas.Trim();
            Disease disease = context.Diseases.Where(d => d.Name.Equals(avm.NameDiseas)).FirstOrDefault();

            //context.Entry(disease).State = System.Data.Entity.EntityState.Unchanged;
            //Disease disease = service.FindByName(avm.NameDiseas);
            if (disease != null)
            {
                string          userid     = User.Identity.GetUserId();
                ApplicationUser user       = context.Users.FirstOrDefault(x => x.Id == userid);
                Alerte          LastAlerte = serviceAlerte.GetAlerteByUser(user);
                if ((LastAlerte != null && LastAlerte.DateTime.Subtract(DateTime.Today).Days >= 7) || LastAlerte == null)
                {
                    if (user != null)
                    {
                        Alerte a = context.Alertes.Where(c => c.Disease.Name.Equals(disease.Name)).FirstOrDefault();
                        if (a != null)
                        {
                            Alerte alerte = new Alerte()
                            {
                                Disease  = disease,
                                User     = user,
                                DateTime = DateTime.Today,
                                Danger   = a.Danger
                            };
                            context.Alertes.Add(alerte);
                            context.SaveChanges();
                        }
                        else
                        {
                            Danger d = new Danger()
                            {
                                Date = DateTime.Now
                            };
                            Alerte alerte = new Alerte()
                            {
                                Disease  = disease,
                                User     = user,
                                DateTime = DateTime.Today,
                                Danger   = d
                            };
                            context.Alertes.Add(alerte);
                            context.SaveChanges();
                        }


                        /* ICollection<Danger> Dangers = context.Dangers.Include("Alertes").ToList();
                         * Danger danger = new Danger();
                         * foreach(var D in Dangers)
                         * {
                         *   foreach(var x in D.Alertes)
                         *   {
                         *       Alerte y = context.Alertes.Include("Disease").Where(c => c.Id == x.Id).SingleOrDefault();
                         *       if (y.Disease.Name.Equals(alerte.Disease.Name))
                         *           danger = D;
                         *   }
                         * }
                         * danger.Date = DateTime.Now;
                         * //Danger danger = servicedanger.GetDangerByAlert(alerte);
                         * if(danger == null)
                         * {
                         *
                         *   danger.Alertes.Add(alerte);
                         *   context.Dangers.Add(danger);
                         *   alerte.Danger = danger;
                         *   context.SaveChanges();
                         *
                         * }
                         * else
                         * {
                         *   danger.Alertes.Add(alerte);
                         *   context.SaveChanges();
                         * }*/
                        context.Dispose();
                        return(View("Sucess"));
                    }
                }
                else
                {
                    context.Dispose();
                    return(View("Error"));
                }
            }
            context.Dispose();
            return(Create());
        }