/// <summary> /// <see cref="Microsoft.Samples.NLayerApp.DistributedServices.MainModule.IMainModuleService"/> /// </summary> /// <param name="publisherInformation"><see cref="Microsoft.Samples.NLayerApp.DistributedServices.MainModule.IMainModuleService"/></param> /// <returns><see cref="Microsoft.Samples.NLayerApp.DistributedServices.MainModule.IMainModuleService"/></returns> public List <Product> GetProductByPublisherInformation(PublisherInformation publisherInformation) { //Resolve root dependencies and perform query ISalesManagementService salesManagement = IoCFactory.Instance.CurrentContainer.Resolve <ISalesManagementService>(); return(salesManagement.FindProductBySpecification(publisherInformation.PublisherName, publisherInformation.Description)); }
/// <summary> /// Initializes a new instance of the <see cref="AssemblyGeneratorContext"/> class. /// </summary> /// <param name="process">The process.</param> /// <param name="assemblyType">The assembly type.</param> /// <param name="pubInfo">The pub info.</param> public AssemblyGeneratorContext( IProcessDefinition process, AssemblyType assemblyType = AssemblyType.Client, PublisherInformation pubInfo = null) { PubInfo = pubInfo; AssemblyType = assemblyType; Process = process; }
public RuleResult Validate(IReadOnlyList <ISignature> graph, SignatureLogger verboseWriter, CheckConfiguration configuration) { var signatures = graph.VisitAll(SignatureKind.AnySignature | SignatureKind.Deep); var result = RuleResult.Pass; foreach (var signature in signatures) { PublisherInformation info = null; foreach (var attribute in signature.SignedAttributes) { if (attribute.Oid.Value == KnownOids.OpusInfo) { info = new PublisherInformation(attribute.Values[0]); break; } } if (info == null) { result = RuleResult.Fail; verboseWriter.LogSignatureMessage(signature, "Signature does not have any publisher information."); } else { if (string.IsNullOrWhiteSpace(info.Description)) { result = RuleResult.Fail; verboseWriter.LogSignatureMessage(signature, "Signature does not have an accompanying description."); } if (string.IsNullOrWhiteSpace(info.UrlLink)) { result = RuleResult.Fail; verboseWriter.LogSignatureMessage(signature, "Signature does not have an accompanying URL."); } else { Uri uri; if (!Uri.TryCreate(info.UrlLink, UriKind.Absolute, out uri)) { result = RuleResult.Fail; verboseWriter.LogSignatureMessage(signature, "Signature's accompanying URL is not a valid URI."); } } } } return(result); }
public RuleResult Validate(IReadOnlyList <ICmsSignature> graph, SignatureLogger verboseWriter, CheckConfiguration configuration) { var signatures = graph.VisitAll(SignatureKind.AnySignature, deep: true); var result = RuleResult.Pass; foreach (var signature in signatures) { PublisherInformation?info = null; foreach (var attribute in signature.SignedAttributes) { if (attribute.Oid.Value == KnownOids.OpusInfo) { info = new PublisherInformation(attribute.Values[0]); break; } } if (info == null || info.IsEmpty) { result = RuleResult.Fail; verboseWriter.LogSignatureMessage(signature, "Signature does not have any publisher information."); } else { if (string.IsNullOrWhiteSpace(info.UrlLink)) { result = RuleResult.Fail; verboseWriter.LogSignatureMessage(signature, "Signature does not have an accompanying URL."); } else if (!info.UrlLink.StartsWith(Uri.UriSchemeHttps, StringComparison.OrdinalIgnoreCase)) { result = RuleResult.Fail; verboseWriter.LogSignatureMessage(signature, $"Signature's publisher information URL \"{info.UrlLink}\" does not use the secure HTTPS scheme."); } } } return(result); }
/// <summary> /// Generates the business object code. /// </summary> /// <param name="process">The process.</param> /// <param name="assemblyType">Type of the assembly.</param> /// <param name="pubInfo">The pub information.</param> /// <returns>System.String.</returns> public string GenerateBusinessObjectCode(IProcessDefinition process, AssemblyType assemblyType, PublisherInformation pubInfo = null) { return AssemblyGenerators.Where( a => a.Metadata.GeneratorType == assemblyType && (assemblyType == AssemblyType.Client || a.Metadata.DatabaseType == DatabaseType)).Select( generator => generator.Value.GenerateCode(process)).FirstOrDefault(); }
/// <summary> /// Generates the business object assembly. /// </summary> /// <param name="process">The process.</param> /// <param name="assemblyType">Type of the assembly.</param> /// <param name="pubInfo">The pub information.</param> /// <param name="settings">The settings.</param> /// <returns>IList{ErrorInfo}.</returns> public IList<ErrorInfo> GenerateBusinessObjectAssembly(IProcessDefinition process, AssemblyType assemblyType, PublisherInformation pubInfo = null, GenerationSettings settings = GenerationSettings.GenerateAndCompile) { var errors = new List<ErrorInfo>(); foreach ( var errorList in AssemblyGenerators.Where(a => a.Metadata.GeneratorType == assemblyType && (assemblyType == AssemblyType.Client || a.Metadata.DatabaseType == DatabaseType)) .Select(generator => generator.Value.GenerateBusinessObjectAssembly(new AssemblyGeneratorContext(process, assemblyType, pubInfo))) .Where(errorList => errorList != null && errorList.Count > 0)) errors.AddRange(errorList); return errors; }
public TestResult Validate(IReadOnlyList <ICmsSignature> graph, SignatureLogger verboseWriter, CheckConfiguration configuration) { var signatures = graph.VisitAll(SignatureKind.AnySignature, deep: true); var result = TestResult.Pass; foreach (var signature in signatures) { link = ""; Msg = ""; description = ""; link = ""; PublisherInformation info = null; foreach (var attribute in signature.SignedAttributes) { if (attribute.Oid.Value == KnownOids.OpusInfo) { info = new PublisherInformation(attribute.Values[0]); break; } } if (info == null || info.IsEmpty) { result = TestResult.Fail; Msg = "Signature does not have any publisher information."; verboseWriter.LogSignatureMessage(signature, "Signature does not have any publisher information."); } else { if (string.IsNullOrWhiteSpace(info.Description)) { result = TestResult.Fail; Msg = "Signature does not have an accompanying description."; verboseWriter.LogSignatureMessage(signature, "Signature does not have an accompanying description."); } if (string.IsNullOrWhiteSpace(info.UrlLink)) { result = TestResult.Fail; Msg = "Signature does not have an accompanying URL."; verboseWriter.LogSignatureMessage(signature, "Signature does not have an accompanying URL."); } else { if (!Uri.TryCreate(info.UrlLink, UriKind.Absolute, out _)) { result = TestResult.Fail; Msg = "Signature's accompanying URL is not a valid URI."; verboseWriter.LogSignatureMessage(signature, "Signature's accompanying URL is not a valid URI."); } } } if (!string.IsNullOrWhiteSpace(info.UrlLink)) { link = info.UrlLink; } if (!string.IsNullOrWhiteSpace(info.Description)) { description = info.Description; } DBConnect.InsertPublisherTable(Program.appName, Program.fileName, link, signature.Certificate.Thumbprint, description, Msg); } return(result); }