/// <summary> /// deleted task base on task track id /// </summary> /// <param name="id"></param> /// <returns></returns> public int DeleteTaskBaseOnId(string id) { int isDeleteRecord = 0; DayTask taskToBeDeleted = databaseHelper.GetDayTaskByTrackId(id); List <DayTask> allTasks = databaseHelper.GetAllDayTasksBaseOnDayMonth(taskToBeDeleted.CreatedAt); //date int tasksToBeDeletedTaskIndex = allTasks.FindIndex(x => x.DayTaskTrackId == id); isDeleteRecord = allTasks.Count; if (tasksToBeDeletedTaskIndex == 0) { // if task was top most in list isDeleteRecord = databaseHelper.DeleteDayTaskByTrackId(id); } else if (tasksToBeDeletedTaskIndex == allTasks.Count - 1) {// if bottom most task is about to delete DayTask prevTask = allTasks[tasksToBeDeletedTaskIndex - 1]; prevTask.SpentTime = null; string isUpdated = databaseHelper.AddDayTask(prevTask); if (isUpdated != null) { isDeleteRecord = databaseHelper.DeleteDayTaskByTrackId(id); } } else {// if any inbetween item is about to delete DayTask prevTask = allTasks[tasksToBeDeletedTaskIndex - 1]; DayTask afterTask = allTasks[tasksToBeDeletedTaskIndex + 1]; prevTask.SpentTime = AppUtil.AppUtil.CalculateSpendedTime(Convert.ToDateTime(prevTask.TaskStartedAt), Convert.ToDateTime(afterTask.TaskStartedAt)); string isUpdated = databaseHelper.AddDayTask(prevTask); if (isUpdated != null) { isDeleteRecord = databaseHelper.DeleteDayTaskByTrackId(id); } } return(isDeleteRecord); }
////////////////// Day Task Task//////////////////////////////////// public string AddDayTask(DayTask dayTask) { // string recentAddedEnterdTask = 0; // used it to find the total time used (Spended)by currently running task when user enter the new task try { lock (collisionLock) { if (dayTask.DayTaskTrackId != null) //update record { database.Update(dayTask); return(dayTask.DayTaskTrackId); } else { // enter as new entry dayTask.DayTaskTrackId = Guid.NewGuid().ToString(); int i = database.Insert(dayTask); if (i > 0) { return(dayTask.DayTaskTrackId); } else { return(null); } } } } catch (Exception ex) { //todo MessagingCenter.Send((App)Xamarin.Forms.Application.Current, AppConstant.ErrorEvent, ex.ToString()); return(null); } }
/// <summary> /// when user menually specify the position for task to add in list then this method invoke to maintain the desire sequence of user /// </summary> /// <param name="position"></param> public void ArrangeTask(string date, string position = "Up") { DayTask task = CurrentSelectedDayTask; //selected task from the list (to which up/down new task added) List <DayTask> allTasks = databaseHelper.GetAllDayTasksBaseOnDayMonth(date); int selectedTaskIndex = allTasks.FindIndex(x => x.DayTaskTrackId == CurrentSelectedDayTask.DayTaskTrackId); DayTask recentAddedTask = databaseHelper.GetLatestInsertedDayTask(); int recentTaskIndex = allTasks.FindIndex(x => x.DayTaskTrackId == recentAddedTask.DayTaskTrackId); allTasks.RemoveAt(recentTaskIndex); if (position.Equals("Up")) { allTasks.Insert(selectedTaskIndex, recentAddedTask); } else if (position.Equals("Down")) { allTasks.Insert(selectedTaskIndex + 1, recentAddedTask); } else { } int r = databaseHelper.DeleteAllDayTasksBaseOnDayMonth(date); if (r > 0) { databaseHelper.InsertedGroupOfDayTaskk(allTasks); } }
public float GetFirstResult(Game game, Sinner.SocialStatus tempSocialStatus, DayTask task) { switch (task) { case DayTask.ATTRACT_FOLLOWERS: return(game.sinners[tempSocialStatus].strength * 0.03f * (skills[Skills.CUNNING] + AddSkillByPerk(Skills.CUNNING))); case DayTask.GIVE_ALMS: return(-100 * (1f + (skills[Skills.CUNNING] + AddSkillByPerk(Skills.CUNNING)) / 10f)); case DayTask.SELL_MIRACULOUS_BALMS: return(-game.sinners[tempSocialStatus].faith * 0.05f * (skills[Skills.CUNNING] + AddSkillByPerk(Skills.CUNNING))); case DayTask.SELL_INDULGENCES: return(game.sinners[tempSocialStatus].wealth * game.sinners[tempSocialStatus].sins * game.sinners[tempSocialStatus].faith * game.sinners[tempSocialStatus].strength / 10000 * GoldMultiplier()); case DayTask.DISTRACT_THE_INQUISITION: return(0.05f * (skills[Skills.MIND] + AddSkillByPerk(Skills.MIND))); case DayTask.PREACHING: return(game.sinners[tempSocialStatus].faith * 0.05f * (skills[Skills.SPIRIT] + AddSkillByPerk(Skills.SPIRIT))); case DayTask.JOINT_CHANTING: return(0.05f * (skills[Skills.SPIRIT] + AddSkillByPerk(Skills.SPIRIT))); case DayTask.ACCEPTANCE_OF_THE_ELECT: return(game.sinners[tempSocialStatus].strength * game.sinners[tempSocialStatus].wealth * 5 * (skills[Skills.SPIRIT] + AddSkillByPerk(Skills.SPIRIT)) / 10f * GoldMultiplier()); case DayTask.CONDUCT_A_SERVICE: return(1); } return(0); }
private TabContent QryTabContent(List <string> secLst) { //List<DateTime> dtLst = new List<DateTime> {new DateTime(2019,6,15), new DateTime(2019, 6, 16) }; List <DateTime> dtLst = new List <DateTime>(); { var dt = DateTime.Now; var wd = dt.DayOfWeek; for (int i = 1; i < 8; i++) { dtLst.Add(dt.AddDays(i - (int)wd)); } } var tc = new TabContent(); tc.planCols = new List <string> { "Kế hoạch", "Ban", "Tình trạng" }; tc.taskCols = new List <string> { "Công việc", "Ban", "Tình trạng" }; tc.recs = new List <DayTask>(); //qry task foreach (DateTime dt in dtLst) { List <TaskRec> tasks = QryTask(dt, secLst); var rec = new DayTask { date = dt.ToString(lConfigMng.GetDisplayDateFormat()), tasks = tasks }; tc.recs.Add(rec); } return(tc); }
/// <summary> /// update the day task /// </summary> /// <param name="dayTask"></param> /// <returns></returns> public string UpDateDayTask(DayTask dayTask) { string isUpdatededTask = databaseHelper.AddDayTask(dayTask); if (isUpdatededTask != null) { return(isUpdatededTask); } return(null); }
string prevSelectedTaskTitle; //previously selected task title in case of edit request public AddDayTaskPopupViewModel(INavigation nav) { StartTime = DateTime.Now; taskList = new ObservableCollection <string>(); tasktypesList = new List <string>(); navigation = nav; isDayTaskEditRequest = false; _newDayTask = new DayTask(); TasktypesList = AppUtil.AppUtil.TaskksTypesList(); }
/// <summary> /// Add task from Stats page /// </summary> /// <param name="dayTask"></param> /// <param name="position"></param> public AddDayTaskPopupPageView(DayTask dayTask, string position = "Up") { InitializeComponent(); addDayTaskPopupViewModel = new AddDayTaskPopupViewModel(Navigation); BindingContext = addDayTaskPopupViewModel; SelectedDayTask = dayTask; insertedTaskPosition = position; isDayTaskEditRequest = false; addDayTaskPopupViewModel.SelectedTask = "Select Task"; addDayTaskPopupViewModel.SelectedTaskType = "Select Task Type"; }
/// <summary> /// retrieve and return the dAY task base on specific track id /// </summary> /// <param name="trackId"></param> /// <returns></returns> public DayTask GetDayTaskByTrackId(string trackId) { DayTask task = databaseHelper.GetDayTaskByTrackId(trackId); if (task != null) { return(task); } else { return(null); } }
/// <summary> /// retrieve and return the most lastly inserted dAY task /// </summary> /// <returns></returns> public DayTask GetLastlyAddedDayTask() { DayTask task = databaseHelper.GetLatestInsertedDayTask(); if (task != null) { return(task); } else { return(null); } }
/// <summary> /// List item selected handler /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DayTaskList_ItemSelected(object sender, SelectedItemChangedEventArgs e) { if (e.SelectedItem == null) { isAnyItemSelected = false; return; //ItemSelected is called on deselection, which results in SelectedItem being set to null } else { isAnyItemSelected = true; var selectedTask = ((ListView)sender).SelectedItem; selectedDayTask = (DayTask)selectedTask; } }
public int GetDaysResult(DayTask task) { switch (task) { case DayTask.CONDUCT_A_SERVICE: return((skills[Skills.MIND] + AddSkillByPerk(Skills.MIND)) / 2 + AddDays()); case DayTask.DISTRACT_THE_INQUISITION: return((skills[Skills.MIND] + AddSkillByPerk(Skills.MIND)) / 3 + AddDays()); case DayTask.JOINT_CHANTING: return((skills[Skills.SPIRIT] + AddSkillByPerk(Skills.SPIRIT)) / 3 + AddDays()); } return(0); }
/// <summary> /// Retrieve task from DB bases on id /// populate it to view /// </summary> /// <param name="id"></param> public void RetrieveAndPopulateTaskToViewBaseOnId(string id) { try { DayTask dayTask = databaseHelper.GetDayTaskByTrackId(id); CurrentSelectedDayTask = dayTask; SelectedTaskType = dayTask.TaskType; SelectedTask = dayTask.TaskTitle; prevSelectedTaskTitle = dayTask.TaskTitle; isDayTaskEditRequest = true; StartTime = Convert.ToDateTime(dayTask.TaskStartedAt); }catch (Exception ex) { MessagingCenter.Send((App)Xamarin.Forms.Application.Current, AppConstant.ErrorEvent, ex.ToString()); } }
/// <summary> /// find range items from list to add the new item(day task) /// </summary> public void SaveTask() { try { DayTask dayTask = PrepareDayTaskModel(); bool isFoundFlage = false; List <DayTask> allTasks = databaseHelper.GetAllDayTasksBaseOnDayMonth(dayTask.CreatedAt); DateTime st = new DateTime(Convert.ToDateTime(dayTask.CreatedAt).Year, Convert.ToDateTime(dayTask.CreatedAt).Month, Convert.ToDateTime(dayTask.CreatedAt).Day, Convert.ToDateTime(dayTask.CreatedAt).Hour, Convert.ToDateTime(dayTask.CreatedAt).Minute, Convert.ToDateTime(dayTask.CreatedAt).Second, Convert.ToDateTime(dayTask.TaskStartedAt).Kind); if (allTasks.Count > 0) { // if there are more than one item in the list then this block invoke isFoundFlage = true; //find the rang items(time range) in between item/task need to move to mainain the sequence for (int i = 0; i < allTasks.Count; i++) { if (DateTime.Compare(Convert.ToDateTime(Convert.ToDateTime(dayTask.TaskStartedAt).ToString("hh:mm:ss tt")), Convert.ToDateTime(Convert.ToDateTime(allTasks[i].TaskStartedAt).ToString("hh:mm:ss tt"))) < 0) { //if appropriate range item found then add task between it SaveDayTask(allTasks[i], dayTask, "Up"); isFoundFlage = false; break; } } if (isFoundFlage) { //if no appropriate range item found and there are more than one item in the list then //needs to append task at bottom of list SaveDayTask(allTasks[allTasks.Count - 1], dayTask, "Down"); isFoundFlage = false; } } else if (allTasks.Count == 0) { //if there is not item in current day then add it as a first day task string isUpdated = databaseHelper.AddDayTask(dayTask); if (isUpdated != null) { Settings.LatestInsertedDayTaskTrackId = isUpdated; OpenTaskStatsViewPageHandler(DateTime.Now.ToString("yyyy-MM-dd"), null); } } }catch (Exception ex) { MessagingCenter.Send((App)Xamarin.Forms.Application.Current, AppConstant.ErrorEvent, ex.ToString()); } }
public float GetSecondResult(Game game, Sinner.SocialStatus tempSocialStatus, DayTask task) { switch (task) { case DayTask.GIVE_ALMS: return(-5 * (skills[Skills.CUNNING] + AddSkillByPerk(Skills.CUNNING)) / 100f * AttentionMultiplier()); case DayTask.SELL_MIRACULOUS_BALMS: return(game.sinners[tempSocialStatus].wealth * game.sinners[tempSocialStatus].strength * 5 * (skills[Skills.CUNNING] + AddSkillByPerk(Skills.CUNNING)) / 100f * GoldMultiplier()); case DayTask.SELL_INDULGENCES: return((1 - game.sinners[tempSocialStatus].faith / 100) * game.sinners[tempSocialStatus].strength); case DayTask.ACCEPTANCE_OF_THE_ELECT: return(-game.sinners[tempSocialStatus].sins * 0.05f * (skills[Skills.SPIRIT] + AddSkillByPerk(Skills.SPIRIT))); } return(0); }
/// <summary> /// List item selected handler /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DayTaskList_ItemSelected(object sender, SelectedItemChangedEventArgs e) { if (e.SelectedItem == null) { return; //ItemSelected is called on deselection, which results in SelectedItem being set to null } else { isAnyItemSelected = true; var selectedTask = ((ListView)sender).SelectedItem; selectedDayTask = (DayTask)selectedTask; //selectedDayTask = CurrentlyOpenCarocelPage.ModelTaskForDayList.First<DayTask>(x => x.DayTaskTrackId == ((DayTask)selectedTask).DayTaskTrackId); ((ListView)sender).SelectedItem = null; foreach (var r in CurrentlyOpenCarocelPage.ModelTaskForDayList) { r.IsSelected = false; } selectedDayTask.IsSelected = true; } }
/// <summary> /// Formalize the new day task /// </summary> /// <returns></returns> public DayTask PrepareDayTaskModel() { try { DayTask dayTask = new DayTask(); dayTask.TaskTitle = CurrentSelectedTaskk.Title; dayTask.TaskType = CurrentSelectedTaskk.TaskType; dayTask.IsSelected = false; dayTask.DayTaskTrackId = null; dayTask.TaskStartedAt = AppUtil.AppUtil.CurrrentDateTimeInSqliteSupportedFormate(); dayTask.SpentTime = null; dayTask.UpdatedAt = AppUtil.AppUtil.CurrrentDateTimeInSqliteSupportedFormate(); // DateTime currentDateTime = new DateTime(CurrentSelectedDate.Year, CurrentSelectedDate.Month, CurrentSelectedDate.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second, DateTimeKind.Local); dayTask.CreatedAt = currentDateTime.ToString("yyyy-MM-dd hh:mm:ss"); dayTask.BGColor = CurrentSelectedTaskk.BGColor; dayTask.RefTaskTrackId = CurrentSelectedTaskk.TaskTrackId; return(dayTask); }catch (Exception ex) { MessagingCenter.Send((App)Xamarin.Forms.Application.Current, AppConstant.ErrorEvent, ex.ToString()); return(null); } }
private void addTast_Click(object sender, RoutedEventArgs e) { string taskDefinition = textBoxDayTask.Text; if (taskDefinition == "") return; else { DayTask task = new DayTask(selectedDate, taskDefinition); if (!dayTaskCollection.ContainsKey(selectedDate)) { dayTaskCollection.Add(selectedDate, task); } else { DayTask updatedDayTask; dayTaskCollection.TryGetValue(selectedDate, out updatedDayTask); updatedDayTask.Task = taskDefinition; } } }
public bool IsSkillAvailable(DayTask skill) { switch (skill) { case DayTask.GIVE_ALMS: return(skills[Skills.CUNNING] >= 7); case DayTask.SELL_MIRACULOUS_BALMS: return(skills[Skills.CUNNING] >= 9); case DayTask.CONDUCT_A_SERVICE: return(skills[Skills.MIND] >= 7); case DayTask.DISTRACT_THE_INQUISITION: return(skills[Skills.MIND] >= 9); case DayTask.JOINT_CHANTING: return(skills[Skills.SPIRIT] >= 7); case DayTask.ACCEPTANCE_OF_THE_ELECT: return(skills[Skills.SPIRIT] >= 9); } return(true); }
public DayTask GetDayTaskByTrackId(string trackId) { try { lock (collisionLock) { if (trackId != null) { DayTask task = database.Table <DayTask>().First(x => x.DayTaskTrackId == trackId); return(task); } else { return(null); } } } catch (Exception ex) { MessagingCenter.Send((App)Xamarin.Forms.Application.Current, AppConstant.ErrorEvent, ex.ToString()); return(null); } }
/// <summary> /// to save day task from stat page on specific position /// 'CurrentSelectedDayTask' point to task which selected by the user from the list with the intention to add new task according to it (up /bottom) /// </summary> /// <param name="task"> comming task, currently selected by user; to up or down new task to be added</param> /// <param name="position">possible values are up or down</param> /// <param name="isEditRequest">is this method invoke for the updation of a task or not </param> /// <param name="TaskToBeDeleted">in case of updation this param we requred.this perme hold dayTas that will b deleted after the its updated form saved successfully in db </param> public string SaveDayTask(DayTask task, string position = "Up", bool isEditRequest = false, DayTask TaskToBeDeleted = null) { try { DayTask prevTask, afterTask; List <DayTask> allTasks = databaseHelper.GetAllDayTasksBaseOnDayMonth(task.CreatedAt); CurrentSelectedDayTask = task; //selected task from the list (to which up/down new task to be added) // CurrentSelectedDayTask = task; PrePareNewTask(); if (task != null) // change the date of newly created task according to the Date of the Selected (selected task mean : to up or down new task will be added) { NewDayTask.TaskStartedAt = new DateTime(Convert.ToDateTime(task.CreatedAt).Year, Convert.ToDateTime(task.CreatedAt).Month, Convert.ToDateTime(task.CreatedAt).Day, StartTime.Hour, StartTime.Minute, StartTime.Second, StartTime.Kind).ToString("yyyy-MM-dd hh:mm:ss tt"); NewDayTask.CreatedAt = new DateTime(Convert.ToDateTime(task.CreatedAt).Year, Convert.ToDateTime(task.CreatedAt).Month, Convert.ToDateTime(task.CreatedAt).Day, StartTime.Hour, StartTime.Minute, StartTime.Second, StartTime.Kind).ToString("yyyy-MM-dd hh:mm:ss"); } // change date for the selected time DateTime st = new DateTime(Convert.ToDateTime(task.CreatedAt).Year, Convert.ToDateTime(task.CreatedAt).Month, Convert.ToDateTime(task.CreatedAt).Day, StartTime.Hour, StartTime.Minute, StartTime.Second, StartTime.Kind); string taskId = null; if (position.Equals("Up")) //add task above the selected task { int selectedTaskIndex = allTasks.FindIndex(x => x.DayTaskTrackId == task.DayTaskTrackId); if (selectedTaskIndex > 0) { prevTask = allTasks[selectedTaskIndex - 1]; if (DateTime.Compare(Convert.ToDateTime(st.ToString("hh:mm:ss tt")), Convert.ToDateTime(Convert.ToDateTime(prevTask.TaskStartedAt).ToString("hh:mm:ss tt"))) > 0 && DateTime.Compare(Convert.ToDateTime(st.ToString("hh:mm:ss tt")), Convert.ToDateTime(Convert.ToDateTime(task.TaskStartedAt).ToString("hh:mm:ss tt"))) < 0) { //in up between prevTask.SpentTime = AppUtil.AppUtil.CalculateSpendedTime(Convert.ToDateTime(Convert.ToDateTime(prevTask.TaskStartedAt).ToString("hh:mm:ss tt")), Convert.ToDateTime(st.ToString("hh:mm:ss tt"))); databaseHelper.AddDayTask(prevTask); NewDayTask.SpentTime = AppUtil.AppUtil.CalculateSpendedTime(Convert.ToDateTime(st.ToString("hh:mm:ss tt")), Convert.ToDateTime(Convert.ToDateTime(task.TaskStartedAt).ToString("hh:mm:ss tt"))); taskId = databaseHelper.AddDayTask(NewDayTask); } else { navigation.PopAllPopupAsync(); Application.Current.MainPage.DisplayAlert(AppConstant.SelectePositionToAddTaskTitleText, AppConstant.CurrentTaskIsInProgressText, "OK"); } } else if (selectedTaskIndex == 0) // add task at top most of list { if (DateTime.Compare(Convert.ToDateTime(st.ToString("hh:mm:ss tt")), Convert.ToDateTime(Convert.ToDateTime(task.TaskStartedAt).ToString("hh:mm:ss tt"))) < 0) { //inserted top most NewDayTask.SpentTime = AppUtil.AppUtil.CalculateSpendedTime(Convert.ToDateTime(st.ToString("hh:mm:ss tt")), Convert.ToDateTime(Convert.ToDateTime(task.TaskStartedAt).ToString("hh:mm:ss tt"))); taskId = databaseHelper.AddDayTask(NewDayTask); } else { navigation.PopAllPopupAsync(); Application.Current.MainPage.DisplayAlert(AppConstant.SelectePositionToAddTaskTitleText, AppConstant.CurrentTaskIsInProgressText, "OK"); } } else { //todo } } else if (position.Equals("Down")) // add task bottom of selected task { int selectedTaskIndex = allTasks.FindIndex(x => x.DayTaskTrackId == task.DayTaskTrackId); if (selectedTaskIndex < allTasks.Count - 1) { afterTask = allTasks[selectedTaskIndex + 1]; if (DateTime.Compare(Convert.ToDateTime(st.ToString("hh:mm:ss tt")), Convert.ToDateTime(Convert.ToDateTime(task.TaskStartedAt).ToString("hh:mm:ss tt"))) > 0 && DateTime.Compare(Convert.ToDateTime(st.ToString("hh:mm:ss tt")), Convert.ToDateTime(Convert.ToDateTime(afterTask.TaskStartedAt).ToString("hh:mm:ss tt"))) < 0) { //below of selected one task //blow in between task.SpentTime = AppUtil.AppUtil.CalculateSpendedTime(Convert.ToDateTime(Convert.ToDateTime(task.TaskStartedAt).ToString("hh:mm:ss tt")), Convert.ToDateTime(st.ToString("hh:mm:ss tt"))); databaseHelper.AddDayTask(task); NewDayTask.SpentTime = AppUtil.AppUtil.CalculateSpendedTime(Convert.ToDateTime(st.ToString("hh:mm:ss tt")), Convert.ToDateTime(Convert.ToDateTime(afterTask.TaskStartedAt).ToString("hh:mm:ss tt"))); taskId = databaseHelper.AddDayTask(NewDayTask); } else { navigation.PopAllPopupAsync(); Application.Current.MainPage.DisplayAlert(AppConstant.SelectePositionToAddTaskTitleText, AppConstant.CurrentTaskIsInProgressText, "OK"); } } else if (selectedTaskIndex == allTasks.Count - 1) // inserted most bottom of list { if (DateTime.Compare(Convert.ToDateTime(st.ToString("hh:mm:ss tt")), Convert.ToDateTime(task.TaskStartedAt)) > 0) { // SaveTask(); DayTask lastRecord = allTasks[selectedTaskIndex]; lastRecord.SpentTime = AppUtil.AppUtil.CalculateSpendedTime(Convert.ToDateTime(Convert.ToDateTime(lastRecord.TaskStartedAt).ToString("hh:mm:ss tt")), Convert.ToDateTime(st.ToString("hh:mm:ss tt"))); string isUpdated = databaseHelper.AddDayTask(lastRecord); if (isUpdated != null) { taskId = databaseHelper.AddDayTask(NewDayTask); Helpers.Settings.LatestInsertedDayTaskTrackId = taskId; } } else { navigation.PopAllPopupAsync(); Application.Current.MainPage.DisplayAlert(AppConstant.SelectePositionToAddTaskTitleText, AppConstant.CurrentTaskIsInProgressText, "OK"); } } else { //todo } } if (taskId != null) { ArrangeTask(task.CreatedAt, position); navigation.PopAllPopupAsync(); if (isEditRequest) {// notify changes to its subscriber MessagingCenter.Send(this, "UpdateTask", true); } else { // if task added from 'stats' page then need to broadcast 'InsertedTask'. in order to notify changes MessagingCenter.Send(this, "InsertedTask", taskId); } return(taskId); } return(taskId); }catch (Exception ex) { MessagingCenter.Send((App)Xamarin.Forms.Application.Current, AppConstant.ErrorEvent, ex.ToString()); return(""); } }
public void AddDay(DayTask day) { _context.DayTasks.Add(day); }
public void DeleteDay(DayTask day) { _context.DayTasks.Remove(day); }
public ICollection <TaskToDo> GetTasks(DayTask day) { return(_context.TasksToDo.Where(ttd => ttd.Day == day.Id).ToList()); }
public BaseViewModel() { databaseHelper = DatabaseHelper.GetInstance(); database = DependencyService.Get <IDatabaseConnection>().DbConnection(); CurrentSelectedDayTask = new DayTask(); }
//Statis CalenderPageView #endregion /// <summary> /// formalize the models for carocel page list /// find the days in particular month which indicate the count of carocel pages to be in stats page /// </summary> /// <param name="d"></param> public void GetAndSetDayForMonth(string d) { try { CarocelModel PrepareCarocelModel = new CarocelModel(); DateTime FirstDate = new DateTime(CurrentSelectedDate.Year, CurrentSelectedDate.Month, 1); //first date of selected month int daysInMonth = DateTime.DaysInMonth(CurrentSelectedDate.Year, CurrentSelectedDate.Month); // days in selected month ;// count of carocel page for (int i = 1; i <= daysInMonth; i++) { string date = "" + CurrentSelectedDate.Year + "-" + CurrentSelectedDate.Month + "-" + i; // date s of month--->in the following patteren -> year-month-day (day = 1 to end of months) _AllTasksForDay = databaseHelper.GetAllDayTasksBaseOnDayMonth(date); // fetch task for every invidual date of month PrepareCarocelModel.ModelTaskForDayList.Clear(); PrepareCarocelModel.CurrentDateForCurrentCarocel = Convert.ToDateTime(date); string e = DateTime.Now.ToString("yyyy-M-d"); if (Convert.ToDateTime(date).CompareTo(Convert.ToDateTime(e)) == 0) { // if current day date then enable list PrepareCarocelModel.IsEnableCell = true; } else { //disable the list PrepareCarocelModel.IsEnableCell = false; } PrepareCarocelModel.MonthAndDate = Convert.ToDateTime(date).ToString("d MMMM"); for (int j = 0; j < _AllTasksForDay.Count; j++) { // formalize the every task to populate on UI DayTask dt = _AllTasksForDay[j]; dt.TaskStartedAt = Convert.ToDateTime(dt.TaskStartedAt).ToString("h:mm:ss tt"); // change format of date Time like 10:23:02 AM/PM if (dt.SpentTime != null) { dt.SpentTime = AppUtil.AppUtil.FormatTheSpendedTime(dt.SpentTime); // change the format of spended time like 2h and 20m and 44s } PrepareCarocelModel.ModelTaskForDayList.Add(dt); } //Add the newly formalized model to main Croucel list CarocelModel carocelModel = new CarocelModel(); List <DayTask> DeepCopyOfAllDayTaskList = PrepareCarocelModel.ModelTaskForDayList.Take(PrepareCarocelModel.ModelTaskForDayList.Count).ToList(); // take() return the deep copy of every invidual items foreach (DayTask dayTask in DeepCopyOfAllDayTaskList) { carocelModel.ModelTaskForDayList.Add(dayTask); } carocelModel.MonthAndDate = PrepareCarocelModel.MonthAndDate; carocelModel.CurrentDateForCurrentCarocel = Convert.ToDateTime(PrepareCarocelModel.CurrentDateForCurrentCarocel); if (carocelModel.ModelTaskForDayList.Count > 0) { carocelModel.IsShowError = false; carocelModel.IsShowList = true; } else { carocelModel.IsShowError = true; carocelModel.IsShowList = false; } carocelModel.IsEnableCell = PrepareCarocelModel.IsEnableCell; TaskForDayList.Add(carocelModel); } }catch (Exception ex) { MessagingCenter.Send((App)Xamarin.Forms.Application.Current, AppConstant.ErrorEvent, ex.ToString()); } }
/// <summary> /// add new Day Task on appropriate position /// </summary> /// <param name="task">task to up or down new task will be added</param> /// <param name="newTask">new item that is going to b added</param> /// <param name="position">up/down of selected position</param> /// <returns></returns> public string SaveDayTask(DayTask task, DayTask newTask, string position = "Up") { try { DayTask prevTask, afterTask; List <DayTask> allTasks = databaseHelper.GetAllDayTasksBaseOnDayMonth(task.CreatedAt); CurrentSelectedDayTask = task; //selected task from the list (to which up/down new task to be added) // CurrentSelectedDayTask = task; string taskId = null; if (position.Equals("Up")) //add task above the selected task { int selectedTaskIndex = allTasks.FindIndex(x => x.DayTaskTrackId == task.DayTaskTrackId); if (selectedTaskIndex > 0) { prevTask = allTasks[selectedTaskIndex - 1]; if (DateTime.Compare(Convert.ToDateTime(Convert.ToDateTime(newTask.TaskStartedAt).ToString("hh:mm:ss tt")), Convert.ToDateTime(Convert.ToDateTime(prevTask.TaskStartedAt).ToString("hh:mm:ss tt"))) > 0 && DateTime.Compare(Convert.ToDateTime(Convert.ToDateTime(newTask.TaskStartedAt).ToString("hh:mm:ss tt")), Convert.ToDateTime(Convert.ToDateTime(task.TaskStartedAt).ToString("hh:mm:ss tt"))) < 0) { //in up between of two items prevTask.SpentTime = AppUtil.AppUtil.CalculateSpendedTime(Convert.ToDateTime(Convert.ToDateTime(prevTask.TaskStartedAt).ToString("hh:mm:ss tt")), Convert.ToDateTime(Convert.ToDateTime(newTask.TaskStartedAt).ToString("hh:mm:ss tt"))); databaseHelper.AddDayTask(prevTask); newTask.SpentTime = AppUtil.AppUtil.CalculateSpendedTime(Convert.ToDateTime(Convert.ToDateTime(newTask.TaskStartedAt).ToString("hh:mm:ss tt")), Convert.ToDateTime(Convert.ToDateTime(task.TaskStartedAt).ToString("hh:mm:ss tt"))); taskId = databaseHelper.AddDayTask(newTask); } else { Application.Current.MainPage.DisplayAlert(AppConstant.SelectePositionToAddTaskTitleText, AppConstant.CurrentTaskIsInProgressText, "OK"); } } else if (selectedTaskIndex == 0) // add task at top most of list { if (DateTime.Compare(Convert.ToDateTime(Convert.ToDateTime(Convert.ToDateTime(newTask.TaskStartedAt).ToString("hh:mm:ss tt"))), Convert.ToDateTime(Convert.ToDateTime(task.TaskStartedAt).ToString("hh:mm:ss tt"))) < 0) { //inserted top most newTask.SpentTime = AppUtil.AppUtil.CalculateSpendedTime(Convert.ToDateTime(Convert.ToDateTime(newTask.TaskStartedAt).ToString("hh:mm:ss tt")), Convert.ToDateTime(Convert.ToDateTime(task.TaskStartedAt).ToString("hh:mm:ss tt"))); taskId = databaseHelper.AddDayTask(newTask); } else { Application.Current.MainPage.DisplayAlert(AppConstant.SelectePositionToAddTaskTitleText, AppConstant.CurrentTaskIsInProgressText, "OK"); } } else { //todo } } else if (position.Equals("Down")) // add task bottom of selected task { int selectedTaskIndex = allTasks.FindIndex(x => x.DayTaskTrackId == task.DayTaskTrackId); if (selectedTaskIndex < allTasks.Count - 1) { afterTask = allTasks[selectedTaskIndex + 1]; if (DateTime.Compare(Convert.ToDateTime(Convert.ToDateTime(newTask.TaskStartedAt).ToString("hh:mm:ss tt")), Convert.ToDateTime(Convert.ToDateTime(task.TaskStartedAt).ToString("hh:mm:ss tt"))) > 0 && DateTime.Compare(Convert.ToDateTime(Convert.ToDateTime(newTask.TaskStartedAt).ToString("hh:mm:ss tt")), Convert.ToDateTime(Convert.ToDateTime(afterTask.TaskStartedAt).ToString("hh:mm:ss tt"))) < 0) { //below of selected one task //blow Inbetween of` two items task.SpentTime = AppUtil.AppUtil.CalculateSpendedTime(Convert.ToDateTime(Convert.ToDateTime(task.TaskStartedAt).ToString("hh:mm:ss tt")), Convert.ToDateTime(Convert.ToDateTime(newTask.TaskStartedAt).ToString("hh:mm:ss tt"))); databaseHelper.AddDayTask(task); newTask.SpentTime = AppUtil.AppUtil.CalculateSpendedTime(Convert.ToDateTime(Convert.ToDateTime(newTask.TaskStartedAt).ToString("hh:mm:ss tt")), Convert.ToDateTime(Convert.ToDateTime(afterTask.TaskStartedAt).ToString("hh:mm:ss tt"))); taskId = databaseHelper.AddDayTask(newTask); } else { Application.Current.MainPage.DisplayAlert(AppConstant.SelectePositionToAddTaskTitleText, AppConstant.CurrentTaskIsInProgressText, "OK"); } } else if (selectedTaskIndex == allTasks.Count - 1) // inserted most bottom of list { if (DateTime.Compare(Convert.ToDateTime(Convert.ToDateTime(newTask.TaskStartedAt).ToString("hh:mm:ss tt")), Convert.ToDateTime(task.TaskStartedAt)) > 0) { DayTask lastRecord = allTasks[selectedTaskIndex]; lastRecord.SpentTime = AppUtil.AppUtil.CalculateSpendedTime(Convert.ToDateTime(Convert.ToDateTime(lastRecord.TaskStartedAt).ToString("hh:mm:ss tt")), Convert.ToDateTime(Convert.ToDateTime(newTask.TaskStartedAt).ToString("hh:mm:ss tt"))); string isUpdated = databaseHelper.AddDayTask(lastRecord); if (isUpdated != null) { taskId = databaseHelper.AddDayTask(newTask); Helpers.Settings.LatestInsertedDayTaskTrackId = taskId; } } else { Application.Current.MainPage.DisplayAlert(AppConstant.SelectePositionToAddTaskTitleText, AppConstant.CurrentTaskIsInProgressText, "OK"); } } else { //todo } } if (taskId != null) { //if task inserted then arrange the position of new task (up/down) to maintain the Sequence of list ArrangeTask(task.CreatedAt, position); OpenTaskStatsViewPageHandler(CurrentSelectedDate.ToString("yyyy-MM-dd"), null); //open the Day Task page return(taskId); } return(taskId); }catch (Exception ex) { MessagingCenter.Send((App)Xamarin.Forms.Application.Current, AppConstant.ErrorEvent, ex.ToString()); return(""); } }