Exemple #1
0
        public async Task <IActionResult> GenerateTaskView(TaskFormDataModel model)
        {
            var task = new TaskItemViewModel();

            if (model.TaskId == 0)
            {
                task.ProjectId = model.ProjectId;
                task.AccountId = Context.CurrentAccount.AccountId;
                task.PhaseId   = model.PhaseId;
            }
            else
            {
                var iResult = await EzTask.Task.GetTask(model.TaskId);

                UpdateTaskFromExist(task, iResult);
            }

            var phases = await EzTask.Phase.GetPhases(task.ProjectId);

            task.PhaseList = StaticResources.BuildPhaseSelectList(phases, task.PhaseId);

            var assignees = await EzTask.Project.GetAccountList(task.ProjectId);

            task.AssigneeList = StaticResources.BuildAssigneeSelectList(assignees, task.Assignee);

            task.StatusList   = StaticResources.BuildTaskStatusSelectList(task.Status);
            task.PriorityList = StaticResources.BuildPrioritySelectList(task.Priority);

            return(PartialView("_CreateOrUpdateTask", task));
        }
Exemple #2
0
            /*
             * //May not be needed anymore as tasks are not logged until after date rolls
             * public static void RemoveTaskLog(DateTime start, DateTime end, int taskItemId)
             * {
             *  var items = GetTaskLogs(start, end).Where(x => x.TaskID == taskItemId);
             *
             *  foreach (TaskLog i in items)
             *  {
             *      Instance.TasksLog.Remove(i);
             *  }
             *
             *  Instance.SaveChanges();
             * }
             */

            #endregion

            private static bool Expand(IEnumerable <TaskItemViewModel> tasks, int id)
            {
                foreach (var t in tasks)
                {
                    if (t.Data.TaskItemID == id)
                    {
                        TaskItemViewModel parent = t.Parent;

                        while (parent != null)
                        {
                            parent.IsExpanded = true;
                            parent            = parent.Parent;
                        }

                        t.Selected = true;

                        return(true);
                    }
                    else if (t.Children != null)
                    {
                        bool expanded = Expand(t.Children, id);
                        if (expanded)
                        {
                            return(true);
                        }
                    }
                }

                return(false);
            }
        private async Task <bool> ChangeTaskStatus(TaskItemViewModel task, GoogleTaskStatus newStatus)
        {
            Messenger.Publish(new ShowProgressOverlayMsg(this));

            var response = await _dataService
                           .TaskService
                           .ChangeTaskStatusAsync(task.GoogleId, newStatus);

            Messenger.Publish(new ShowProgressOverlayMsg(this, false));

            if (!response.Succeed)
            {
                Logger.Error(
                    $"{nameof(ChangeTaskStatus)}: An error occurred while trying to mark {task.Title} as {GetStatusMsgToUse(newStatus)}." +
                    $"Error = {response.Message}");
                return(false);
            }

            task.Status      = response.Result.Status;
            task.CompletedOn = response.Result.CompletedOn;
            task.UpdatedAt   = response.Result.UpdatedAt;

            Messenger.Publish(new TaskStatusChangedMsg(
                                  this,
                                  task.GoogleId,
                                  task.ParentTask,
                                  task.CompletedOn,
                                  task.UpdatedAt,
                                  task.Status));
            return(true);
        }
Exemple #4
0
        public async Task <IActionResult> UpdateAsync(int id, [FromBody] JsonPatchDocument <TaskItemViewModel> jsonPatchDocument)
        {
            if (ModelState.IsValid)
            {
                if (jsonPatchDocument == null)
                {
                    return(BadRequest());
                }

                TaskItem taskItem = await _taskService.GetById(id);

                if (taskItem == null)
                {
                    return(NotFound(id));
                }

                TaskItemViewModel taskItemPatch = Mapper.Map <TaskItemViewModel>(taskItem);

                jsonPatchDocument.ApplyTo(taskItemPatch);

                Mapper.Map(taskItemPatch, taskItem);
                AuditEntity(ref taskItem);
                _taskService.Update(taskItem);
                await _taskService.SaveChangesAsync();

                return(Ok(taskItem));
            }

            return(BadRequest(ModelState));
        }
