public void SafaricomTopupRequest_CanBeCreated_IsCreated() { SafaricomTopupRequest safaricomTopupRequest = new SafaricomTopupRequest(TestData.FileId, TestData.FileName, TestData.FileProfileId); safaricomTopupRequest.FileId.ShouldBe(TestData.FileId); safaricomTopupRequest.FileName.ShouldBe(TestData.FileName); safaricomTopupRequest.FileProfileId.ShouldBe(TestData.FileProfileId); }
/// <summary> /// Creates the process file request. /// </summary> /// <param name="fileProfile">The file profile.</param> /// <param name="fileName">Name of the file.</param> /// <returns></returns> private IRequest CreateProcessFileRequest(FileProfile fileProfile, String fileName) { IRequest request = null; // Extract the file Id var fields = fileName.Split('-'); switch (fileProfile.RequestType) { case "SafaricomTopupRequest": request = new SafaricomTopupRequest(Guid.Parse(fields[1]), fileName, fileProfile.FileProfileId); break; case "VoucherRequest": request = new VoucherRequest(Guid.Parse(fields[1]), fileName, fileProfile.FileProfileId); break; } return(request); }
/// <summary> /// Handles the specified request. /// </summary> /// <param name="request">The request.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns></returns> /// <exception cref="System.IO.FileNotFoundException">File {file.FullName} not found</exception> /// <exception cref="NotFoundException">No file profile found with Id {request.FileProfileId}</exception> /// <exception cref="System.IO.DirectoryNotFoundException"> /// Directory {inProgressFolder} not found /// or /// Directory {fileProfile.ProcessedDirectory} not found /// or /// Directory {fileProfile.FailedDirectory} not found /// </exception> public async Task <Unit> Handle(SafaricomTopupRequest request, CancellationToken cancellationToken) { return(await this.ProcessFile(request.FileId, request.FileProfileId, request.FileName, cancellationToken)); }