async Task SetData(AsanaTask task) { Task = task; IsForSync = task.IsForSync; Status = Statuses.FirstOrDefault(x => x.name == task.assignee_status); Name = task.name; Notes = task.notes; IsUseDueDate = task.due_on.HasValue; DueDate = task.due_on.HasValue ? task.due_on.Value : DateTime.Today; IsUseDueDate = task.due_on.HasValue; IsCompleted = task.completed; ProjectId = task.projectid; if (task.assigneeid > 0) { UserId = task.assigneeid; } SelectedFollowers = Followers.Where(x => task.GetFollowers().Contains(x.id)).ToList(); OldFollowersIds = SelectedFollowers.Select(x => x.id).ToList(); var tags = await new StorageService().GetTagsByTask(task.id); OldTagsIds = tags.Select(x => x.id).ToList(); SelectedTags = Tags.Where(x => OldTagsIds.Contains(x.id)).ToList(); }
async Task SetTaskInfo(AsanaTask task) { var info = new TaskInfo(); info.Name = task.DisplayName; info.Notes = task.notes; info.IsCompleted = task.completed; var project = await new StorageService().Find <AsanaProject>(task.projectid); string projectName = ""; if (project != null) { projectName = project.name; } else { projectName = "Unknown"; } info.ProjectName = string.Format(@"{0} / {1}", projectName, (await new StorageService().Find <AsanaWorkspace>(task.workspaceid)).name); if (task.assigneeid > 0) { info.HasAssignee = true; var assignee = await new StorageService().Find <AsanaUser>(task.assigneeid); info.AssigneeName = assignee != null ? assignee.name : "Unknown"; } if (task.due_on.HasValue) { info.DueDate = task.DueOn; info.HasDueDate = true; } info.HasStatus = !string.IsNullOrEmpty(task.assignee_status); info.Status = task.assignee_status; info.IsForSync = task.IsForSync; info.IsOverdue = task.IsOverDue; if (task.parentId != null) { var parent = await new StorageService().Find <AsanaTask>(task.parentId.Value); if (parent != null) { info.HasParent = true; info.ParentName = parent.DisplayName; } } var followersId = task.GetFollowers(); info.HasFollowers = followersId.Any(); info.Followers = new List <AsanaUser>(); foreach (var l in followersId) { var user = await new StorageService().Find <AsanaUser>(l); if (user != null) { info.Followers.Add(user); } else { info.Followers.Add(new AsanaUser() { name = "Unknown" }); } } info.NotifyFollowers(); Task = info; }
public async Task <Tuple <AsanaTask, bool> > SyncTask(AsanaTask task) { var dto = MapperService.CreateTaskDTO(0, task.name, task.notes, task.projectid, task.assignee_status, task.assigneeid, task.completed, task.due_on, task.GetFollowers()); var response = await new AsanaApiRepository().CreateTask(task.workspaceid, dto, task.parentId); if (AsanaClient.ProcessResponse(response, !_isUserActionRequest)) { MapperService.Map(response.Data, task.projectid, task.workspaceid); return(new Tuple <AsanaTask, bool>(response.Data, true)); } return(new Tuple <AsanaTask, bool>(null, false)); }