/********** CONSTRUCTOR **********/ public TaskModel(DictModel dict, IReadOnlyList <UserModel> memberList) { Id = dict.i("id"); Title = dict.s("title"); Description = dict.s("description"); ProjectId = dict.i("project_id"); foreach (var i in dict.l("members")) { DictModel d = i.ToString(); UserModel member = null; foreach (var m in memberList) { if (m.Id == d.i("id")) { member = m; break; } } if (member != null) { AddMember(member); } } }
public async Task <DictModel> CreateTask(DictModel taskDict) { DictModel dict = new DictModel("task"); dict.Add("title", taskDict.s("title")); dict.Add("description", taskDict.s("description")); dict.Add("list", taskDict.s("list")); string uri = Globals.PROJECTS_URI + "/" + taskDict.i("project_id") + "/" + Globals.TASKS_URI; return(await MakeRequestAsync(uri, dict, RequestMethod.POST)); }
public static async Task <ProjectModel> CreateProject(string projectName) { DictModel response = await Instance.ApiManager.CreateProject(projectName); response.EnsureValid(); return(User.AddProject(response.s("project"))); }
/********** CONTROL PANEL **********/ public static async Task TryAutoLogin() { DictModel response = await Instance.ApiManager.AutoLogin(); Debug.WriteLine("AutoLogin response: " + response.ToString()); response.EnsureValid(); User.UpdateWithJson(response.s("user")); }
public static async Task <TaskModel> CreateTask(DictModel taskDict, ProjectModel project) { taskDict.Add("project_id", project.Id); DictModel response = await Instance.ApiManager.CreateTask(taskDict); var task = project.AddTask(response.s("task"), taskDict.s("list")); return(task); }
public static async Task Login(string email, string password) { DictModel response = await Instance.ApiManager.Login(email, password); Debug.WriteLine("Login response: " + response.ToString()); response.EnsureValid(); User.UpdateWithJson(response.s("user")); UseRootPage(new RootSessionPage()); }
public static async Task Register(string email, string password, string username) { DictModel response = await Instance.ApiManager.Register(email, password, username); Debug.WriteLine("Register response: " + response.ToString()); response.EnsureValid(); User.UpdateWithJson(response.s("user")); UseRootPage(new RootSessionPage()); }
public void UpdateWithJson(string json) { DictModel dict = json; Id = dict.i("id"); Email = dict.s("email"); foreach (var p in dict.l("projects")) { AddProject(p.ToString()); } UpdatePotentialProjects(dict); }
private async Task ShowRegister() { bool success = false; while (!success) { success = true; DictModel dict = await OverlayForm(registerForm); try { if (dict != null) { if (dict.ContainsKey("email") && dict.ContainsKey("username") && dict.ContainsKey("password") && dict.ContainsKey("confPassword")) { if (dict.s("password") == dict.s("confPassword")) { await App.Register(dict.s("email"), dict.s("password"), dict.s("username")); } else { throw new Exception("Passwords don't match."); } } else { throw new Exception("All fields much be completed."); } } } catch (Exception ex) { Debug.WriteLine("ShowRegister(): " + ex.ToString()); await DisplayAlert("Error", ex.Message, "OK"); success = false; } } }
private async Task ShowLogin() { bool success = false; while (!success) { success = true; DictModel dict = await OverlayForm(loginForm); try { if (dict != null) { await App.Login(dict.s("email"), dict.s("password")); } } catch (Exception ex) { Debug.WriteLine(ex.ToString()); await DisplayAlert("Error", ex.Message, "OK"); success = false; } } }
private async Task ShowProjectForm() { DictModel dict = await OverlayForm(projectForm); try { if (dict != null) { await App.CreateProject(dict.s("title")); list.BeginRefresh(); } } catch (Exception ex) { Debug.WriteLine(ex.ToString()); await DisplayAlert("Error creating project", ex.Message, "OK"); } }
private async Task ProjectActionSelected(ListView sender) { var a = (sender.SelectedItem as Label); if (a != null) { root.IsPresented = false; sender.SelectedItem = null; //TODO: don't check by title if (a.Text == "Member list") { var memberListPage = MakeNavPage(new MemberListPage(projectContext)); PageSelectedCallback.Invoke(memberListPage); } else if (a.Text == "Invite user to project") { var currentPage = (root.Detail as NavigationPage).CurrentPage; BasePage theCurrentestPage; if (currentPage is TabbedPage) { var theTabbedPage = currentPage as TabbedPage; theCurrentestPage = theTabbedPage.CurrentPage as BasePage; } else { theCurrentestPage = currentPage as BasePage; } //TODO: WHAT'S THIS?? // theTabbedPage.ToolbarItems DictModel response = await theCurrentestPage.OverlayForm(new InvitationForm (projectContext)); if (response != null) { string email = response.s("email"); try { await App.InviteUserToProject(email, projectContext.Id); await DisplayAlert("Sweet!", "Successfully invited " + email + " to " + projectContext.Name, "OK"); } catch (Exception ex) { await DisplayAlert("Sorry", ex.Message, "OK"); } } } } }
/********** CONSTRUCTOR **********/ public ProjectModel(DictModel dict) { Id = dict.i("id"); Name = dict.s("name"); foreach (var m in dict.l("members")) { AddMember(m.ToString()); } foreach (var t in dict.l("tasks_todo")) { AddTask(t.ToString(), "todo"); } foreach (var t in dict.l("tasks_doing")) { AddTask(t.ToString(), "doing"); } foreach (var t in dict.l("tasks_done")) { AddTask(t.ToString(), "done"); } }
public UserModel(DictModel dict) { Id = dict.i("id"); Email = dict.s("email"); }