public async Task <bool> InsertTaskSubitem(TaskSubitem taskSubitem) { if (await EnsureLogin()) { await MobileService.GetTable <TaskSubitem>().InsertAsync(taskSubitem); return(true); } return(false); }
public void Activate(object parameter) { Tuple <TaskItem, TaskSubitem> obj = parameter as Tuple <TaskItem, TaskSubitem>; if (obj != null) { _associatedTaskItem = obj.Item1; _associatedTaskSubitem = obj.Item2; } Initialize(); }
public async Task <bool> UpdateTaskSubitem(TaskSubitem taskSubItem) { if (await EnsureLogin()) { var table = MobileService.GetTable <TaskSubitem>(); await table.UpdateAsync(taskSubItem); return(true); } return(false); }
private TaskSubitemModel GetTaskSubitemModel(TaskSubitem taskSubitem) { TaskSubitemModel taskSubitemModel = new TaskSubitemModel(); taskSubitemModel.Id = taskSubitem.Id; taskSubitemModel.Name = taskSubitem.Name; taskSubitemModel.StatusId = taskSubitem.TaskStatusId; taskSubitemModel.Description = taskSubitem.Description; taskSubitemModel.TaskItemId = taskSubitem.TaskItemId; taskSubitemModel.StartDateTime = taskSubitem.StartDateTime.Value; taskSubitemModel.EndDateTime = taskSubitem.EndDateTime.Value; taskSubitemModel.EstimationInHours = taskSubitem.EstimationInHours; taskSubitemModel.PredecessorId = taskSubitem.PredecessorId; taskSubitemModel.SuccessorId = taskSubitem.SuccessorId; taskSubitemModel.IsCompleted = taskSubitem.IsCompleted; taskSubitemModel.ExecutorId = taskSubitem.ExecutorId; return(taskSubitemModel); }
private TaskSubitem GetTaskSubitemFromModel(string taskItemId, TaskSubitemModel taskSubitemModel) { TaskSubitem taskSubitem = new TaskSubitem(); taskSubitem.Name = taskSubitemModel.Name; taskSubitem.Description = taskSubitemModel.Description; taskSubitem.TaskItemId = taskItemId; taskSubitem.TaskStatusId = taskSubitemModel.StatusId; taskSubitem.StartDateTime = taskSubitemModel.StartDateTime; taskSubitem.EndDateTime = taskSubitemModel.EndDateTime; taskSubitem.EstimationInHours = taskSubitemModel.EstimationInHours; taskSubitem.IsDeleted = false; taskSubitem.PredecessorId = taskSubitemModel.PredecessorId; taskSubitem.SuccessorId = taskSubitemModel.SuccessorId; taskSubitem.IsCompleted = taskSubitemModel.IsCompleted; taskSubitem.ExecutorId = taskSubitemModel.ExecutorId; return(taskSubitem); }
public async Task <ActionResult> Edit(string taskItemId, string taskSubitemId, TaskSubitemModel taskSubitemModel) { ViewBag.TaskItemId = taskItemId; var accessToken = Session["MicrosoftAccessToken"] as string; TaskSubitemService taskSubitemService = new TaskSubitemService(accessToken); try { // TODO: Add update logic here TaskSubitem taskSubitem = GetTaskSubitemFromModel(taskItemId, taskSubitemModel); taskSubitem.Id = taskSubitemId; if (taskSubitem.IsCompleted || taskSubitem.TaskStatusId.Equals(((int)TaskStatusEnum.Completed).ToString())) { taskSubitem.TaskStatusId = ((int)TaskStatusEnum.Completed).ToString(); taskSubitem.IsCompleted = true; } await taskSubitemService.UpdateTaskSubitem(taskSubitem); var allTaskSubitems = await taskSubitemService.GetTaskSubitems(taskItemId); if (allTaskSubitems.All(t => t.IsCompleted)) { var taskItemService = new TaskItemService(accessToken); var taskItem = await taskItemService.GetTaskItemById(taskItemId); taskItem.IsCompleted = true; taskItem.TaskStatusId = ((int)TaskStatusEnum.Completed).ToString(); await taskItemService.UpdateTaskItem(taskItem); } return(RedirectToAction("Index", new { taskItemId })); } catch { return(View(taskSubitemModel)); } }
public async void Activate(object parameter) { IsStartButtonEnabled = IsStopButtonEnabled = false; _associatedTaskSubitem = parameter as TaskSubitem; Refresh(); if (_associatedTaskSubitem != null) { string userExtId = Helpers.AccountHelper.GetCurrentUserId(); string userInternalId = await _userDataService.GetUserInternalId(userExtId, Constants.MainAuthenticationDomain); if (_associatedTaskSubitem.ExecutorId == userInternalId) { IsStartButtonEnabled = true; } else { IsStartButtonEnabled = false; } } }
public async Task <ActionResult> Delete(string taskItemId, string taskSubitemId, TaskSubitemModel taskSubitemModel) { var accessToken = Session["MicrosoftAccessToken"] as string; try { // TODO: Add delete logic here TaskSubitemService taskSubitemService = new TaskSubitemService(accessToken); TaskSubitem taskSubitem = await taskSubitemService.GetTaskSubitemById(taskSubitemId); taskSubitem.IsDeleted = true; await taskSubitemService.UpdateTaskSubitem(taskSubitem); return(RedirectToAction("Index", new { taskItemId })); } catch { return(View()); } }
// GET: TaskSubitem/Delete/5 public async Task <ActionResult> Delete(string taskItemId, string taskSubitemId) { ViewBag.TaskItemId = taskItemId; var accessToken = Session["MicrosoftAccessToken"] as string; TaskSubitemService taskSubitemService = new TaskSubitemService(accessToken); TaskSubitem taskSubitem = await taskSubitemService.GetTaskSubitemById(taskSubitemId); TaskSubitemModel taskSubitemModel = GetTaskSubitemModel(taskSubitem); var statuses = await taskSubitemService.GetAvailableTaskStatuses(); taskSubitemModel.Status = statuses.Single(s => s.Id == taskSubitem.TaskStatusId).Status; //ViewBag.StatusID = new SelectList(statuses, "Id", "Status", status.Id); var tasks = new ObservableCollection <TaskSubitem>() { new TaskSubitem() }; var items = await taskSubitemService.GetTaskSubitems(taskItemId); if (!String.IsNullOrWhiteSpace(taskSubitem.PredecessorId)) { taskSubitemModel.Predecessor = await taskSubitemService.GetTaskSubitemNameByTaskSubitemId(taskSubitem.PredecessorId); } else { taskSubitemModel.Predecessor = ""; } if (!String.IsNullOrWhiteSpace(taskSubitem.SuccessorId)) { taskSubitemModel.Successor = await taskSubitemService.GetTaskSubitemNameByTaskSubitemId(taskSubitem.SuccessorId); } else { taskSubitemModel.Successor = ""; } UserService userService = new UserService(accessToken); if (!String.IsNullOrWhiteSpace(taskSubitem.ExecutorId)) { taskSubitemModel.Executor = (await userService.GetUserById(taskSubitem.ExecutorId)).FullName; } else { taskSubitemModel.Executor = ""; } if (await AccessAdmin(taskItemId)) { return(View(taskSubitemModel)); } else { return(View("AccessDenied")); } }
// GET: TaskSubitem/Edit/5 public async Task <ActionResult> Edit(string taskItemId, string taskSubitemId) { ViewBag.TaskItemId = taskItemId; string accessToken = Session["MicrosoftAccessToken"] as string; TaskSubitemService taskSubitemService = new TaskSubitemService(accessToken); TaskSubitem taskSubitemInfo = await taskSubitemService.GetTaskSubitemById(taskSubitemId); TaskSubitemModel taskSubitemModel = GetTaskSubitemModel(taskSubitemInfo); var statuses = await taskSubitemService.GetAvailableTaskStatuses(); var status = statuses.Single(s => s.Id == taskSubitemInfo.TaskStatusId); ViewBag.StatusID = new SelectList(statuses, "Id", "Status", status.Id); var tasks = new ObservableCollection <TaskSubitem>() { new TaskSubitem() }; var items = await taskSubitemService.GetTaskSubitems(taskItemId); items.ForEach(i => tasks.Add(i)); if (String.IsNullOrWhiteSpace(taskSubitemInfo.PredecessorId)) { ViewBag.PredecessorID = new SelectList(tasks, "Id", "Name", new TaskSubitem()); } else { ViewBag.PredecessorID = new SelectList(tasks, "Id", "Name", taskSubitemInfo.PredecessorId); } if (String.IsNullOrWhiteSpace(taskSubitemInfo.SuccessorId)) { ViewBag.SuccessorID = new SelectList(tasks, "Id", "Name", new TaskSubitem()); } else { ViewBag.SuccessorID = new SelectList(tasks, "Id", "Name", taskSubitemInfo.SuccessorId); } UserService userService = new UserService(accessToken); TaskItemService taskItemService = new TaskItemService(accessToken); UserGroupService userGroup = new UserGroupService(accessToken); var itemInfo = await taskItemService.GetTaskItemById(taskItemId); var groupInfo = await userGroup.GetUserGroupTableForGroup(itemInfo.GroupId); var userInGroup = groupInfo.Select(u => u.UserId); List <User> userProp = new List <User>(); userProp.Add(new User()); foreach (var usrId in userInGroup) { var user = await userService.GetUserById(usrId); userProp.Add(user); } var userInternalId = await userService.GetUserInternalId(Session["UserId"] as string, UserDomainEnum.Microsoft); //var defaultExecutor = userProp.Single(i => i.Id == userInternalId); if (String.IsNullOrWhiteSpace(taskSubitemInfo.ExecutorId)) { ViewBag.ExecutorID = new SelectList(userProp, "Id", "FullName", new TaskSubitem()); } else { ViewBag.ExecutorID = new SelectList(userProp, "Id", "FullName", taskSubitemInfo.ExecutorId); } if (await AccessAdmin(taskItemId)) { return(View(taskSubitemModel)); } else if (await AccessEditor(taskItemId)) { return(View(taskSubitemModel)); } else { return(View("AccessDenied")); } }