// public ActionResult Create([Bind(Include = "LastName, FirstMidName, EnrollmentDate")] Student student)

        public ActionResult Create(CreateGoalModel model)
        {
            using (var db = new Capstone2020Context(nameof(Capstone2020Context)))
            {
                model.UserEventId = Guid.NewGuid().ToString();
                model.RevisionID  = 0;
                var @event = new UserEvent
                {
                    UserEventId   = model.UserEventId,
                    UserId        = User.Identity.GetUserId(),
                    ColorID       = 1,
                    CompletedDate = model.CompletedDate,
                    CreationDate  = DateTime.Now,
                    EventTitle    = model.EventTitle,
                    EventText     = model.EventText,
                    RecurID       = 0,
                    EventTypeId   = 1
                };
                string CurrentUserId = User.Identity.GetUserId();
                db.Set <UserEvent>().Add(@event);

                db.SaveChanges();
            }


            return(RedirectToAction("Index"));
        }
        public ActionResult Index()
        {
            using (var db = new Capstone2020Context(nameof(Capstone2020Context)))
            {
                var currentUser = User.Identity.GetUserId();

                var todayAsDayEnum = (int)DateTime.Today.DayOfWeek.ConvertToDay();

                var currentUserAllGoalList = from loggedInUserEvent in db.UserEvents.Include(u => u.User)
                                             where currentUser == loggedInUserEvent.UserId
                                             select loggedInUserEvent
                ;

                var currentUserEvents = from loggedInUserEvent in db.UserEvents.Include(u => u.User)
                                        where currentUser == loggedInUserEvent.UserId
                                        where (loggedInUserEvent.RecurID & todayAsDayEnum) == todayAsDayEnum
                                        select loggedInUserEvent
                ;



                if (currentUserAllGoalList.Count() > 0)
                {
                    return(View("ExpUser", currentUserEvents.ToList()));
                }
                else
                {
                    return(View("NewUser"));
                }
            }
        }
        public ActionResult Edit([Bind(Include = "UserEventId,EventTypeId,ParentId,CreationDate,CompletedDate,EventTitle,EventText,ColorID,ModificationDatetime,RevisionID,RecurID,UserId")] UserEvent userEvent)
        {
            using (var db = new Capstone2020Context(nameof(Capstone2020Context)))
            {
                if (ModelState.IsValid)
                {
                    var dbValue = db.UserEvents.Find(userEvent.UserEventId);

                    dbValue.RevisionID          += 1;
                    dbValue.ModificationDatetime = DateTime.Now;
                    dbValue.EventTitle           = userEvent.EventTitle;
                    dbValue.EventText            = userEvent.EventText;

                    // userEvent.UserId = dbValue.UserId;
                    userEvent.UserEventId  = dbValue.UserEventId;
                    userEvent.EventTypeId  = dbValue.EventTypeId;
                    userEvent.CreationDate = dbValue.CreationDate;
                    userEvent.EventTitle   = dbValue.EventTitle;
                    userEvent.EventText    = dbValue.EventText;
                    userEvent.RecurID      = dbValue.RecurID;
                    userEvent.RevisionID   = dbValue.RevisionID;


                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                ViewBag.UserId = new SelectList("Id", userEvent.UserId);
                return(View(userEvent));
            }
        }
        public ActionResult CreateQuick([Bind(Include = "UserEventId,EventTypeId,ParentId,CreationDate,CompletedDate,EventTitle,EventText,ColorID,ModificationDatetime,RevisionID,RecurID,UserId")] UserEvent userEvent)
        {
            using (var db = new Capstone2020Context(nameof(Capstone2020Context)))
            {
                userEvent.UserEventId = Guid.NewGuid().ToString();
                userEvent.RevisionID  = 0;
                userEvent.UserId      = User.Identity.GetUserId();
                DateTime CreationDateTimeValue = DateTime.Now;


                var @event = new UserEvent
                {
                    UserEventId   = userEvent.UserEventId,
                    UserId        = userEvent.UserId,
                    ColorID       = 1,
                    CompletedDate = userEvent.CompletedDate,
                    CreationDate  = CreationDateTimeValue,
                    EventTitle    = userEvent.EventTitle,
                    EventText     = userEvent.EventText,
                    RecurID       = 0,
                    EventTypeId   = 1
                };
                db.UserEvents.Add(@event);


                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
        }
 // GET: UserEvents/Create
 public ActionResult CreateQuick()
 {
     using (var db = new Capstone2020Context(nameof(Capstone2020Context)))
     {
         ViewBag.UserId = new SelectList(User.Identity.GetUserName(), "Id", "FirstName");
     }
     return(View());
 }
        public ActionResult AllGoals()
        {
            using (var db = new Capstone2020Context(nameof(Capstone2020Context)))
            {
                var currentUser = User.Identity.GetUserId();

                var currentUserAllGoalList = from loggedInUserEvent in db.UserEvents.Include(u => u.User)
                                             where currentUser == loggedInUserEvent.UserId
                                             select loggedInUserEvent
                ;

                return(View(currentUserAllGoalList.ToList()));
            }
        }
        public ActionResult Delete(int id, FormCollection collection)
        {
            try

            {
                using (var db = new Capstone2020Context(nameof(Capstone2020Context)))
                {
                    // db.UserEvents.Remove(UserEvent id);
                }
                // TODO: Add delete logic here

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View());
            }
        }
        public ActionResult Edit(int id, CreateGoalModel model)
        {
            if (ModelState.IsValid)
            {
                // TODO: Add update logic here
                using (var db = new Capstone2020Context(nameof(Capstone2020Context)))
                {
                    model.RevisionID = model.RevisionID + 1;



                    db.SaveChanges();
                }



                return(RedirectToAction("Index"));
            }

            else
            {
                return(View(model));
            }
        }
        public ActionResult CreateQuick([Bind(Include = "UserEventId,EventTypeId,ParentId,CreationDate,CompletedDate,EventTitle," +
                                                        "EventText,ColorID,ModificationDatetime,RevisionID,RecurID,UserId,RecurIntValue,SundayClickedBool," +
                                                        "MondayClickedBool,TuesdayClickedBool,WednesdayClickedBool,ThursdayClickedBool,FridayClickedBool,SaturdayClickedBool")] UserEventModels userEvents)
        {
            using (var db = new Capstone2020Context(nameof(Capstone2020Context)))
            {
                if (userEvents.SundayClickedBool)
                {
                    userEvents.RecurIntValue += (int)Day.Sunday;
                }
                if (userEvents.MondayClickedBool)
                {
                    userEvents.RecurIntValue += (int)Day.Monday;
                }
                if (userEvents.TuesdayClickedBool)
                {
                    userEvents.RecurIntValue += (int)Day.Tuesday;
                }
                if (userEvents.WednesdayClickedBool)
                {
                    userEvents.RecurIntValue += (int)Day.Wednesday;
                }
                if (userEvents.ThursdayClickedBool)
                {
                    userEvents.RecurIntValue += (int)Day.Thursday;
                }
                if (userEvents.FridayClickedBool)
                {
                    userEvents.RecurIntValue += (int)Day.Friday;
                }
                if (userEvents.SaturdayClickedBool)
                {
                    userEvents.RecurIntValue += (int)Day.Saturday;
                }

                userEvents.UserEventId = Guid.NewGuid().ToString();

                userEvents.RevisionID = 0;

                userEvents.UserId = User.Identity.GetUserId();

                DateTime CreationDateTimeValue = DateTime.Now;


                var @event = new UserEvent
                {
                    UserEventId   = userEvents.UserEventId,
                    UserId        = userEvents.UserId,
                    ColorID       = 1,
                    CompletedDate = userEvents.CompletedDate,
                    CreationDate  = CreationDateTimeValue,
                    EventTitle    = userEvents.EventTitle,
                    EventText     = userEvents.EventText,
                    RecurID       = userEvents.RecurIntValue,
                    EventTypeId   = 1
                };
                db.UserEvents.Add(@event);


                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
        }