コード例 #1
0
        /// <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);
        }
コード例 #2
0
 ////////////////// 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);
     }
 }
コード例 #3
0
        /// <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);
            }
        }
コード例 #4
0
    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);
    }
コード例 #5
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);
        }
コード例 #6
0
        /// <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);
        }
コード例 #7
0
 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();
 }
コード例 #8
0
 /// <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";
 }
コード例 #9
0
        /// <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);
            }
        }
コード例 #10
0
        /// <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);
            }
        }
コード例 #11
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)
     {
         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;
     }
 }
コード例 #12
0
    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);
    }
コード例 #13
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());
     }
 }
コード例 #14
0
 /// <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());
     }
 }
コード例 #15
0
    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);
    }
コード例 #16
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;
     }
 }
コード例 #17
0
 /// <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);
     }
 }
コード例 #18
0
		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;
				}
			}

			
		}
コード例 #19
0
    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);
    }
コード例 #20
0
        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);
            }
        }
コード例 #21
0
        /// <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("");
            }
        }
コード例 #22
0
 public void AddDay(DayTask day)
 {
     _context.DayTasks.Add(day);
 }
コード例 #23
0
 public void DeleteDay(DayTask day)
 {
     _context.DayTasks.Remove(day);
 }
コード例 #24
0
 public ICollection <TaskToDo> GetTasks(DayTask day)
 {
     return(_context.TasksToDo.Where(ttd => ttd.Day == day.Id).ToList());
 }
コード例 #25
0
 public BaseViewModel()
 {
     databaseHelper         = DatabaseHelper.GetInstance();
     database               = DependencyService.Get <IDatabaseConnection>().DbConnection();
     CurrentSelectedDayTask = new DayTask();
 }
コード例 #26
0
        //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());
            }
        }
コード例 #27
0
        /// <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("");
            }
        }