public static void CreateOrUpdateTileForProject(Project project, int count) { StandardTileData NewTileData = new StandardTileData { Title = project.name, BackgroundImage = null, Count = count, BackTitle = project.name, BackBackgroundImage = null, BackContent = "You have uncompleted tasks for today" }; if (!Tiles.Keys.Select(key => key == project).FirstOrDefault()) { ShellTile.Create(new Uri("/SecondaryTile.xaml?Project=", UriKind.Relative), NewTileData); string IdentifyFromString = String.Format("ProjectName={0}&ProjectId={1}", project.name, project.id); ShellTile TileOfProjectCreated = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains(IdentifyFromString)); Tiles.Add(project, TileOfProjectCreated); } else { Tiles[project].Update(NewTileData); } }
internal static Uri TaskDetailPage(Project project, Item task) { TaskDetail.Project = project; TaskDetail.Task = task; return new Uri("/Pages/TaskDetail.xaml", UriKind.Relative); }
internal static Uri EditProjectPage(Project project) { EditProject.projSelected = project; return new Uri("/Pages/EditProject.xaml", UriKind.Relative); }
internal static Uri ProjectDetailPage(Project selected) { ProjectDetail.projectSelected = selected; return new Uri("/Pages/ProjectDetail.xaml", UriKind.Relative); }
internal static Uri AddTaskPage(Project selected) { AddTask.projectSelected = selected; return new Uri("/Pages/AddTask.xaml", UriKind.Relative); }
internal static Uri AddNotePage(Project project, Item taskSelected) { Pages.AddNotePage.Project = project; Pages.AddNotePage.Task = taskSelected; return new Uri("/Pages/AddNotePage.xaml", UriKind.Relative); }
void doneIconButton_Click(object sender, EventArgs e) { TodoistService todoistService = new TodoistService(); var cmdTimeGenerated = DateTime.Now; var tempID = Utils.DateTimeToUnixTimestamp(cmdTimeGenerated).ToString(); Project Project = new Project { name = projectNameTextBox.Text, color = ((int)ColorPickerListBox.SelectedItem), }; doneIconButton.IsEnabled = false; todoistService.AddProject(cmdTimeGenerated, Project, (data) => { app.projects.Insert(0, Project); Utils.DateTimeToUnixTimestamp(cmdTimeGenerated).ToString(); Project.id = data.TempIdMapping[tempID]; //MainTodoistPage.updateProjectList(data.Projects); MainTodoistPage.showMessage = (progress) => { Utils.ProgressIndicatorStatus(String.Format("\"{0}\" added.", Project.name), progress); }; }, (errorMsg) => { MessageBox.Show(Utils.Message(errorMsg), "Metroist", MessageBoxButton.OK); }, () => { doneIconButton.IsEnabled = true; var currentPage = app.RootFrame.Content as PhoneApplicationPage; if(currentPage == this) NavigationService.GoBack(); }); }
private void UpdateDeletingToServer(Project project, int indexOf) { TodoistService todoistService = new TodoistService(); var commandTimeGenerated = DateTime.Now; deleteIconButton.IsEnabled = false; todoistService.RemoveTask(commandTimeGenerated, Task, (data) => { app.items.RemoveAt(indexOf); project.cache_count--; taskDeleted = true; MainTodoistPage.updateProjectList(data.Projects); }, (errorMsg) => { //@TODO: Error dynamic }, () => { deleteIconButton.IsEnabled = true; var currentPage = app.RootFrame.Content as PhoneApplicationPage; if (currentPage == this) NavigationService.GoBack(); }); }
private void UpdateBasedOnTemporaryDessychronized(Data data) { if (app.TemporaryDesynchronized.Count > 0) { var addProjects = app.TemporaryDesynchronized.Where(x => (x["type"] as string).Contains("project_add")).ToList(); var removeProjects = app.TemporaryDesynchronized.Where(x => (x["type"] as string).Contains("project_delete")).ToList(); if (addProjects.Count > 0) { foreach (var addProject in addProjects) { Project Project = new Project { name = (string)(addProject["args"] as Dictionary<string, object>)["name"], color = (int)(addProject["args"] as Dictionary<string, object>)["color"], }; string tempKey = (addProject["temp_id"]).ToString(); if (data.TempIdMapping.ContainsKey(tempKey)) Project.id = data.TempIdMapping[tempKey]; data.Projects.Add(Project); } } if (removeProjects.Count > 0) { foreach (var removeProject in removeProjects) { var dicTempArgs = removeProject["args"] as Dictionary<string, object>; var tempStringIdProjects = (dicTempArgs["ids"] as string).Replace("[", string.Empty).Replace("]", string.Empty).Split(','); List<int> idProjects = new List<int>(); foreach (var itemStringID in tempStringIdProjects) { idProjects.Add(Int32.Parse(itemStringID)); } if (idProjects.Count > 1) { throw new Exception("Multiple deletions is not implemented yet."); } var realProjectToRemove = data.Projects.Where(x => x.id == idProjects.First()).FirstOrDefault(); if (realProjectToRemove != null) { data.Projects.Remove(realProjectToRemove); } else { //Project was already remove at server, another words, do nothing :) } } } } }