public async Task <CreateProjectResult> CreateProjectAsync(string name, string description, bool isPrivate, string namespaceid, Ownership owner) { var user = _storage.GetUser(); if (user == null) { throw new UnauthorizedAccessException(Strings.WebService_CreateProject_NotLoginYet); } var result = new CreateProjectResult(); try { if (string.IsNullOrEmpty(namespaceid)) { namespaceid = user.Username; } API.v1.Client client = CreateClient(user.Host, user.Username, user.Password); var u = await client.Users.GetCurrent(); var pjt = await u.Repositories.Create() .Name(name) .Description(description) .MakeAutoInit(false) .Owner(owner.UserName, owner.OwnerType == OwnershipTypes.Organization) .Start(); result.Project = (Project)pjt; } catch (Exception ex) { result.Message = ex.Message; } return(result); }
public CreateProjectResult createProject(string path, PrjoectType type) { CreateProjectResult rst = CreateProjectResult.Ok; if (type == PrjoectType.Spirit) { return(rst); } if (Directory.Exists(path) && Directory.GetFileSystemEntries(path).Length > 0) { rst = CreateProjectResult.DirectoryExist; return(rst); } try { Directory.CreateDirectory(path); lastProjectCtl.create(path, type); //pointEditCtl.load(path); var win = MainModel.ins.mainWin; win.openProject(path, type); } catch (Exception) { rst = CreateProjectResult.Error; } return(rst); }
private void OnSave() { CreateProjectResult result = null; string error = null; string clonePath = null; IsBusy = true; Task.Run(async() => { try { var pjts = await _web.GetProjects(); if (pjts.Any(p => p.Name == Name)) { error = string.Format(Strings.CreateViewModel_OnSave_TheProject0AlreadyExists, Name); } else { result = await _web.CreateProjectAsync(Name, Description, IsPrivate, SelectedNamespaces, SelectedOwner); if (result.Project != null) { clonePath = System.IO.Path.Combine(Path, result.Project.Name); InitialCommit(result.Project.Url); } } } catch (Exception ex) { error = ex.Message; } }).ContinueWith(task => { IsBusy = false; if (error != null) { _dialog.Error(error); } else if (result.Message != null) { _dialog.Error(result.Message); } else { var repository = new Repository { Name = result.Project.Name, Path = clonePath, Icon = result.Project.Icon }; _messenger.Send("OnClone", result.Project.Url, repository); _dialog.Close(); _storage.Configuration.LocalRepoPath = Path; _storage.SaveConfiguration(); } }, TaskScheduler.FromCurrentSynchronizationContext()); }
public CreateProjectResult CreateProject(string name, string description, bool isPrivate, int namespaceid) { var user = _storage.GetUser(); if (user == null) { throw new UnauthorizedAccessException(Strings.WebService_CreateProject_NotLoginYet); } var result = new CreateProjectResult(); try { var client = NGitLab.GitLabClient.Connect(user.Host, user.PrivateToken, VsApiVersionToNgitLabversion(user.ApiVersion)); var pjt = client.Projects.Create( new NGitLab.Models.ProjectCreate() { Description = description, Name = name, VisibilityLevel = isPrivate ? NGitLab.Models.VisibilityLevel.Private : NGitLab.Models.VisibilityLevel.Public , IssuesEnabled = true, ContainerRegistryEnabled = true, JobsEnabled = true, LfsEnabled = true, SnippetsEnabled = true, WikiEnabled = true, MergeRequestsEnabled = true , NamespaceId = namespaceid }); result.Project = (Project)pjt; } catch (Exception ex) { result.Message = ex.Message; } return(result); }
private void OnSave() { CreateProjectResult result = null; string error = null; string clonePath = null; IsBusy = true; Task.Run(() => { try { if (_web.GetProjects().Any(p => p.Name == Name)) { error = string.Format(Strings.CreateViewModel_OnSave_TheProject0AlreadyExists, Name); } else { int namespaceid = -1; int.TryParse(SelectedNamespaces, out namespaceid); result = _web.CreateProject(Name, Description, IsPrivate, namespaceid); if (result.Project != null) { clonePath = System.IO.Path.Combine(Path, result.Project.Name); InitialCommit(result.Project.Url); } } } catch (Exception ex) { error = ex.Message; } }).ContinueWith(task => { IsBusy = false; if (error != null) { _dialog.Error(error); } else if (result.Message != null) { _dialog.Error(result.Message); } else { var repository = new Repository { Name = result.Project.Name, Path = clonePath, Icon = result.Project.Icon }; _messenger.Send("OnClone", result.Project.Url, repository); _dialog.Close(); } }, TaskScheduler.FromCurrentSynchronizationContext()); }
public ProjectsViewOutputModel( ImmutableArray <ProjectInfo> organizations, CreateProjectResult createProjectResult, string organizationId) { Projects = organizations; CreateProjectResult = createProjectResult; OrganizationId = organizationId; }
public ActionResult CreateProject(Project project) { if (this.userService.CanUserCreateProject()) { CreateProjectResult projectResult = this.projectService.CreateProject(project); return(this.Json(projectResult, JsonRequestBehavior.AllowGet)); } return(null); }
public int CreateProject(CreateProjectModel model) { CreateProjectResult result = new CreateProjectResult(); result.Subject = model.Subject; result.Description = model.Description; result.StartTime = DateTime.Parse(model.StartTime); result.EndTime = DateTime.Parse(model.EndTime); return(_projectDataAccess.CreateProject(result)); }
private void OnPublish() { CreateProjectResult result = null; string error = null; IsBusy = true; Task.Run(() => { try { result = _web.CreateProject(RepositoryName, RepositoryDescription, IsPrivate); if (result.Project != null) { var activeRepository = _tes.GetActiveRepository(); var path = activeRepository == null ? _tes.GetSolutionPath() : activeRepository.Path; var user = _storage.GetUser(); var password = _storage.GetPassword(user.Host); _git.PushWithLicense(user.Name, user.Email, user.Username, password, result.Project.Url, path, SelectedLicense); } } catch (Exception ex) { error = ex.Message; _tes.ShowError(ex.Message); } }).ContinueWith(task => { IsBusy = false; if (error != null) { _tes.ShowError(error); } else if (result.Message != null) { _tes.ShowError(result.Message); } else { IsStarted = false; ShowGetStarted = true; OnPublished(); } }, TaskScheduler.FromCurrentSynchronizationContext()); }
public int CreateProject(CreateProjectResult createProjectResult) { Database db = new DatabaseProviderFactory().Create("JIRA"); using (DbCommand cmd = db.GetStoredProcCommand("[dbo].[CreateProject]")) { cmd.CommandTimeout = dbTimeout; db.AddInParameter(cmd, "@Subject", DbType.String, createProjectResult.Subject); db.AddInParameter(cmd, "@Description", DbType.String, createProjectResult.Description); db.AddInParameter(cmd, "@StartTime", DbType.DateTime2, createProjectResult.StartTime); db.AddInParameter(cmd, "@EndTime", DbType.DateTime2, createProjectResult.EndTime); db.AddOutParameter(cmd, "@Result", DbType.Int32, 4); DataSet ds = db.ExecuteDataSet(cmd); return((int)db.GetParameterValue(cmd, "@Result")); } }
private void OnPublish() { CreateProjectResult result = null; string error = null; IsBusy = true; ThreadHelper.JoinableTaskFactory.RunAsync(async() => { try { result = _web.CreateProject(RepositoryName, RepositoryDescription, SelectedVisibilityLevels); if (result.Project != null) { var activeRepository = _tes.GetActiveRepository(); var path = activeRepository == null ? _tes.GetSolutionPath() : activeRepository.Path; var user = _storage.GetUser(); var password = _storage.GetPassword(user.Host); _git.PushWithLicense(user.Name, user.Email, user.Username, password, result.Project.Url, path, SelectedLicense); } } catch (Exception ex) { error = ex.Message; _tes.ShowError(ex.Message); } await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); IsBusy = false; if (error != null) { _tes.ShowError(error); } else if (result.Message != null) { _tes.ShowError(result.Message); } else { IsStarted = false; ShowGetStarted = true; OnPublished(); } }); }
public async Task <ActionResult <CreateProjectResult> > Post([FromBody] CreateProject createProject, [FromQuery] bool redirect = true) { CreateProjectResult createProjectResult = await _mediator.Send(createProject); if (redirect) { TempData.Put(createProjectResult); if (createProject.OrganizationId.IsNullOrWhiteSpace()) { return(new RedirectToRouteResult(OrganizationConstants.OrganizationBaseRouteName)); } return(RedirectToRoute(ProjectConstants.ProjectsBaseRouteName, new { organizationId = createProject.OrganizationId })); } return(createProjectResult); }
public CreateProjectResult CreateProject(string name, string description, bool isPrivate, int namespaceid) { var result = new CreateProjectResult(); try { var client = GetClient(); var pjt = client.Projects.Create( new NGitLab.Models.ProjectCreate() { Description = description, Name = name, VisibilityLevel = isPrivate ? NGitLab.Models.VisibilityLevel.Private : NGitLab.Models.VisibilityLevel.Public , IssuesEnabled = true, ContainerRegistryEnabled = true, JobsEnabled = true, LfsEnabled = true, SnippetsEnabled = true, WikiEnabled = true, MergeRequestsEnabled = true , NamespaceId = namespaceid }); result.Project = (Project)pjt; } catch (Exception ex) { result.Message = ex.Message; } return(result); }
public CreateProjectResult CreateProject(string name, string description, string VisibilityLevel, int namespaceid) { var result = new CreateProjectResult(); try { NGitLab.Models.VisibilityLevel vl_temp = NGitLab.Models.VisibilityLevel.Private; if (!Enum.TryParse(VisibilityLevel, out vl_temp)) { vl_temp = NGitLab.Models.VisibilityLevel.Private; } var client = GetClient(); var pjt = client.Projects.Create( new NGitLab.Models.ProjectCreate() { Description = description, Name = name, VisibilityLevel = vl_temp, IssuesEnabled = true, ContainerRegistryEnabled = true, JobsEnabled = true, LfsEnabled = true, SnippetsEnabled = true, WikiEnabled = true, MergeRequestsEnabled = true , NamespaceId = namespaceid }); result.Project = pjt; } catch (Exception ex) { result.Message = ex.Message; } return(result); }
private void OnSave() { CreateProjectResult result = null; string error = null; string clonePath = null; IsBusy = true; string giturl = null; Task.Run(() => { try { if (_web.GetProjects().Any(p => p.Name == Name)) { error = string.Format(Strings.CreateViewModel_OnSave_TheProject0AlreadyExists, Name); } else { int namespaceid = -1; int.TryParse(SelectedNamespaces, out namespaceid); result = _web.CreateProject(Name, Description, SelectedVisibilityLevels, namespaceid); if (result.Project != null) { giturl = result.Project.Url; if (string.IsNullOrEmpty(result.Project.Url)) { // https://gitee.com/maikebing/asdfasdf.git giturl = $"{_storage.Host}/{result.Project.Owner.Username}/{result.Project.Name}.git"; } clonePath = System.IO.Path.Combine(Path, result.Project.Name); InitialCommit(giturl); } } } catch (Exception ex) { error = ex.Message; } }).ContinueWith(task => { IsBusy = false; if (error != null) { _dialog.Error(error); } else if (result.Message != null) { _dialog.Error(result.Message); } else { var repository = new Repository { Name = result.Project.Name, Path = clonePath, Icon = result.Project.Icon }; _messenger.Send("OnClone", giturl, repository); _dialog.Close(); } }, TaskScheduler.FromCurrentSynchronizationContext()).Forget(); }