public void BaseSetup() { MockCurrentDateTime = new Mock <ICurrentDateTime>(); MockCurrentDateTime.SetupGet(x => x.Now).Returns(new DateTime(2017, 6, 10)); MockUlnValidator = new Mock <IUlnValidator>(); MockAcademicYearValidator = new Mock <IAcademicYearValidator>(); Validator = new ApprenticeshipValidator(MockCurrentDateTime.Object, MockUlnValidator.Object, MockAcademicYearValidator.Object); ExampleValidApprenticeship = new Apprenticeship { FirstName = "Bob", LastName = "Smith", NINumber = ApprenticeshipTestDataHelper.CreateValidNino(), ULN = ApprenticeshipTestDataHelper.CreateValidULN(), ProviderRef = "Provider ref", EmployerRef = null, StartDate = DateTime.Now.AddYears(5), EndDate = DateTime.Now.AddYears(7) }; }
public static async Task Run( string input, // Work around https://github.com/Azure/azure-functions-vs-build-sdk/issues/168 ILogger log, [Inject] IConfigurationRoot configuration, [Inject] IApprenticeshipCollectionService apprenticeshipCollectionService, [Inject] ICosmosDbHelper cosmosDbHelper, [Inject] IBlobStorageHelper blobhelper, [Inject] IUkrlpApiService ukrlpApiService ) { const string apprenticeshipAppName = "Validate.Apprenticeship"; var apprenticeshipValidationFileName = $"{apprenticeshipAppName}-{DateTime.Now.ToString("dd-MM-yy HHmm")}"; var blobContainer = blobhelper.GetBlobContainer(configuration["BlobStorageSettings:Container"]); var validator = new ApprenticeshipValidator(); List <ApprenticeshipValidationResult> validationEResult = new List <ApprenticeshipValidationResult>(); var stopWatch = new Stopwatch(); stopWatch.Start(); var resultData = await apprenticeshipCollectionService.GetAllApprenticeshipsAsync(); foreach (var item in resultData) { //item.ContactEmail = "testing"; //item.Url = "testing"; //item.ContactWebsite = "testing"; //item.ContactTelephone = "101101abc"; //item.ApprenticeshipTitle = item.ApprenticeshipTitle + " @"; var validationResult = validator.Validate(item); if (!validationResult.IsValid) { foreach (var error in validationResult.Errors) { validationEResult.Add(new ApprenticeshipValidationResult() { ApprenticeshipId = item.ApprenticeshipId, ProviderUkprn = item.ProviderUKPRN, FieldName = error.PropertyName, ErrorMessage = error.ErrorMessage }); } } } var resultsObjBytes = GetResultAsByteArray(validationEResult); await WriteResultsToBlobStorage(resultsObjBytes); stopWatch.Stop(); byte[] GetResultAsByteArray(IList <ApprenticeshipValidationResult> message) { using (var memoryStream = new System.IO.MemoryStream()) { using (var streamWriter = new System.IO.StreamWriter(memoryStream)) using (var csvWriter = new CsvWriter(streamWriter, CultureInfo.InvariantCulture)) { csvWriter.WriteRecords <ApprenticeshipValidationResult>(message); } return(memoryStream.ToArray()); } } async Task WriteResultsToBlobStorage(byte[] data) { await blobhelper.UploadFile(blobContainer, apprenticeshipValidationFileName, data); } }