Esempio n. 1
0
        public async Task <ItemGroupDto> GetAsync(Guid id, bool includeTasks = false)
        {
            await AuthoriseAsync(_client, _authenticationService);

            var response = await _client.GetAsync <ItemGroupDto>(GroupUrls.GetGroupUrl(id, includeTasks));

            return(await _proxyHelper.ProcessResponseAsync(response, this));
        }
Esempio n. 2
0
        public async Task GetGroupsAsync_Always_HandlesResult(bool includeTasks)
        {
            //Arrange
            var sut      = CreateSut();
            var response = new Mock <IHttpResponse <IEnumerable <ItemGroupDto> > >();

            Mocker.GetMock <IHttpClient>()
            .Setup(o => o.GetAsync <IEnumerable <ItemGroupDto> >(GroupUrls.GetGroupsUrl(includeTasks)))
            .ReturnsAsync(response.Object);

            var groupDto = new ItemGroupDto(Guid.NewGuid(), "", "", "", new List <TaskDto>());

            Mocker.GetMock <IProxyHelper>()
            .Setup(o => o.ProcessResponseAsync(response.Object, sut))
            .ReturnsAsync(new[] { groupDto });

            //Act
            var result = await sut.GetGroupsAsync(includeTasks);

            //Assert
            result.Count().ShouldBe(1);
        }
Esempio n. 3
0
        public async Task GetAsync_Always_Gets()
        {
            //Arrange
            var sut      = CreateSut();
            var id       = Guid.NewGuid();
            var response = new Mock <IHttpResponse <ItemGroupDto> >();

            Mocker.GetMock <IHttpClient>()
            .Setup(o => o.GetAsync <ItemGroupDto>(GroupUrls.GetGroupUrl(id, true)))
            .ReturnsAsync(response.Object);

            var groupDto = new ItemGroupDto(id, "", "", "", new List <TaskDto>());

            Mocker.GetMock <IProxyHelper>()
            .Setup(o => o.ProcessResponseAsync(response.Object, sut))
            .ReturnsAsync(groupDto);

            //Act
            var result = await sut.GetAsync(id, true);

            //Assert
            result.Id.ShouldBe(id);
        }
Esempio n. 4
0
        public ClientService(IDownloadService downloadService, ILocalStorageService localStorageService,
                             IDownloader downloader, IFormatter serializationFormatter)
        {
            DownloadService        = downloadService;
            LocalStorageService    = localStorageService;
            Downloader             = downloader;
            SerializationFormatter = serializationFormatter;

            Groups = GroupUrls
                     .Connect()
                     .Transform(g => new Uri(g))
                     .TransformAsync(Load <Group>)
                     .AsObservableList();
            Repos = Groups
                    .Connect()
                    .TransformMany(g => g.RepoInfos.Select(r => new Uri(g.BaseUri, r.Uri)))
                    .TransformAsync(Load <Repo>)
                    .AsObservableList();
            Modpacks = Repos
                       .Connect()
                       .TransformMany(r => r.Modpacks)
                       .AsObservableList();
        }
Esempio n. 5
0
 public ClientService(IDownloader downloader, IFormatter serializationFormatter, DirectoryInfo localStorage)
 {
     fileAccessService           = new FileAccessService(localStorage);
     this.downloader             = downloader;
     this.serializationFormatter = serializationFormatter;
     filesAvailable.Edit(l => { l.AddOrUpdate(fileAccessService.FilesAvailable()); });
     LogTo.Warning("Creating pipeline");
     Repos = GroupUrls.Connect()
             .Transform(g => new Uri(g))
             .TransformAsync(Load <Group>)
             .TransformMany(g => g.RepoInfos.Select(r => g.CombineBaseUri(r.Uri)), repoUri => repoUri)
             .TransformAsync(Load <Repo>)
             .OnItemUpdated((repo, _) => LogTo.Information("Repo from {url} has been loaded", repo.BaseUri))
             .AsObservableCache();
     d.Add(Repos);
     OnlineFiles = Repos.Connect()
                   .TransformMany(
         repo => repo.Files.Select(kvp => new OnlineFile(kvp.Key, repo.CombineBaseUri(kvp.Value))),
         of => of.FileSignature).AsObservableCache();
     d.Add(OnlineFiles);
     Modpacks = Repos.Connect()
                .TransformMany(r => r.Modpacks.Select(m => new Modpack(m)), m => m.Id).AsObservableCache();
     d.Add(Modpacks);
 }