예제 #1
0
        public CreateSnippetResult CreateSnippet(string title, string filename, string description, string code, string visibility)
        {
            CreateSnippetResult result = new CreateSnippetResult()
            {
                Message = "", Snippet = null
            };
            var user = _storage.GetUser();

            if (user == null)
            {
                throw new UnauthorizedAccessException(Strings.WebService_CreateProject_NotLoginYet);
            }
            try
            {
                var client = NGitLab.GitLabClient.Connect(user.Host, user.PrivateToken, VsApiVersionToNgitLabversion(user.ApiVersion));
                var pjt    = GetActiveProject();
                if (pjt.SnippetsEnabled)
                {
                    var snp = client.GetRepository(pjt.Id)
                              .ProjectSnippets
                              .Create(
                        new NGitLab.Models.ProjectSnippetInsert()
                    {
                        Title = title
                        ,
                        Code = code
                        ,
                        Description = description
                        ,
                        FileName = filename
                        ,
                        Visibility = visibility
                        ,
                        Id = pjt.Id
                    });
                    result.Snippet = snp;
                }
                else
                {
                    result.Message = Strings.TheSnippetsIsNotEnabled;
                }
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
                Console.WriteLine(ex.Message);
            }
            return(result);
        }
예제 #2
0
        public CreateSnippetResult CreateSnippet(string title, string filename, string description, string code, string visibility)
        {
            CreateSnippetResult result = new CreateSnippetResult()
            {
                Message = "", Snippet = null
            };

            try
            {
                var client = GetClient();
                var pjt    = GetActiveProject();
                if (pjt.SnippetsEnabled)
                {
                    var snp = client.GetRepository(pjt.Id)
                              .ProjectSnippets
                              .Create(
                        new NGitLab.Models.ProjectSnippetInsert()
                    {
                        Title = title
                        ,
                        Code = code
                        ,
                        Description = description
                        ,
                        FileName = filename
                        ,
                        Visibility = visibility
                        ,
                        Id = pjt.Id
                    });
                    result.Snippet = snp;
                }
                else
                {
                    result.Message = Strings.TheSnippetsIsNotEnabled;
                }
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
                Console.WriteLine(ex.Message);
            }
            return(result);
        }
        private void OnCreateSnippet()
        {
            Validate();

            if (HasErrors)
            {
                return;
            }

            IsBusy      = true;
            BusyContent = Strings.CreatingASnippetPleaseWait;
            var successed = false;
            CreateSnippetResult createSnippetResult = null;

            Task.Run(() =>
            {
                createSnippetResult = _web.CreateSnippet(Title, FileName, Desc, Code, Visibility);
                if (createSnippetResult != null)
                {
                    successed = createSnippetResult.Snippet != null;
                    if (NeedOpen && successed)
                    {
                        _shell.OpenUrl(createSnippetResult.Snippet.WebUrl);
                    }
                }
            }).ContinueWith(task =>
            {
                IsBusy      = false;
                BusyContent = null;

                if (successed)
                {
                    _dialog.Close();
                }
                else if (createSnippetResult != null && !string.IsNullOrEmpty(createSnippetResult.Message))
                {
                    MessageBox.Show(createSnippetResult.Message);
                }
                else
                {
                    MessageBox.Show(Strings.CreateSnippetViewModel_FailedToCreateSnippet);
                }
            }, TaskScheduler.FromCurrentSynchronizationContext()).Forget();
        }
예제 #4
0
        public async Task <CreateSnippetResult> CreateSnippetAsync(string title, string fileName, string desc, string code, bool visibility)
        {
            CreateSnippetResult result = null;
            var user = await _storage.GetUserAsync();

            if (user == null)
            {
                result = new CreateSnippetResult
                {
                    Success = false,
                    Message = Strings.NotLoginYet
                };
            }
            else
            {
                try
                {
                    var gists = await user.Session.CreateGists(fileName, code, desc, visibility);

                    result = new CreateSnippetResult
                    {
                        WebUrl  = gists.html_url,
                        Success = gists != null,
                        Message = Strings.GistsCreated
                    };
                }
                catch (Exception ex)
                {
                    OutputWindowHelper.ExceptionWriteLine($"LoginAsync:{ex.Message}", ex);
                    result = new CreateSnippetResult()
                    {
                        Success = false,
                        Message = ex.Message
                    };
                }
            }
            return(result);
        }