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")); } }
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); }
private ActivitySummeryViewModel CreateActivity(RandomizeActivitySummeriesViewModel randomActivitySummeryViewModel, string userId) { ActivitySummeryViewModel activitySummeryViewModel = InitiateActivitySummeryStandardProperties(randomActivitySummeryViewModel, userId); activitySummeryViewModel.WeekDayId = CreateActivityWeekDayId(activitySummeryViewModel, randomActivitySummeryViewModel); CreateActivityTimeSpan(activitySummeryViewModel, randomActivitySummeryViewModel); return(activitySummeryViewModel); }
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); }
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")); } }
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); }
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(); } }
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; } } } }