public PayInvoiceClient(PayInvoiceServiceClientSettings settings)
        {
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }

            if (string.IsNullOrEmpty(settings.ServiceUrl))
            {
                throw new ArgumentException("Service URL Required");
            }

            _httpClient = new HttpClient
            {
                BaseAddress           = new Uri(settings.ServiceUrl),
                DefaultRequestHeaders =
                {
                    {
                        "User-Agent",
                        $"{PlatformServices.Default.Application.ApplicationName}/{PlatformServices.Default.Application.ApplicationVersion}"
                    }
                }
            };

            _invoicesApi         = RestService.For <IInvoicesApi>(_httpClient);
            _merchantsApi        = RestService.For <IMerchantsApi>(_httpClient);
            _draftsApi           = RestService.For <IDraftsApi>(_httpClient);
            _filesApi            = RestService.For <IFilesApi>(_httpClient);
            _employeesApi        = RestService.For <IEmployeesApi>(_httpClient);
            _merchantSettingsApi = RestService.For <IMerchantSettingsApi>(_httpClient);
            _runner = new ApiRunner();
        }
Example #2
0
 public void OneTimeSetUp()
 {
     _testFolderName = "Test_Folder" + Guid.NewGuid();
     _factory        = EnvironmentCheck.FactoryForEnvironment();
     _filesApi       = _factory.Api <IFilesApi>();
     _foldersApi     = _factory.Api <IFoldersApi>();
 }
Example #3
0
        public void ShouldDeleteContainerAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            // Act & Assert
            filesApi.DeleteContainerAsync("applications").Wait();
        }
Example #4
0
        public void ShouldCreateContainersAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            // Act & Assert
            filesApi.CreateContainersAsync(false, "a", "b").Wait();
        }
Example #5
0
        public void ShouldReplaceTextFileContentsAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            // Act & Assert
            filesApi.ReplaceFileContentsAsync("applications", "calendar/test.txt", "Bye").Wait();
        }
Example #6
0
        public void ShouldDeleteFolderAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            // Act & Assert
            filesApi.DeleteFolderAsync("applications", "calendar").Wait();
        }
 public void OneTimeSetUp()
 {
     _testFolderName = "Test_Folder" + Guid.NewGuid();
     _testFolder     = "/" + _testFolderName;
     _factory        = LusidApiFactoryBuilder.Build("secrets.json");
     _filesApi       = _factory.Api <IFilesApi>();
     _foldersApi     = _factory.Api <IFoldersApi>();
 }
        public void ShouldReplaceBinaryFileContentsAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            byte[] data = { 50, 51, 52, 53, 54, 55, 56, 57 };

            // Act & Assert
            filesApi.ReplaceFileContentsAsync("calendar/test.bin", data).Wait();
        }
        public void ShouldCreateFolderAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            // Act & Assert
            filesApi.CreateFolderAsync("calendar").Wait();

            Should.Throw <ArgumentNullException>(() => filesApi.CreateFolderAsync(null));
        }
Example #10
0
 /// <summary>
 /// Initializes a new instance of the <see cref="BooksService" /> class.
 /// </summary>
 /// <param name="booksApi">The books API.</param>
 /// <param name="filesApi">The files API.</param>
 public BooksService(IBooksApi booksApi, IFilesApi filesApi)
 {
     this.booksApi = booksApi;
     this.filesApi = filesApi;
     this.MyBooks  = new ObservableServiceCollection <BookDto, BookFilter, IBooksService>(
         this,
         new BookFilter {
         MyBooks = true
     });
 }
Example #11
0
        public void ShouldDownloadContainerAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            // Act
            byte[] data = filesApi.DownloadContainerAsync("applications").Result;

            // Assert
            data.Length.ShouldBeGreaterThan(0);
        }
