/// <summary> /// Get a project by current user and name. If not found, then create a new project. /// </summary> /// <param name="user"></param> /// <param name="projectName"></param> /// <returns></returns> public static ProjectDto GetAProject(PrivateUserDto user, string projectName) { var api = new ProjectsApi(); try { var d = api.GetProject(user.Username, projectName); return(d); } catch (ApiException e) { // Project not found if (e.ErrorCode == 404) { var ifPublic = projectName == "unnamed"; var res = api.CreateProject(user.Username, new PatchProjectDto(projectName, _public: ifPublic)); return(GetAProject(user, projectName)); } throw e; } //var d = GetProjects(user).FirstOrDefault(_ => _.Name == projectName); //return d; }
public Project CreateProject(string projName) { var projs = api.ListProjects(owner: new List <string>() { Helper.CurrentUser.Username }).Resources; var found = projs.FirstOrDefault(_ => _.Name == this.NewProject); var owner = Helper.CurrentUser.Username; var projectCreate = new ProjectCreate(projName); var response = api.CreateProject(owner, projectCreate); var proj = api.GetProject(owner, projName); return(proj); }
private static Project CreateAProject(UserPrivate user) { var userName = user.Username; //var userName = "******"; var api = new ProjectsApi(); var name = "My new project " + Guid.NewGuid().ToString().Substring(0, 5); var proj = new ProjectCreate(name, "A new project from GH"); Console.WriteLine("---------------------------------------"); Console.WriteLine($"Creating project: {name}"); var res = api.CreateProject(userName, proj); Console.WriteLine($"New project id: {res.Id}"); Console.WriteLine(res.Message); var newProj = Helper.GetAProject(user.Username, name); return(newProj); }
/// <summary> /// Get a project by current user and name. If not found, then create a new project. /// </summary> /// <param name="user"></param> /// <param name="projectName"></param> /// <returns></returns> public static Project GetAProject(string userName, string projectName) { var api = new ProjectsApi(); try { var d = api.GetProject(userName, projectName); return(d); } catch (ApiException e) { // Project not found and person account, create a default demo project. if (e.ErrorCode == 404 && userName == Helper.CurrentUser.Username) { Logger.Information($"Project {projectName} is not found in account {userName}. Now creating this project."); var ifPublic = projectName == "demo"; var res = api.CreateProject(userName, new ProjectCreate(projectName, _public: ifPublic)); return(GetAProject(userName, projectName)); } Helper.Logger.Error(e, $"GetAProject: failed to get the project {userName}/{projectName}"); throw e; } }