Exemple #5
0
 private NewTaskViewModelResult(TaskItemViewModel task, bool wasCreated, bool wasUpdated, bool wasDeleted, int itemsAdded)
 {
     Task       = task;
     WasCreated = wasCreated;
     WasUpdated = wasUpdated;
     WasDeleted = wasDeleted;
     ItemsAdded = itemsAdded;
 }
        public ActionResult Delete(TaskItemViewModel taskItemViewModel)
        {
            var taskItem = toDoListDbContext.TaskItems.Where(lmb => lmb.Id == taskItemViewModel.Id).FirstOrDefault();

            toDoListDbContext.Entry(taskItem).State = System.Data.Entity.EntityState.Deleted;
            toDoListDbContext.SaveChanges();
            return(RedirectToAction("TaskList"));
        }
 public static TaskDateViewModelParameter Instance(
     TaskListItemViewModel taskList,
     TaskItemViewModel task,
     TaskNotificationDateType dateType,
     bool sendUpdatedMsg = false)
 {
     return(new TaskDateViewModelParameter(taskList, task, dateType, sendUpdatedMsg));
 }
 public ActionResult Create(TaskItemViewModel taskItemViewModel)
 {
     toDoListDbContext.TaskItems.Add(new Domain.Entities.TaskItem {
         TaskDescription = taskItemViewModel.TaskDescription, TaskTitle = taskItemViewModel.TaskTitle, TaskDueDate = taskItemViewModel.TaskDueDate, UserId = User.Identity.GetUserId()
     });
     toDoListDbContext.SaveChanges();
     return(RedirectToAction("TaskList"));
 }
Exemple #9
0
 private MoveTaskDialogViewModelParameter(
     TaskListItemViewModel currentTaskList,
     TaskListItemViewModel newTaskList,
     TaskItemViewModel task)
     : base(task)
 {
     CurrentTaskList = currentTaskList;
     NewTaskList     = newTaskList;
 }
 public TaskDateUpdatedMsg(
     object sender,
     TaskItemViewModel task,
     bool isAReminderDate)
     : base(sender)
 {
     Task            = task;
     IsAReminderDate = isAReminderDate;
 }
Exemple #11
0
 public ChangeTaskStatusRequestMsg(
     object sender,
     TaskItemViewModel task,
     GoogleTaskStatus newStatus = GoogleTaskStatus.COMPLETED)
     : base(sender)
 {
     Task      = task;
     NewStatus = newStatus;
 }
        public ActionResult Details(int id)
        {
            TaskItemViewModel taskItemViewModel = new TaskItemViewModel();

            taskItemViewModel = toDoListDbContext.TaskItems.Where(lmb => lmb.Id == id).Select(lmb => new TaskItemViewModel {
                Id = lmb.Id, TaskDescription = lmb.TaskDescription, TaskDueDate = lmb.TaskDueDate, TaskTitle = lmb.TaskTitle, UserId = lmb.UserId
            }).FirstOrDefault();
            return(View(taskItemViewModel));
        }
        public ActionResult Edit(TaskItemViewModel taskItemViewModel)
        {
            var taskItem = toDoListDbContext.TaskItems.Where(lmb => lmb.Id == taskItemViewModel.Id).FirstOrDefault();

            taskItem.TaskTitle       = taskItemViewModel.TaskTitle;
            taskItem.TaskDescription = taskItemViewModel.TaskDescription;
            taskItem.TaskDueDate     = taskItemViewModel.TaskDueDate;
            toDoListDbContext.SaveChanges();
            return(RedirectToAction("TaskList"));
        }
        public async Task <IActionResult> GenerateAssignTaskView(TaskFormDataModel model)
        {
            TaskItemViewModel task = new TaskItemViewModel();

            IList <ProjectMemberModel> assignees = await EzTask.Project.GetAccountList(model.ProjectId);

            task.AssigneeList = StaticResources.BuildAssigneeSelectList(assignees);

            return(PartialView("_AssignTask", task));
        }