Example #12
0
        public void ShouldDeleteFileAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            // Act
            FileResponse fileResponse = filesApi.DeleteFileAsync("applications", "calendar/test.txt").Result;

            // Assert
            fileResponse.path.ShouldBe("applications/calendar/test.txt");
        }
        public void ShouldUploadFolderAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            // Act & Assert
            filesApi.UploadFolderAsync("calendar", "http://www.7-zip.org/a/7za920.zip", true).Wait();

            Should.Throw <ArgumentNullException>(() => filesApi.UploadFolderAsync(null, string.Empty, false));
            Should.Throw <ArgumentNullException>(() => filesApi.UploadFolderAsync(string.Empty, null, false));
        }
Example #14
0
        public void ShouldGetTextFileAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            // Act
            string content = filesApi.GetTextFileAsync("applications", "calendar/test.txt").Result;

            // Assert
            content.ShouldBe("Hello");
        }
        public void SetUp()
        {
            _factory  = LusidApiFactoryBuilder.Build();
            _filesApi = _factory.Api <IFilesApi>();
            var foldersApi = _factory.Api <IFoldersApi>();

            var testFolderId = foldersApi.GetRootFolder(filter: "Name eq 'SDK_Test_Folder'").Values.SingleOrDefault()?.Id;
            var createFolder = new CreateFolder("/", "SDK_Test_Folder");

            testFolderId ??= foldersApi.CreateFolder(createFolder).Id;
        }
        public void ShouldReplaceTextFileContentsAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            // Act & Assert
            filesApi.ReplaceFileContentsAsync("calendar/test.txt", "Bye").Wait();

            Should.Throw <ArgumentNullException>(() => filesApi.ReplaceFileContentsAsync("calendar/test.txt", (string)null));
            Should.Throw <ArgumentNullException>(() => filesApi.ReplaceFileContentsAsync(null, "Bye"));
        }
Example #17
0
        public void ShouldCreateFilesApi()
        {
            // Arrange
            HttpHeaders     headers = new HttpHeaders();
            IServiceFactory factory = new ServiceFactory(Mock.Of <IHttpAddress>(), Mock.Of <IHttpFacade>(), Mock.Of <IContentSerializer>(), headers);

            // Act
            IFilesApi api = factory.CreateFilesApi("files");

            // Assert
            api.ShouldNotBe(null);
        }
        public void ShouldGetResourcesAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            // Act
            List <StorageResource> resources = filesApi.GetResourcesAsync(ListingFlags.IncludeFiles | ListingFlags.IncludeFolders).Result.ToList();

            // Assert
            resources.Count.ShouldBe(4);
            resources.Count(x => x.Name == "applications").ShouldBe(1);
        }
        public void ShouldGetResourceNamesAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            // Act
            List <string> resources = filesApi.GetResourceNamesAsync().Result.ToList();

            // Assert
            resources.Count.ShouldBe(4);
            resources.Count(x => x == "applications").ShouldBe(1);
        }
        public void ShouldDownloadFolderAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            // Act
            byte[] data = filesApi.DownloadFolderAsync("calendar").Result;

            // Assert
            data.Length.ShouldBeGreaterThan(0);

            Should.Throw <ArgumentNullException>(() => filesApi.DownloadFolderAsync(null));
        }
        public void ShouldDeleteFileAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            // Act
            FileResponse fileResponse = filesApi.DeleteFileAsync("calendar/test.txt").Result;

            // Assert
            fileResponse.Path.ShouldBe("calendar/test.txt");

            Should.Throw <ArgumentNullException>(() => filesApi.DeleteFileAsync(null));
        }
        public void ShouldCreateBinaryFileAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            byte[] data = { 50, 51, 52, 53, 54, 55, 56, 57 };

            // Act
            FileResponse fileResponse = filesApi.CreateFileAsync("calendar/test.bin", data).Result;

            // Assert
            fileResponse.Path.ShouldBe("calendar/test.bin");
        }
        public void ShouldGetTextFileAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            // Act
            string content = filesApi.GetTextFileAsync("calendar/test.txt").Result;

            // Assert
            content.ShouldBe("Hello");

            Should.Throw <ArgumentNullException>(() => filesApi.GetTextFileAsync(null));
        }
 /// <summary>
 /// Set retry policy to try up to 20 times, every 15 seconds.
 /// </summary>
 /// <param name="filesApi"></param>
 public WaitForVirusScan(IFilesApi filesApi)
 {
     _filesApi = filesApi;
     _policy   =
         Policy
         .Handle <ApiException>(e => e.ErrorCode == 423 /* Virus scan in progress */)
         .WaitAndRetryAsync(
             20,
             sleepDurationProvider: (retryNumber) =>
     {
         Console.WriteLine($"retrying {retryNumber}");
         return(TimeSpan.FromSeconds(15));
     });
 }
