Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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;
 }
Esempio n. 7
0
        public ActionResult CreateProject(Project project)
        {
            if (this.userService.CanUserCreateProject())
            {
                CreateProjectResult projectResult = this.projectService.CreateProject(project);
                return(this.Json(projectResult, JsonRequestBehavior.AllowGet));
            }

            return(null);
        }
Esempio n. 8
0
        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());
        }
Esempio n. 10
0
        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();
                }
            });
        }
Esempio n. 12
0
        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);
        }
Esempio n. 13
0
        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);
        }
Esempio n. 14
0
        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);
        }
Esempio n. 15
0
        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();
        }