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)); } }
protected override Task Load() { return(Gists.SimpleCollectionLoad(CreateRequest())); }
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)); }
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));