Exemple #1
0
        public IActionResult RegisterUser(RegisterUser newUser)
        {
            if (_context.Users.Where(user => user.Email == newUser.Email).SingleOrDefault() != null)
            {
                ModelState.AddModelError("Email", "Email already in use");
            }
            PasswordHasher <RegisterUser> hasher = new PasswordHasher <RegisterUser>();

            if (ModelState.IsValid)
            {
                User theUser = new User
                {
                    FirstName = newUser.FirstName,
                    LastName  = newUser.LastName,
                    Email     = newUser.Email,
                    Password  = hasher.HashPassword(newUser, newUser.Password),
                    CreatedAt = DateTime.Now,
                    UpdatedAt = DateTime.Now,
                };
                User loggedUser = _context.Add(theUser).Entity;
                _context.SaveChanges();
                HttpContext.Session.SetInt32("id", loggedUser.UserId);
                return(RedirectToAction("Index", "Activity"));
            }
            ;
            return(View("Index"));
        }
        public IActionResult AddActivity(NewActivity newActivity)
        {
            if (HttpContext.Session.GetInt32("id") == null)
            {
                return(RedirectToAction("Index", "User"));
            }
// insert part 1 here
            // part 1 begin
            var ParticipatingActivities = mycontext.Participate.Where(p => p.UserId == ActiveUser.UserId).Select(u => u.ParticipatingActivities).ToList();

            foreach (var activity in ParticipatingActivities)
            {
                Console.WriteLine(activity.Date);
                DateTime start_date = activity.Date;
                DateTime end_date   = start_date.AddMinutes((double)activity.Duration);
                Console.WriteLine(end_date);
                DateTime activity_date     = newActivity.Date;
                DateTime activity_end_date = activity_date.AddMinutes((double)newActivity.Duration);
                // if(activity_date < start_date && activity_end_date < start_date)
                // {
                //     newActivity.Date = newActivity.Date;
                //     newActivity.Duration = newActivity.Duration;
                // }
                // else if (activity_date > start_date && activity_date > end_date )
                // {
                //     newActivity.Date = newActivity.Date;
                //     newActivity.Duration = newActivity.Duration;
                // }
                // else
                // {
                //     ModelState.AddModelError("Date", "Activity conflicts with another activity");
                // }
            }
            var CreatedActivities = mycontext.Activities.Where(u => u.UserId == ActiveUser.UserId).Include(a => a.Coordinator).ToList();

            foreach (var activity in CreatedActivities)
            {
                DateTime start_date = activity.Date;
                DateTime end_date   = start_date.AddMinutes((double)activity.Duration);
                Console.WriteLine(end_date);
                DateTime activity_date     = newActivity.Date;
                DateTime activity_end_date = activity_date.AddMinutes((double)newActivity.Duration);
                // if(activity_date < start_date && activity_end_date < start_date)
                // {
                //     newActivity.Date = newActivity.Date;
                //     newActivity.Duration = newActivity.Duration;
                // }
                // else if (activity_date > start_date && activity_date > end_date )
                // {
                //     newActivity.Date = newActivity.Date;
                //     newActivity.Duration = newActivity.Duration;
                // }
                // else
                // {
                //     ModelState.AddModelError("Date", "Activity conflicts with another activity");
                // }
            }
            if (Request.Form["dur"] == "minutes")
            {
                newActivity.Duration = newActivity.Duration;
            }
            if (Request.Form["dur"] == "hours")
            {
                newActivity.Duration = newActivity.Duration * 60;
            }
            if (Request.Form["dur"] == "days")
            {
                newActivity.Duration = newActivity.Duration * 1440;
            }
            // end part 1

            if (ModelState.IsValid)
            {
                Activity theActivity = new Activity()
                {
                    Title       = newActivity.Title,
                    Date        = newActivity.Date,
                    Time        = newActivity.Time,
                    Duration    = newActivity.Duration,
                    Description = newActivity.Description,
                    CreatedAt   = DateTime.Now,
                    UpdatedAt   = DateTime.Now,
                    UserId      = ActiveUser.UserId,
                };
                mycontext.Add(theActivity);
                mycontext.SaveChanges();
                Activity currentActivity   = mycontext.Activities.Where(a => a.UserId == ActiveUser.UserId).Last();
                int      currentActivityId = currentActivity.ActivityId;
                return(Redirect($"ActivityDetails/{currentActivityId}"));
            }
            return(View("NewActivity"));
        }