private void OnItemSelected(object sender, DialogClickEventArgs args) { if (model != null) { var m = adapter.GetEntry(args.Which); TaskModel task = null; ProjectModel project = null; WorkspaceModel workspace = null; if (m is TaskModel) { task = (TaskModel)m; project = task != null ? task.Project : null; workspace = project != null ? project.Workspace : null; } else if (m is ProjectAndTaskView.Project) { var wrap = (ProjectAndTaskView.Project)m; if (wrap.IsNoProject) { workspace = wrap.WorkspaceModel; } else if (wrap.IsNewProject) { var proj = wrap.Model; // Show create project dialog instead new CreateProjectDialogFragment(model, proj.Workspace, proj.Color) .Show(FragmentManager, "new_project_dialog"); } else { project = wrap.Model; workspace = project != null ? project.Workspace : null; } } else if (m is ProjectAndTaskView.Workspace) { var wrap = (ProjectAndTaskView.Workspace)m; workspace = wrap.Model; } if (project != null || task != null || workspace != null) { model.Workspace = workspace; model.Project = project; model.Task = task; } } Dismiss(); }
private async void OnItemSelected(object sender, DialogClickEventArgs args) { if (modelLoaded && model != null) { var m = adapter.GetEntry(args.Which); TaskModel task = null; ProjectModel project = null; WorkspaceModel workspace = null; if (m is TaskData) { task = (TaskModel)(TaskData)m; if (task.Project != null) { await task.Project.LoadAsync(); project = task.Project; workspace = project.Workspace ?? task.Workspace; } else { workspace = task.Workspace; } } else if (m is ProjectAndTaskView.Project) { var wrap = (ProjectAndTaskView.Project)m; if (wrap.IsNoProject) { workspace = new WorkspaceModel(wrap.WorkspaceId); } else if (wrap.IsNewProject) { var data = wrap.Data; var ws = new WorkspaceModel(data.WorkspaceId); // Show create project dialog instead new CreateProjectDialogFragment(model, ws, data.Color) .Show(FragmentManager, "new_project_dialog"); } else { project = (ProjectModel)wrap.Data; workspace = project.Workspace; } } else if (m is ProjectAndTaskView.Workspace) { var wrap = (ProjectAndTaskView.Workspace)m; workspace = (WorkspaceModel)wrap.Data; } if (project != null || task != null || workspace != null) { model.Workspace = workspace; model.Project = project; model.Task = task; await model.SaveAsync(); } } }