Exemple #15
0
 internal static TaskModel Get(TaskItemViewModel item)
 {
     return(new TaskModel()
     {
         Id = item.Id,
         DateTime = item.Date.Date.Add(item.Time),
         Name = item.Name,
         Status = (int)item.Status
     });
 }
 private TaskDateViewModelParameter(
     TaskListItemViewModel taskList,
     TaskItemViewModel task,
     TaskNotificationDateType dateType,
     bool sendUpdatedMsg)
 {
     TaskList      = taskList ?? throw new ArgumentNullException(nameof(taskList));
     Task          = task ?? throw new ArgumentNullException(nameof(task));
     DateType      = dateType;
     SendUpdateMsg = sendUpdatedMsg;
 }
Exemple #17
0
        public async Task <IActionResult> CreateOrUpdate(TaskItemViewModel viewModel)
        {
            var model = CreateTaskItemModel(viewModel);

            var iResult = await EzTask.Task.SaveTask(model);

            if (iResult.Status == ActionStatus.Ok)
            {
                model.TaskCode    = iResult.Data.TaskCode;
                model.CreatedDate = iResult.Data.CreatedDate;
                model.UpdatedDate = iResult.Data.UpdatedDate;
                model.TaskId      = iResult.Data.TaskId;
                string diff = string.Empty;

                string title;
                if (viewModel.TaskId <= 0)
                {
                    title = Context.GetStringResource("CreatedTask", StringResourceType.TaskPage) + " \"" + iResult.Data.TaskTitle + "\" <small>(" + Context.GetStringResource("Code", StringResourceType.TaskPage) + ": " + model.TaskCode + ")</small>";
                    SetTaskDataToSession(model);

                    //add notify
                    await EzTask.Notification.AddNewTaskNotify(Context.CurrentAccount.DisplayName,
                                                               Context.CurrentAccount.AccountId,
                                                               iResult.Data.TaskCode, viewModel.ProjectId,
                                                               Context.GetStringResource("AddNewTask", StringResourceType.Notification));
                }
                else
                {
                    title = Context.GetStringResource("UpdatedTask", StringResourceType.TaskPage) + " \"" + iResult.Data.TaskTitle + "\" <small>(" + Context.GetStringResource("Code", StringResourceType.TaskPage) + ": " + model.TaskCode + ")</small>";
                    var oldData = ReadTaskDataFromSession(model.TaskId);
                    var newData = model;

                    diff = await EzTask.Task.CompareChangesAsync(newData, oldData);

                    //re-assign new data to session
                    SetTaskDataToSession(newData);

                    //add notify
                    await EzTask.Notification.UpdateTaskNotify(Context.CurrentAccount.DisplayName,
                                                               Context.CurrentAccount.AccountId,
                                                               iResult.Data.TaskCode, viewModel.ProjectId,
                                                               Context.GetStringResource("UpdateTask", StringResourceType.Notification));
                }

                await EzTask.Task.SaveHistory(iResult.Data.TaskId, title, diff, Context.CurrentAccount.AccountId);
            }
            return(Json(iResult));
        }
        public async Task <IActionResult> Index()
        {
            var currentUser = await _userManager.GetUserAsync(User);

            if (currentUser == null)
            {
                return(Challenge());
            }
            var items = await _taskItemService.GetIncompleteItemsAsync(currentUser);

            var model = new TaskItemViewModel()
            {
                Items = items
            };

            return(View(model));
        }
