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);
            }));
        }
Ejemplo n.º 4
0
        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);
            }));
        }
Ejemplo n.º 6
0
        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);
        }