public async Task <System.Collections.ObjectModel.ObservableCollection <TaskSubitem> > GetUserTaskSubitemsAlreadyStarted(string userId) { if (await EnsureLogin()) { var taskService = new TaskItemService(base.AccessToken); var taskItems = await taskService.GetTaskItems(userId); var result = new List <TaskSubitem>(); foreach (var taskItem in taskItems) { var taskSubitems = await MobileService.GetTable <TaskSubitem>() .Where(t => t.TaskItemId == taskItem.Id && t.TaskStatusId != ((int)TaskStatusEnum.Completed).ToString() && t.TaskStatusId != ((int)TaskStatusEnum.Rejected).ToString()) .ToCollectionAsync(); Func <TaskSubitem, bool> func = t => t.ExecutorId == userId && t.StartDateTime.HasValue && t.StartDateTime.Value.Date <= DateTime.Today && t.StartDateTime.Value.Date > DateTime.Today.AddDays(-2); if (taskSubitems.Any(func)) { result.AddRange(taskSubitems.Where(func)); } } return(result.ToObservableCollection()); } return(null); }
public async Task <ObservableCollection <TaskSubitem> > GetCompletedTaskSubitems(string userId, DateTime fromDate, DateTime toDate) { if (await EnsureLogin()) { var taskService = new TaskItemService(base.AccessToken); var taskItems = await taskService.GetTaskItems(userId); var result = new List <TaskSubitem>(); foreach (var taskItem in taskItems) { var taskSubitems = await MobileService.GetTable <TaskSubitem>() .Where(t => t.TaskItemId == taskItem.Id && t.TaskStatusId == ((int)TaskStatusEnum.Completed).ToString()) .ToCollectionAsync(); Func <TaskSubitem, bool> func = t => t.ExecutorId == userId && t.StartDateTime.HasValue && t.StartDateTime.Value.Date >= fromDate.Date && t.EndDateTime.HasValue && t.EndDateTime.Value.Date < toDate.Date; if (taskSubitems.Any(func)) { result.AddRange(taskSubitems.Where(func)); } } return(result.ToObservableCollection()); } return(null); }
public async Task <bool> DeleteGroup(Group group) { if (await EnsureLogin()) { var table = MobileService.GetTable <Group>(); var userGroupDataService = new UserGroupService(base.AccessToken); await userGroupDataService.DeleteUserGroupsForGroup(group.Id); var todoListDataService = new ToDoListService(base.AccessToken); await todoListDataService.DeleteTodoListsForGroup(group.Id); var taskItemService = new TaskItemService(base.AccessToken); await taskItemService.DeleteTaskItemsForGroup(group.Id); await table.DeleteAsync(group); return(true); } return(false); }
public async Task <ObservableCollection <TaskSubitemWork> > GetGroupTaskSubitemWorksForUser(string userId, string groupId, DateTime fromDate, DateTime toDate) { if (await EnsureLogin()) { var taskService = new TaskItemService(base.AccessToken); var taskSubitemService = new TaskSubitemService(base.AccessToken); var taskSubitemWorksService = new TaskSubitemWorkService(base.AccessToken); var taskItems = await taskService.GetTaskItemsTableForGroup(groupId); var results = new List <TaskSubitemWork>(); foreach (var taskItem in taskItems) { var subItems = await taskSubitemService.GetTaskSubitems(taskItem.Id); //TODO var userTaskSubitems = subItems.Where(t => t.ExecutorId == userId); foreach (var subitem in userTaskSubitems) { var works = await taskSubitemWorksService.GetTaskSubitemWorks(subitem.Id); var worksBetweenDates = works.Where( w => w.StartDateTime >= fromDate && w.EndDateTime.HasValue && w.EndDateTime.Value < toDate); if (worksBetweenDates.Any()) { results.AddRange(worksBetweenDates); } } } return(results.ToObservableCollection()); } return(null); }