Example #25
0
        public void ShouldGetBinaryFileAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            byte[] expected = { 1, 2, 3, 4, 5, 6, 7, 8 };

            // Act
            byte[] content = filesApi.GetBinaryFileAsync("applications", "calendar/test.bin").Result;

            // Assert
            content.Length.ShouldBe(8);
            content.ShouldBe(expected);
        }
Example #26
0
        public void ShouldGetContainerAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            // Act
            ContainerResponse result = filesApi.GetContainerAsync("applications", ListingFlags.IncludeEverything).Result;

            // Assert
            result.ShouldNotBe(null);
            result.name.ShouldBe("applications");
            result.folder.Count.ShouldBe(11);
            result.file.Count.ShouldBe(32);
        }
Example #27
0
        public void ShouldGetFolderAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            // Act
            FolderResponse folder = filesApi.GetFolderAsync("applications", "calendar", ListingFlags.IncludeEverything).Result;

            // Assert
            folder.ShouldNotBe(null);
            folder.name.ShouldBe("calendar");
            folder.folder.Count.ShouldBe(2);
            folder.file.Count.ShouldBe(6);
        }
        public void ShouldGetFolderAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            // Act
            FolderResponse folder = filesApi.GetFolderAsync("calendar", ListingFlags.IncludeEverything).Result;

            // Assert
            folder.ShouldNotBe(null);
            folder.Name.ShouldBe("calendar");
            folder.Folder.Count.ShouldBe(2);
            folder.File.Count.ShouldBe(6);

            Should.Throw <ArgumentNullException>(() => filesApi.GetFolderAsync(null, ListingFlags.IncludeEverything));
        }
        public void ShouldGetBinaryFileAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            byte[] expected = { 1, 2, 3, 4, 5, 6, 7, 8 };

            // Act
            byte[] content = filesApi.GetBinaryFileAsync("calendar/test.bin").Result;

            // Assert
            content.Length.ShouldBe(8);
            content.ShouldBe(expected);

            Should.Throw <ArgumentNullException>(() => filesApi.GetBinaryFileAsync(null));
        }
Example #30
0
        public async Task RunAsync(IRestContext context)
        {
            IFilesApi filesApi = context.Factory.CreateFilesApi("files");

            // Display existing containers
            IEnumerable <string> names = await filesApi.GetContainerNamesAsync();

            Console.WriteLine("GetContainerNamesAsync(): {0}", names.ToStringList());

            // Creating a test container - tank
            await filesApi.CreateContainersAsync(false, TestContainer);

            // Creating a file
            FileResponse response = await filesApi.CreateFileAsync(TestContainer, "test.txt", "test", false);

            Console.WriteLine("Created file: {0}", response.path);

            // Reading the file
            string content = await filesApi.GetTextFileAsync(TestContainer, "test.txt");

            Console.WriteLine("GetFile content: {0}", content);

            // Deleting the file
            response = await filesApi.DeleteFileAsync(TestContainer, "test.txt");

            Console.WriteLine("Deleted file: {0}", response.path);

            // Deleting the container
            await filesApi.DeleteContainersAsync(TestContainer);

            Console.WriteLine("Container '{0}' deleted.", TestContainer);

            // Downloading a container
            Console.WriteLine("Downloading 'applications' container as zip archive...");
            byte[] zip = await filesApi.DownloadContainerAsync("applications");

            File.WriteAllBytes("applications-container.zip", zip);
            Console.WriteLine("Open applications-container.zip to see the contents.");
        }
 public ContactController(IDatabaseApi databaseApi, IFilesApi filesApi)
 {
     this.databaseApi = databaseApi;
     this.filesApi = filesApi;
 }