예제 #1
0
        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);
        }
예제 #3
0
 /// <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));
 }