Example #1
0
 public void CreateActivitySummery(ActivitySummeryViewModel activitySummeryViewModel, string userId)
 {
     try
     {
         ActivitySummery activitySummery = new ActivitySummery()
         {
             ActivityId          = activitySummeryViewModel.ActivityId,
             WeekDayId           = activitySummeryViewModel.WeekDayId,
             UserId              = userId,
             StartTime           = activitySummeryViewModel.StartTime,
             EndTime             = activitySummeryViewModel.EndTime,
             ActivityDescription = activitySummeryViewModel.Description,
             Activity            = _schemaRepository.GetSpecificActivity(activitySummeryViewModel.ActivityId),
             WeekDay             = _schemaRepository.GetSpecificWeekDay(activitySummeryViewModel.WeekDayId)
         };
         _schemaRepository.CreateActivitySummery(activitySummery);
         _schemaRepository.Save();
         _schemaRepository.Dispose();
         _schemaRepository = new SchemaRepository();
     }
     catch (Exception)
     {
         throw new Exception("Something went wrong when trying to save the activity summery");
     }
 }
 public ActionResult CreateSchema([Bind(Include = "ActivityId, WeekDayId, Name, Description, StartTime, EndTime")] ActivitySummeryViewModel activitySummeryViewModel)
 {
     try
     {
         if (User.Identity.IsAuthenticated)
         {
             if (ModelState.IsValid)
             {
                 try
                 {
                     activitySummeryViewModel.UserId = User.Identity.GetUserId();
                     _convertService.CreateActivitySummery(activitySummeryViewModel, User.Identity.GetUserId());
                     return(PartialView("_ShowSchema", _convertService.GetWeekDayViewModels(User.Identity.GetUserId())));
                 }
                 catch (Exception)
                 {
                     TempData["ErrorMessage"] = "Something went wrong when trying to create a schema";
                     return(RedirectToAction("Index"));
                 }
             }
             TempData["ErrorMessage"] = "Something is wrong with the information sent to the server. Please try again!";
             return(PartialView("_CreateSchema"));
         }
         else
         {
             return(RedirectToAction("Login", "Account"));
         }
     }
     catch (Exception)
     {
         return(View("Error"));
     }
 }
Example #3
0
        private int CreateActivityWeekDayId(ActivitySummeryViewModel activitySummeryViewModel, RandomizeActivitySummeriesViewModel randomActivitySummeryViewModel)
        {
            int weekDayId;

            do
            {
                weekDayId = 0;
                if (randomActivitySummeryViewModel.WeekDayId != null)
                {
                    if (randomActivitySummeryViewModel.ActivityTimesCountsInWeek < randomActivitySummeryViewModel.WeekDayId.Count())
                    {
                        weekDayId = randomActivitySummeryViewModel.WeekDayId[RandomNumber(0, randomActivitySummeryViewModel.WeekDayId.Count())];
                    }
                    else
                    {
                        foreach (int id in randomActivitySummeryViewModel.WeekDayId)
                        {
                            if (!ActivitySummeries.Last().FindAll(x => x.ActivityId == activitySummeryViewModel.ActivityId).
                                Exists(x => x.WeekDayId == id) && weekDayId == 0)
                            {
                                weekDayId = id;
                            }
                        }
                    }
                }
                if (weekDayId == 0)
                {
                    weekDayId = RandomNumber(1, 8);
                }
            } while (ActivitySummeries.Last().FindAll(x => x.ActivityId == activitySummeryViewModel.ActivityId).
                     Exists(x => x.WeekDayId == weekDayId));

            return(weekDayId);
        }
Example #4
0
        private ActivitySummeryViewModel CreateActivity(RandomizeActivitySummeriesViewModel randomActivitySummeryViewModel, string userId)
        {
            ActivitySummeryViewModel activitySummeryViewModel = InitiateActivitySummeryStandardProperties(randomActivitySummeryViewModel, userId);

            activitySummeryViewModel.WeekDayId = CreateActivityWeekDayId(activitySummeryViewModel, randomActivitySummeryViewModel);
            CreateActivityTimeSpan(activitySummeryViewModel, randomActivitySummeryViewModel);


            return(activitySummeryViewModel);
        }
Example #5
0
        private ActivitySummeryViewModel InitiateActivitySummeryStandardProperties(RandomizeActivitySummeriesViewModel randomActivitySummeryViewModel, string userId)
        {
            ActivitySummeryViewModel activitySummeryViewModel = new ActivitySummeryViewModel()
            {
                ActivityId        = randomActivitySummeryViewModel.ActivityId,
                ActivitySummeryId = 0,
                UserId            = userId,
                Name        = randomActivitySummeryViewModel.ActivityName,
                Description = randomActivitySummeryViewModel.Description
            };

            return(activitySummeryViewModel);
        }
