private void OnChannelSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            var combo = (ComboBox)sender;
            var item  = (RepositoryListItem)RepoListView.SelectedItem;

            Task.Run(async() => {
                var app            = PahkatApp.Current;
                var repoRecords    = await app.PackageStore.GetRepoRecords();
                var newRepoRecords = new Dictionary <Uri, RepoRecord>();

                foreach (var repositoryListItem in RepoList)
                {
                    var url     = repositoryListItem.Url;
                    var channel = repositoryListItem.Channel;

                    newRepoRecords[url] = new RepoRecord {
                        Channel = channel == "" ? null : channel,
                    };
                }

                foreach (var key in newRepoRecords.Keys)
                {
                    if (newRepoRecords[key] != repoRecords[key])
                    {
                        var value = newRepoRecords[key];
                        // Work around protobuf null hatred
                        value.Channel ??= "";

                        await app.PackageStore.SetRepo(key, newRepoRecords[key]);
                    }
                }
            });
        }
        public Task <Dictionary <Uri, RepoRecord> > SetRepo(Uri url, RepoRecord record)
        {
            return(Task.Run(() => {
                throw new NotImplementedException();

                return new Dictionary <Uri, RepoRecord>();
            }));
        }
예제 #3
0
        public async Task <Dictionary <Uri, RepoRecord> > SetRepo(Uri url, RepoRecord record)
        {
            var response = await innerClient.SetRepoAsync(new SetRepoRequest {
                Settings = new Grpc.RepoRecord {
                    Channel = record.Channel,
                },
                Url = url.AbsoluteUri,
            });

            return(response.Records.Map(pair => {
                return (new Uri(pair.Key), new RepoRecord {
                    Channel = pair.Value.Channel
                });
            }).ToDict());
        }