Beispiel #1
0
        public async Task <bool> InsertTaskSubitem(TaskSubitem taskSubitem)
        {
            if (await EnsureLogin())
            {
                await MobileService.GetTable <TaskSubitem>().InsertAsync(taskSubitem);

                return(true);
            }
            return(false);
        }
Beispiel #2
0
        public void Activate(object parameter)
        {
            Tuple <TaskItem, TaskSubitem> obj = parameter as Tuple <TaskItem, TaskSubitem>;

            if (obj != null)
            {
                _associatedTaskItem    = obj.Item1;
                _associatedTaskSubitem = obj.Item2;
            }
            Initialize();
        }
Beispiel #3
0
        public async Task <bool> UpdateTaskSubitem(TaskSubitem taskSubItem)
        {
            if (await EnsureLogin())
            {
                var table = MobileService.GetTable <TaskSubitem>();
                await table.UpdateAsync(taskSubItem);

                return(true);
            }
            return(false);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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));
            }
        }
Beispiel #7
0
        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;
                }
            }
        }
Beispiel #8
0
        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());
            }
        }
Beispiel #9
0
        // 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"));
            }
        }
Beispiel #10
0
        // 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"));
            }
        }