Example #6
0
        private ActivitySummeryViewModel CreateBreak(TimeSpan breakStartTime, int weekDayId, string userId)
        {
            ActivitySummeryViewModel breakInActivitySummery = new ActivitySummeryViewModel()
            {
                ActivityId        = 9,
                ActivitySummeryId = 0,
                UserId            = userId,
                Name        = "Break",
                Description = "Time to take a break",
                StartTime   = breakStartTime,
                EndTime     = breakStartTime + new TimeSpan(0, 20, 0),
                WeekDayId   = weekDayId
            };

            return(breakInActivitySummery);
        }
 public ActionResult Edit([Bind(Include = "ActivitySummeryId, ActivityId, WeekDayId, Name, Description, StartTime, EndTime")] ActivitySummeryViewModel activitySummeryViewModel)
 {
     if (ModelState.IsValid)
     {
         if (User.Identity.IsAuthenticated)
         {
             if (activitySummeryViewModel != null)
             {
                 try
                 {
                     if (_convertService.CheckIfActivitySummeryIdBelongsToUser(User.Identity.GetUserId(), activitySummeryViewModel.ActivitySummeryId))
                     {
                         activitySummeryViewModel.UserId = User.Identity.GetUserId();
                         _convertService.UpdateActivitySummery(activitySummeryViewModel);
                         TempData["successMessage"] = "You changed the activity";
                         return(RedirectToAction("index"));
                     }
                     else
                     {
                         TempData["errorMessage"] = "You tried to change userId which is not allowed";
                         return(RedirectToAction("index"));
                     }
                 }
                 catch (Exception)
                 {
                     TempData["ErrorMessage"] = "Something went wrong when trying to edit the specific activity";
                     return(RedirectToAction("Index"));
                 }
             }
             else
             {
                 TempData["ErrorMessage"] = "Something went wrong when trying to edit a specific activity, try again!";
                 return(RedirectToAction("Index"));
             }
         }
         else
         {
             return(RedirectToAction("Login", "Account"));
         }
     }
     else
     {
         return(View("Edit"));
     }
 }
Example #8
0
        private void CreateActivityTimeSpan(ActivitySummeryViewModel activitySummeryViewModel, RandomizeActivitySummeriesViewModel randomActivitySummeryViewModel)
        {
            bool isActivityTimeSpanNotGood = false;

            do
            {
                int activityStartTime = RandomNumber(6, 22);
                activitySummeryViewModel.StartTime = new TimeSpan(activityStartTime, 0, 0);
                activitySummeryViewModel.EndTime   = new TimeSpan(activityStartTime + randomActivitySummeryViewModel.ActivityTime, 0, 0);

                var allActivitySummeries = ActivitySummeries.Concat(_userWeekDay.Select(x => x.ActivitiySummeries));

                foreach (var activityList in allActivitySummeries)
                {
                    foreach (var activity in activityList.FindAll(x => x.WeekDayId == activitySummeryViewModel.WeekDayId))
                    {
                        //Check if the new activity starts after previous activity

                        if (activitySummeryViewModel.StartTime < activitySummeryViewModel.EndTime)
                        {
                            if (activitySummeryViewModel.StartTime >= activity.EndTime)
                            {
                                isActivityTimeSpanNotGood = false;
                            }
                            // Check if the new activity starts earlier and do not overlap the other acitivity starttime
                            else if (activitySummeryViewModel.StartTime < activity.StartTime && activitySummeryViewModel.EndTime <= activity.StartTime)
                            {
                                isActivityTimeSpanNotGood = false;
                            }
                            else
                            {
                                isActivityTimeSpanNotGood = true;
                            }
                        }
                        else
                        {
                            isActivityTimeSpanNotGood = true;
                        }
                    }
                }
            } while (isActivityTimeSpanNotGood);
        }
Example #9
0
        public ActivitySummeryViewModel GetActivityViewModel(int id)
        {
            var activity = _schemaRepository.GetSpecificActivitySummery(id);

            if (activity != null)
            {
                var activityView = new ActivitySummeryViewModel()
                {
                    ActivitySummeryId = activity.ActivitySummeryId,
                    ActivityId        = activity.ActivityId,
                    WeekDayId         = activity.WeekDayId,
                    Name        = activity.Activity.ActivityName,
                    StartTime   = activity.StartTime,
                    EndTime     = activity.EndTime,
                    Description = activity.ActivityDescription
                };
                return(activityView);
            }
            else
            {
                throw new NullReferenceException();
            }
        }
