private async Task LogoutAsync()
        {
            this.ErrorHandler.ClearError();
            await gistClientService.LogoutAsync();

            Gists.Clear();
            this.IsAuthenticated  = false;
            this.SearchExpression = string.Empty;
        }
        private async Task RefreshAsync()
        {
            var gists = await gistClientService.GetGistsAsync();

            Gists.RemoveRange(Gists.Where(g => g.GetType() == typeof(CreateGistViewModel)).ToList());

            var newGists      = gists.Except(Gists.Select(g => g.Gist), gistEqualityComparer).ToList();
            var deletedGists  = Gists.Where(g => !gists.Contains(g.Gist, gistEqualityComparer)).ToList();
            var existingGists = Gists.Where(g => gists.Contains(g.Gist, gistEqualityComparer)).ToList();

            Gists.RemoveRange(deletedGists);
            Gists.AddRange(newGists.Select(ng => new GistViewModel(ng, gistClientService, AsyncOperationStatusManager, ErrorHandler)));

            foreach (var existingGist in existingGists)
            {
                HandleExistingGist(existingGist, gists.Single(g => g.Id == existingGist.Gist.Id));
            }
        }
Exemple #3
0
 protected override Task Load()
 {
     return(Gists.SimpleCollectionLoad(CreateRequest()));
 }
Exemple #4
0
        public void GetAllGists(string Username)
        {
            var Response = GetWebString($"https://api.github.com/users/{Username}/gists?per_page=10000");

            GlobalGists = Gists.FromJson(Response);
        }
 protected override Task Load(bool forceDataRefresh)
 {
     return(Gists.SimpleCollectionLoad(CreateRequest(), forceDataRefresh));
 }
Exemple #6
0
 public CurrentUserGistsViewModel(string username, IMessageService messageService = null)
     : base(ApiUrls.UsersGists(username))
 {
     messageService = messageService ?? Locator.Current.GetService <IMessageService>();
     _addToken      = messageService.Listen <GistAddMessage>(msg => Gists.Insert(0, msg.Gist));
 }
 private void InitCreate(string content, bool isPublic) =>
 Gists.Add(new CreateGistViewModel(isPublic, content, gistClientService, AsyncOperationStatusManager, ErrorHandler));