public async Task Arrange() { BatchCertificateRequest request = Builder <BatchCertificateRequest> .CreateNew() .With(i => i.Uln = 1234567899) .With(i => i.StandardCode = 99) .With(i => i.StandardReference = null) .With(i => i.UkPrn = 12345678) .With(i => i.CertificateData = Builder <CertificateData> .CreateNew() .With(cd => cd.ContactPostCode = "AA11AA") .With(cd => cd.AchievementDate = DateTime.UtcNow) .With(cd => cd.OverallGrade = CertificateGrade.Pass) .With(cd => cd.CourseOption = "English") .Build()) .Build(); _validationResult = await Validator.ValidateAsync(request); }
public static void PopulateMissingFields(this BatchCertificateRequest request, Standard standard, Certificate existingCertificate = null) { if (standard != null) { if (request.StandardCode < 1) { request.StandardCode = standard.LarsCode; } else if (string.IsNullOrEmpty(request.StandardReference)) { request.StandardReference = standard.IfateReferenceNumber; } if (string.IsNullOrWhiteSpace(request.CertificateData.Version)) { // As version not specified, version and standardUid are calculated, // but if existing certificate is not null, Prioritise those values if (existingCertificate != null) { var certificateData = JsonConvert.DeserializeObject <CertificateData>(existingCertificate.CertificateData); request.CertificateData.Version = certificateData.Version; request.StandardUId = existingCertificate.StandardUId; } // If certificate was null, or the values were not there... override with calculated if (string.IsNullOrWhiteSpace(request.CertificateData.Version)) { // if version is null or empty, set version to the calculated version as a default. request.CertificateData.Version = standard.Version; request.StandardUId = standard.StandardUId; } } else { // If version isn't empty, we must have retrieved a specific version // subject to it being valid, so set just the StandardUId request.StandardUId = standard.StandardUId; } } }
public static string GetStandardId(this BatchCertificateRequest request) => !string.IsNullOrWhiteSpace(request.StandardReference) ? request.StandardReference : request.StandardCode > 0 ? request.StandardCode.ToString() : string.Empty;