Example #10
0
        private void CreateActivitiesForStudy(RandomizeActivitySummeriesViewModel randomActivitySummeryViewModel, string userId)
        {
            ActivitySummeryViewModel activitySummeryViewModel = InitiateActivitySummeryStandardProperties(randomActivitySummeryViewModel, userId);

            activitySummeryViewModel.WeekDayId = CreateActivityWeekDayId(activitySummeryViewModel, randomActivitySummeryViewModel);

            List <ActivitySummeryViewModel> newlist = new List <ActivitySummeryViewModel>(100)
            {
                new ActivitySummeryViewModel()
            };
            List <ActivitySummeryViewModel> specificDayList = new List <ActivitySummeryViewModel>(100);

            ActivitySummeries.ForEach(delegate(List <ActivitySummeryViewModel> activityList)
            {
                newlist.AddRange(activityList);
            });

            _userWeekDay.ForEach(delegate(WeekDayViewModel weekDay)
            {
                newlist.AddRange(weekDay.ActivitiySummeries);
            });

            specificDayList = newlist.Where(x => x.WeekDayId == activitySummeryViewModel.WeekDayId).OrderBy(y => y.StartTime).ToList();

            if (specificDayList.Count == 0 || specificDayList[0].StartTime >= new TimeSpan(9, 20, 0))
            {
                activitySummeryViewModel.StartTime = new TimeSpan(8, 0, 0);
                activitySummeryViewModel.EndTime   = activitySummeryViewModel.StartTime + new TimeSpan(1, 0, 0);
            }
            else
            {
                bool isActivityNotAdded = false;
                for (int i = 0; i < specificDayList.Count(); i++)
                {
                    if (isActivityNotAdded && specificDayList.Count() == 1 || i == (specificDayList.Count() - 1))
                    {
                        activitySummeryViewModel.StartTime = specificDayList[i].EndTime;
                        activitySummeryViewModel.EndTime   = activitySummeryViewModel.StartTime + new TimeSpan(1, 0, 0);
                        isActivityNotAdded = true;
                    }
                    else if (isActivityNotAdded && (specificDayList[i + 1].StartTime - specificDayList[i].EndTime) >= new TimeSpan(1, 20, 0))
                    {
                        activitySummeryViewModel.StartTime = specificDayList[i].EndTime;
                        activitySummeryViewModel.EndTime   = activitySummeryViewModel.StartTime + new TimeSpan(1, 0, 0);
                        isActivityNotAdded = true;
                    }
                }
            }
            ActivitySummeryViewModel firstBreak = CreateBreak(activitySummeryViewModel.EndTime, activitySummeryViewModel.WeekDayId, userId);

            _activitySummeries.Last().Add(activitySummeryViewModel);
            _activitySummeries.Last().Add(firstBreak);

            specificDayList.Add(activitySummeryViewModel);
            specificDayList.Add(firstBreak);
            specificDayList = specificDayList.OrderBy(y => y.StartTime).ToList();

            for (int i = 1; i < randomActivitySummeryViewModel.ActivityTime; i++)
            {
                ActivitySummeryViewModel activitySummeryViewModelNew = InitiateActivitySummeryStandardProperties(randomActivitySummeryViewModel, userId);
                bool isActivityNotAdded = true;

                activitySummeryViewModelNew.WeekDayId = activitySummeryViewModel.WeekDayId;

                for (int j = 0; j < specificDayList.Count(); j++)
                {
                    if (isActivityNotAdded && j == specificDayList.Count() - 1 || isActivityNotAdded && (specificDayList[j + 1].StartTime - specificDayList[j].EndTime) >= new TimeSpan(1, 20, 0))
                    {
                        activitySummeryViewModelNew.StartTime = specificDayList[j].EndTime;
                        activitySummeryViewModelNew.EndTime   = activitySummeryViewModelNew.StartTime + new TimeSpan(1, 0, 0);
                        _activitySummeries.Last().Add(activitySummeryViewModelNew);

                        ActivitySummeryViewModel secondBreak = CreateBreak(activitySummeryViewModelNew.EndTime, activitySummeryViewModel.WeekDayId, userId);
                        _activitySummeries.Last().Add(secondBreak);

                        specificDayList.Add(activitySummeryViewModelNew);
                        specificDayList.Add(secondBreak);
                        specificDayList    = specificDayList.OrderBy(y => y.StartTime).ToList();
                        isActivityNotAdded = false;
                    }
                }
            }
        }