public List <vmWeeklyActivity> GetWeeklyActivityData(long PlayerID, DateTime ActivityDate, Controller ctrl) { var StartDateOfWeek = DateTimeExtensions.StartOfWeek(ActivityDate, DayOfWeek.Monday); var EndDateOfWeek = StartDateOfWeek.AddDays(6); List <vmWeeklyActivity> ListOfViewModel = new List <vmWeeklyActivity>(); for (DateTime loopDate = StartDateOfWeek; loopDate <= EndDateOfWeek; loopDate = loopDate.AddDays(1)) { var data = db.PlayerWeeklyActivities.Where(m => m.PlayerID == PlayerID && m.ActivityDate == loopDate).OrderBy(o => o.PlayerWeeklyActivityID); if (data.Count() == 0) { //Add it into DB and Load in the GUI after getting PlayerWeeklyActivityID PlayerWeeklyActivityExt m = new PlayerWeeklyActivityExt() { PlayerID = PlayerID, ActivityDate = loopDate }; string Msg = ""; bool status = true; m.PlayerWeeklyActivityID = CreateOrUpdate(m, ref Msg, ref status, ctrl); vmWeeklyActivity vmWeeklyAct = new vmWeeklyActivity() { PlayerWeeklyActivityID = m.PlayerWeeklyActivityID, PlayerID = m.PlayerID, ActivityDate = m.ActivityDate }; PlayerWeeklyActivityExt mAct = new PlayerWeeklyActivityExt() { PlayerWeeklyActivityID = m.PlayerWeeklyActivityID, ActivityDate = m.ActivityDate, Activity = "", ActivityTime = 0, Completed = false }; vmWeeklyAct.ListOfWeeklyActivities.Add(mAct); ListOfViewModel.Add(vmWeeklyAct); } else { foreach (var item in data) { if (ListOfViewModel.Any(m => m.ActivityDate == item.ActivityDate)) { var model = ListOfViewModel.FirstOrDefault(m => m.ActivityDate == item.ActivityDate); PlayerWeeklyActivityExt mAct = new PlayerWeeklyActivityExt() { PlayerWeeklyActivityID = item.PlayerWeeklyActivityID, ActivityDate = item.ActivityDate, Activity = item.Activity, ActivityTime = item.ActivityTime, Completed = item.Completed }; model.ListOfWeeklyActivities.Add(mAct); } else { vmWeeklyActivity m = new vmWeeklyActivity() { PlayerWeeklyActivityID = item.PlayerWeeklyActivityID, PlayerID = item.PlayerID, ActivityDate = item.ActivityDate }; PlayerWeeklyActivityExt mAct = new PlayerWeeklyActivityExt() { PlayerWeeklyActivityID = item.PlayerWeeklyActivityID, ActivityDate = item.ActivityDate, Activity = item.Activity, ActivityTime = item.ActivityTime, Completed = item.Completed }; m.ListOfWeeklyActivities.Add(mAct); ListOfViewModel.Add(m); } } } } return(ListOfViewModel); }
public List <WeeklyActivityCSV> CreateListOfActivities(ShareActivity model, Controller ctrl) { List <WeeklyActivityCSV> ListOfActivitiesCSV = new List <WeeklyActivityCSV>(); if (model.ShareFrequencyID == 1) //Today { DateTime TodayDate = DateTime.Now.Date; var StartDateOfWeek = DateTimeExtensions.StartOfWeek(TodayDate, DayOfWeek.Monday); var EndDateOfWeek = StartDateOfWeek.AddDays(6); var Activities = db.PlayerWeeklyActivities.Where(m => m.PlayerID == model.PlayerID && (m.ActivityDate >= StartDateOfWeek && m.ActivityDate <= EndDateOfWeek)).OrderBy(o => o.ActivityDate).ToList().Select(m => MAP_To_CSV(m)).ToList(); for (DateTime loopDate = StartDateOfWeek; loopDate <= EndDateOfWeek; loopDate = loopDate.AddDays(1)) { if (Activities.Any(m => IsDateMatched(m.ActivityDate, loopDate)) == false) { WeeklyActivityCSV m = new WeeklyActivityCSV() { ActivityDate = loopDate.ToString("dd/MM/yyyy"), Activity = "", ActivityTime = "", Completed = "" }; Activities.Add(m); } } ListOfActivitiesCSV.AddRange(Activities); } else if (model.ShareFrequencyID == 2) //Last 7 Days { var StartDateOfWeek = DateTimeExtensions.StartOfWeek(DateTime.Now.Date.AddDays(-7), DayOfWeek.Monday); var EndDateOfWeek = StartDateOfWeek.AddDays(6); var Activities = db.PlayerWeeklyActivities.Where(m => m.PlayerID == model.PlayerID && (m.ActivityDate >= StartDateOfWeek && m.ActivityDate <= EndDateOfWeek)).OrderBy(o => o.ActivityDate).ToList().Select(m => MAP_To_CSV(m)).ToList(); for (DateTime loopDate = StartDateOfWeek; loopDate <= EndDateOfWeek; loopDate = loopDate.AddDays(1)) { if (Activities.Any(m => IsDateMatched(m.ActivityDate, loopDate)) == false) { WeeklyActivityCSV m = new WeeklyActivityCSV() { ActivityDate = loopDate.ToString("dd/MM/yyyy"), Activity = "", ActivityTime = "", Completed = "" }; Activities.Add(m); } } ListOfActivitiesCSV.AddRange(Activities); } else if (model.ShareFrequencyID == 3) //Last Month { var StartDateOfWeek = DateTimeExtensions.StartOfWeek(DateTime.Now.Date.AddDays(-30), DayOfWeek.Monday); var EndDateOfWeek = DateTime.Now.Date; var Activities = db.PlayerWeeklyActivities.Where(m => m.PlayerID == model.PlayerID && (m.ActivityDate >= StartDateOfWeek && m.ActivityDate <= EndDateOfWeek)).OrderBy(o => o.ActivityDate).ToList().Select(m => MAP_To_CSV(m)).ToList(); for (DateTime loopDate = StartDateOfWeek; loopDate <= EndDateOfWeek; loopDate = loopDate.AddDays(1)) { if (Activities.Any(m => IsDateMatched(m.ActivityDate, loopDate)) == false) { WeeklyActivityCSV m = new WeeklyActivityCSV() { ActivityDate = loopDate.ToString("dd/MM/yyyy"), Activity = "", ActivityTime = "", Completed = "" }; Activities.Add(m); } } ListOfActivitiesCSV.AddRange(Activities); } else if (model.ShareFrequencyID == 4) //Date Range { var StartDate = model.Activity_ShareDateFrom.Value; var EndDate = model.Activity_ShareDateTo.Value; var Activities = db.PlayerWeeklyActivities.Where(m => m.PlayerID == model.PlayerID && (m.ActivityDate >= StartDate && m.ActivityDate <= EndDate)).OrderBy(o => o.ActivityDate).ToList().Select(m => MAP_To_CSV(m)).ToList(); for (DateTime loopDate = StartDate; loopDate <= EndDate; loopDate = loopDate.AddDays(1)) { if (Activities.Any(m => IsDateMatched(m.ActivityDate, loopDate)) == false) { WeeklyActivityCSV m = new WeeklyActivityCSV() { ActivityDate = loopDate.ToString("dd/MM/yyyy"), Activity = "", ActivityTime = "", Completed = "" }; Activities.Add(m); } } ListOfActivitiesCSV.AddRange(Activities); } return(ListOfActivitiesCSV); }