Exemple #19
0
        public void addNewTaskItem(TaskItemViewModel taskItem)
        {
            var task = new TaskItem();

            task.ChecklistId = taskItem.ChecklistId;
            //  task.FormId = taskItem.FormId;
            task.DueTime = DateTime.ParseExact(taskItem.DueTime, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
            //task.DueTime = Convert.ToDateTime(taskItem.DueTime);

            task.Name       = taskItem.Name;
            task.Priority   = taskItem.Priority;
            task.TaskStatus = taskItem.TaskStatus;
            // task.FormSubmitted = taskItem.FormSubmitted;
            // task.FormId = taskItem.FormId;
            context.TaskItem.Add(task);
            context.SaveChanges();
        }
Exemple #20
0
        static TaskItemViewModel GenerateTask(string subject, TaskCategory category, ContactItemViewModel contact)
        {
            TaskItemViewModel task = TaskItemViewModel.Create(subject, category, DateTime.Now.AddHours(-rndGenerator.Next(96)));
            int rndStatus          = rndGenerator.Next(10);

            if (task.TimeDiff.TotalHours > 12)
            {
                task.PercentComplete = rndGenerator.Next(9) * 10;
                task.StartDate       = task.CreatedDate.AddMinutes(rndGenerator.Next(720)).Date;
                if (task.TimeDiff.TotalHours > 80)
                {
                    task.Status        = TaskStatus.Completed;
                    task.CompletedDate = task.StartDate.Value.AddHours(rndGenerator.Next(48) + 24);
                }
                else
                {
                    task.Status = TaskStatus.InProgress;
                    if (rndStatus == 6)
                    {
                        task.Status = TaskStatus.Deferred;
                    }
                    else if (rndStatus == 4 && task.PercentComplete < 40)
                    {
                        task.Status = TaskStatus.WaitingOnSomeoneElse;
                    }
                }
            }
            if (rndStatus != 5)
            {
                task.DueDate = task.CreatedDate.AddHours((90 - rndStatus * 9) + 24).Date;
            }
            if (rndStatus > 8)
            {
                task.Priority = TaskPriority.High;
            }
            if (rndStatus < 3)
            {
                task.Priority = TaskPriority.Low;
            }
            if (rndStatus != 7 && contact != null)
            {
                task.AssignTo = contact;
            }

            return(task);
        }
Exemple #21
0
        public async Task <IActionResult> CreateTask([FromBody] TaskItemViewModel viewmodel)
        {
            if (ModelState.IsValid)
            {
                if (viewmodel == null)
                {
                    return(BadRequest($"{nameof(viewmodel)} cannot be null"));
                }

                TaskItem taskItem = Mapper.Map <TaskItem>(viewmodel);
                AuditEntity(ref taskItem);
                _taskService.Add(taskItem);
                await _taskService.SaveChangesAsync();

                return(Ok(taskItem));
            }
            return(BadRequest(ModelState));
        }
Exemple #22
0
        private async Task <bool> DeleteTask(TaskItemViewModel task)
        {
            if (task.HasParentTask && task.IsNew ||
                task.IsNew)
            {
                Messenger.Publish(new TaskDeletedMsg(this, task.GoogleId, task.ParentTask));
                return(true);
            }

            Messenger.Publish(new ShowProgressOverlayMsg(this));

            var deleteResponse = await _dataService
                                 .TaskService
                                 .RemoveTaskAsync(task.GoogleId);

            if (TasksHelper.HasReminderId(task.RemindOnGUID, out int id))
            {
                _notificationService.RemoveScheduledNotification(id);
            }

            if (task.HasSubTasks)
            {
                foreach (var st in task.SubTasks)
                {
                    if (TasksHelper.HasReminderId(st.RemindOnGUID, out int stReminderId))
                    {
                        _notificationService.RemoveScheduledNotification(stReminderId);
                    }
                }
            }

            Messenger.Publish(new ShowProgressOverlayMsg(this, false));

            if (!deleteResponse.Succeed)
            {
                Logger.Error(
                    $"{nameof(DeleteTask)}: Couldn't delete the selected task." +
                    $"Error = {deleteResponse.Message}");
                return(false);
            }

            Messenger.Publish(new TaskDeletedMsg(this, task.GoogleId, task.ParentTask));
            return(true);
        }
        // GET: TaskItemDetail/Details/5
        public ActionResult Details(int id)
        {
            TaskItemViewModel taskItemDetail = new TaskItemViewModel();

            taskItemDetail.Task = TaskManager.GetTaskById(id);

            var taskCategories = TaskManager.GetCategoriesByTaskId(id);

            List <CategoryDetail> categoryDetailList = new List <CategoryDetail>();

            foreach (var taskCategory in taskCategories)
            {
                CategoryLookupObject categoryLookup = new CategoryLookupObject {
                    CategoryId = taskCategory.CategoryId, CategoryName = taskCategory.CategoryName
                };

                var taskCategoryId   = taskCategory.TaskCategoryId;
                var questionsAnswers = TaskManager.GetQuestionsAnswersByTaskCategoryId(taskCategoryId);

                List <QuestionAnswerDetail> questionsAnswersList = new List <QuestionAnswerDetail>();

                foreach (var innerItem in questionsAnswers)
                {
                    QuestionAnswerDetail questionAnswerDetail = new QuestionAnswerDetail();

                    questionAnswerDetail.Question   = innerItem.Question;
                    questionAnswerDetail.Answer     = innerItem.Answer;
                    questionAnswerDetail.Multiplier = innerItem.Multiplier;
                    questionAnswerDetail.Score      = innerItem.Score;

                    questionsAnswersList.Add(questionAnswerDetail);
                }

                CategoryDetail categoryDetail = new CategoryDetail {
                    Category = categoryLookup, QuestionsAnswers = questionsAnswersList
                };
                categoryDetailList.Add(categoryDetail);
            }

            taskItemDetail.Categories = categoryDetailList;

            return(View(taskItemDetail));
        }
Exemple #24
0
        /// <summary>
        /// Create TaskItemModel from ViewModel
        /// </summary>
        /// <param name="viewModel"></param>
        /// <returns></returns>
        private TaskItemModel CreateTaskItemModel(TaskItemViewModel viewModel)
        {
            var data = new TaskItemModel();

            data.Assignee.AccountId = viewModel.Assignee;
            data.Member.AccountId   = Context.CurrentAccount.AccountId;
            data.Phase.Id           = viewModel.PhaseId;
            data.Project.ProjectId  = viewModel.ProjectId;
            data.Priority           = viewModel.Priority.ToEnum <TaskPriority>();
            data.Status             = viewModel.Status.ToEnum <TaskItemStatus>();
            data.TaskDetail         = viewModel.TaskDetail;
            data.TaskCode           = viewModel.TaskCode;
            data.TaskId             = viewModel.TaskId;
            data.TaskTitle          = viewModel.TaskTitle;
            data.CreatedDate        = viewModel.CreatedDate;
            data.PercentCompleted   = viewModel.PercentCompleted;
            data.EstimateTime       = viewModel.EstimateTime;
            data.SpentTime          = viewModel.SpentTime;

            return(data);
        }
        public TemplateViewModel getTemplate(int organizationId, String userId, int templateId)
        {
            var template   = _context.Checklist.Where(c => c.OrganizationId == organizationId && c.Id == templateId && c.UserId.Equals(userId)).FirstOrDefault();
            var templateVM = new TemplateViewModel()
            {
                Id                 = template.Id,
                Description        = template.Description,
                Name               = template.Name,
                OrganizationId     = template.OrganizationId,
                taskItemViewModels = null,
                TemplateId         = template.TemplateId,
                TemplateStatus     = template.TemplateStatus,
                TimeCreated        = template.TimeCreated,
                UserId             = template.UserId,
                Category           = template.Category
            };



            var listTaskItem   = _context.TaskItem.Where(t => t.ChecklistId == template.Id).OrderBy(t => t.Priority).ToList();
            var listTaskItemVM = new List <TaskItemViewModel>();

            foreach (var item in listTaskItem)
            {
                var taskItemVM = new TaskItemViewModel();
                taskItemVM.Id          = item.Id;
                taskItemVM.Name        = item.Name;
                taskItemVM.Priority    = item.Priority;
                taskItemVM.TaskStatus  = item.TaskStatus;
                taskItemVM.ChecklistId = item.ChecklistId;
                taskItemVM.DueTime     = item.DueTime.ToString();
                var listContent = _context.ContentDetail.Where(c => c.TaskItemId == item.Id).OrderBy(c => c.OrderContent).ToList();
                taskItemVM.ContentDetails = listContent;
                var listUser = _context.User.FromSql("getUserByTaskId @TaskId", new SqlParameter("@TaskId", item.Id)).ToList();
                taskItemVM.UserId = listUser;
                listTaskItemVM.Add(taskItemVM);
            }
            templateVM.taskItemViewModels = listTaskItemVM;
            return(templateVM);
        }
Exemple #26
0
        /// <summary>
        /// Update from exist task model
        /// </summary>
        /// <param name="task"></param>
        /// <param name="iResult"></param>
        private void UpdateTaskFromExist(TaskItemViewModel task, ResultModel <TaskItemModel> iResult)
        {
            task.TaskId           = iResult.Data.TaskId;
            task.ProjectId        = iResult.Data.Project.ProjectId;
            task.PhaseId          = iResult.Data.Phase.Id;
            task.Assignee         = iResult.Data.Assignee != null ? iResult.Data.Assignee.AccountId : 0;
            task.TaskTitle        = iResult.Data.TaskTitle;
            task.TaskCode         = iResult.Data.TaskCode;
            task.TaskDetail       = iResult.Data.TaskDetail;
            task.Status           = iResult.Data.Status.ToInt16 <TaskStatus>();
            task.Priority         = iResult.Status.ToInt16 <TaskPriority>();
            task.AccountId        = iResult.Data.Member.AccountId;
            task.PercentCompleted = iResult.Data.PercentCompleted;
            task.CreatedDate      = iResult.Data.CreatedDate;
            task.EstimateTime     = iResult.Data.EstimateTime;
            task.SpentTime        = iResult.Data.SpentTime;

            if (task.TaskId > 0)
            {
                SetTaskDataToSession(CreateTaskItemModel(task));
            }
        }
Exemple #27
0
        public void EntityUpdated(taskList updatedEntities)
        {
            using (var db = new ApplicationDbContext())
            {
                Trace.WriteLine("Updated Tasks");
                foreach (var entry in updatedEntities)
                {
                    var dbTask = db.Tasks.Find(entry.Item2.Id);

                    var indexGroup =
                        Clients.Group(LiveUpdateHelper.GroupName(ViewModelDataType.Task,
                                                                 ActionType.Index, entry.Item2.FeatureId));

                    switch (entry.Item1)
                    {
                    case EntityState.Added:
                        //Add Task to list
                        var taskItemViewModelA = new TaskItemViewModel(dbTask);
                        indexGroup.AddData(ViewModelDataType.Task.ToString(),
                                           ActionType.Index.ToString(), taskItemViewModelA);
                        break;

                    case EntityState.Deleted:
                        //Remove Task from list
                        indexGroup.RemoveData(ViewModelDataType.Task.ToString(),
                                              ActionType.Index.ToString(), entry.Item2.Id);
                        break;

                    case EntityState.Modified:
                        //Update Tasks List
                        var taskItemViewModelM = new TaskItemViewModel(dbTask);
                        indexGroup.UpdateItemData(ViewModelDataType.Task.ToString(),
                                                  ActionType.Index.ToString(), taskItemViewModelM);
                        break;
                    }
                }
            }
        }
        private async Task <bool> MoveTask(TaskListItemViewModel selectedTaskList, TaskItemViewModel task)
        {
            Messenger.Publish(new ShowProgressOverlayMsg(this));

            var moveResponse = await _dataService
                               .TaskService
                               .MoveAsync(selectedTaskList.GoogleId, task.GoogleId, null, null);

            if (moveResponse.Succeed)
            {
                var movedTask = moveResponse.Result;

                //If this task had a reminder, we need to recreate it
                if (TasksHelper.HasReminderId(movedTask.RemindOnGUID, out int id))
                {
                    ReAddReminderDate(id, selectedTaskList, movedTask);
                }

                foreach (var st in task.SubTasks)
                {
                    st.ParentTask = moveResponse.Result.GoogleTaskID;
                }

                await MoveSubTasks(selectedTaskList.GoogleId, task.SubTasks);
            }
            else
            {
                Logger.Error(
                    $"{nameof(MoveTask)}: An error occurred while tryingg to move taskId = {task.Id}. " +
                    $"Error = {moveResponse.Message}");
            }

            Messenger.Publish(new TaskMovedMsg(this, task.GoogleId, selectedTaskList.GoogleId, task.ParentTask));
            Messenger.Publish(new ShowProgressOverlayMsg(this, false));

            return(moveResponse.Succeed);
        }
Exemple #29
0
 public ActionResult Delete(TaskItemViewModel deleteTask)
 {
     return HandleForm(deleteTask).WithSuccessResult(this.RedirectToAction(x => x.Index()));
 }
Exemple #30
0
 public DeleteTaskRequestMsg(object sender, TaskItemViewModel task) : base(sender)
 {
     Task = task;
 }
 public void addNewTaskItem(TaskItemViewModel taskItem)
 {
     taskItemRepository.addNewTaskItem(taskItem);
 }