internal sealed override async Task PerformRefresh(bool force, CancellationToken ct) { IncorporateLimit(); _requestParameters["_id"] = OwnerId; var allParameters = AdditionalParameters.Concat(CardContext.CurrentParameters) .ToDictionary(kvp => kvp.Key, kvp => kvp.Value); var endpoint = EndpointFactory.Build(_updateRequestType, _requestParameters); var newData = await JsonRepository.Execute <List <IJsonCard> >(Auth, endpoint, ct, allParameters); var previousItems = new List <ICard>(Items); Items.Clear(); EventAggregator.Unsubscribe(this); Items.AddRange(newData.Select(jc => { var card = jc.GetFromCache <Card, IJsonCard>(Auth); card.Json = jc; return(card); })); EventAggregator.Subscribe(this); var removedItems = previousItems.Except(Items, CacheableComparer.Get <ICard>()).OfType <Card>().ToList(); foreach (var item in removedItems) { item.Json.List = null; } }
internal sealed override async Task PerformRefresh(bool force, CancellationToken ct) { var allParameters = AdditionalParameters.Concat(MemberContext.CurrentParameters) .ToDictionary(kvp => kvp.Key, kvp => kvp.Value); var endpoint = EndpointFactory.Build(_updateRequestType, new Dictionary <string, object> { { "_id", OwnerId } }); var newData = await JsonRepository.Execute <List <IJsonMember> >(Auth, endpoint, ct, allParameters); Items.Clear(); EventAggregator.Unsubscribe(this); Items.AddRange(newData.Select(jm => { var member = jm.GetFromCache <Member, IJsonMember>(Auth); member.Json = jm; return(member); })); EventAggregator.Subscribe(this); }
internal sealed override async Task PerformRefresh(bool force, CancellationToken ct) { IncorporateLimit(); var allParameters = AdditionalParameters.Concat(NotificationContext.CurrentParameters) .ToDictionary(kvp => kvp.Key, kvp => kvp.Value); var endpoint = EndpointFactory.Build(EntityRequestType.Member_Read_Notifications, new Dictionary <string, object> { { "_id", OwnerId } }); var newData = await JsonRepository.Execute <List <IJsonNotification> >(Auth, endpoint, ct, allParameters); Items.Clear(); Items.AddRange(newData.Select(jn => { var notification = jn.GetFromCache <Notification, IJsonNotification>(Auth); notification.Json = jn; return(notification); })); }
internal sealed override async Task PerformRefresh(bool force, CancellationToken ct) { var allParameters = AdditionalParameters.Concat(CheckListContext.CurrentParameters) .ToDictionary(kvp => kvp.Key, kvp => kvp.Value); var endpoint = EndpointFactory.Build(EntityRequestType.Card_Read_CheckLists, new Dictionary <string, object> { { "_id", OwnerId } }); var newData = await JsonRepository.Execute <List <IJsonCheckList> >(Auth, endpoint, ct, allParameters); Items.Clear(); EventAggregator.Unsubscribe(this); Items.AddRange(newData.Select(jc => { var checkList = jc.GetFromCache <CheckList, IJsonCheckList>(Auth); checkList.Json = jc; return(checkList); })); EventAggregator.Subscribe(this); }
internal sealed override async Task PerformRefresh(bool force, CancellationToken ct) { var allParameters = AdditionalParameters.Concat(AttachmentContext.CurrentParameters) .Where(kvp => ((string)kvp.Value).Contains("attachments")) .ToDictionary(kvp => $"attachments_{kvp.Key}", kvp => kvp.Value); var endpoint = EndpointFactory.Build(EntityRequestType.Card_Read_Attachments, new Dictionary <string, object> { { "_id", OwnerId } }); var newData = await JsonRepository.Execute <List <IJsonAttachment> >(Auth, endpoint, ct, allParameters); Items.Clear(); EventAggregator.Unsubscribe(this); Items.AddRange(newData.Select(ja => { var attachment = TrelloConfiguration.Cache.Find <Attachment>(ja.Id) ?? new Attachment(ja, OwnerId, Auth); attachment.Json = ja; return(attachment); })); }
internal sealed override async Task PerformRefresh(bool force, CancellationToken ct) { IncorporateLimit(); var allParameters = AdditionalParameters.Concat(ListContext.CurrentParameters) .ToDictionary(kvp => kvp.Key == "filter" ? kvp.Key : $"list_{kvp.Key}", kvp => kvp.Value); var endpoint = EndpointFactory.Build(EntityRequestType.Board_Read_Lists, new Dictionary <string, object> { { "_id", OwnerId } }); var newData = await JsonRepository.Execute <List <IJsonList> >(Auth, endpoint, ct, allParameters); Items.Clear(); EventAggregator.Unsubscribe(this); Items.AddRange(newData.Select(jl => { var list = jl.GetFromCache <List, IJsonList>(Auth); list.Json = jl; return(list); })); EventAggregator.Subscribe(this); }
internal sealed override async Task PerformRefresh(bool force, CancellationToken ct) { IncorporateLimit(); var allParameters = AdditionalParameters.Concat(OrganizationContext.CurrentParameters) .ToDictionary(kvp => kvp.Key, kvp => kvp.Value); var endpoint = EndpointFactory.Build(EntityRequestType.Member_Read_Organizations, new Dictionary <string, object> { { "_id", OwnerId } }); var newData = await JsonRepository.Execute <List <IJsonOrganization> >(Auth, endpoint, ct, allParameters); Items.Clear(); EventAggregator.Unsubscribe(this); Items.AddRange(newData.Select(jo => { var org = jo.GetFromCache <Organization, IJsonOrganization>(Auth); org.Json = jo; return(org); })); EventAggregator.Subscribe(this); }
internal sealed override async Task PerformRefresh(bool force, CancellationToken ct) { IncorporateLimit(); var allParameters = AdditionalParameters.Concat(BoardContext.CurrentParameters) .ToDictionary(kvp => kvp.Key == "filter" ? kvp.Key : $"boards_{kvp.Key}", kvp => kvp.Value); var endpoint = EndpointFactory.Build(_updateRequestType, new Dictionary <string, object> { { "_id", OwnerId } }); var newData = await JsonRepository.Execute <List <IJsonBoard> >(Auth, endpoint, ct, allParameters); Items.Clear(); EventAggregator.Unsubscribe(this); Items.AddRange(newData.Select(jb => { var board = jb.GetFromCache <Board, IJsonBoard>(Auth); board.Json = jb; return(board); })); EventAggregator.Subscribe(this); }