Ejemplo n.º 1
0
        public static IDocumentPlug GetDocumentPlug(TradingPartnerSpecCertMetadata tradingPartnerSpecCertMetadata, IDalManager dalManager)
        {
            IDocumentPlug documentPlug = gcSpecCertCache.GetObject(tradingPartnerSpecCertMetadata.SchemaFileName) as IDocumentPlug;

            if (documentPlug == null)
            {
                Stream schemaStream = dalManager.GetTradingPartnerSpecCert(tradingPartnerSpecCertMetadata);

                if (schemaStream == null)
                {
                    throw new GCEdiValidatorException(string.Format("{0} Schema not found.", tradingPartnerSpecCertMetadata.SchemaFileName));
                }

                GCExcelToDocumentPlug gcExcelToDocumentPlug = GCExcelToDocumentPlug.CreateInstance((SpecCertFileType)tradingPartnerSpecCertMetadata.FileType);

                documentPlug = gcExcelToDocumentPlug.GenerateDocumentPlug(schemaStream, tradingPartnerSpecCertMetadata.TradingPartnerName,
                                                                          tradingPartnerSpecCertMetadata.DocumentType, tradingPartnerSpecCertMetadata.Direction, (SpecCertFileType)tradingPartnerSpecCertMetadata.FileType);

                gcSpecCertCache.AddObject(tradingPartnerSpecCertMetadata.SchemaFileName, documentPlug);
            }

            return(documentPlug);
        }
Ejemplo n.º 2
0
        public static SpecCertValidationResult ValidateSpecCert(string certFileName, Stream certFileStream, IDalManager dalManager, out SpecCertFileType certFileType)
        {
            // For error reporting lets create X12 instance of GCExcelToDocumentPlug
            // Once TradingPartnerSpecCertMetadata is created we will change it to appropriate instance
            GCExcelToDocumentPlug gcExcelToDocumentPlug = new X12GCExcelToDocumentPlug();

            certFileType = SpecCertFileType.X12;
            try
            {
                TradingPartnerSpecCertMetadata tradingPartnerSpecCertMetadata = new TradingPartnerSpecCertMetadata();
                List <string> errors = tradingPartnerSpecCertMetadata.Initialize(certFileName);
                certFileType = (SpecCertFileType)tradingPartnerSpecCertMetadata.FileType;

                gcExcelToDocumentPlug = GCExcelToDocumentPlug.CreateInstance(certFileType);

                if (errors.Count == 0)
                {
                    // Check if this cert file already exist
                    List <TradingPartnerSpecCertMetadata> tradingPartnerSpecCertMetadataList
                        = dalManager.GetTradingPartnerList(tradingPartnerSpecCertMetadata.DocumentType, string.Empty);

                    if (tradingPartnerSpecCertMetadataList.Any(t => t.TradingPartnerName == tradingPartnerSpecCertMetadata.TradingPartnerName &&
                                                               t.DocumentType == tradingPartnerSpecCertMetadata.DocumentType &&
                                                               t.Direction == tradingPartnerSpecCertMetadata.Direction))
                    {
                        gcExcelToDocumentPlug.SpecCertValidationResult.SegmentDefinitionValidationResults.Add(new SegmentDefinitionValidationResult()
                        {
                            ColumnIndex = "N/A",
                            RowIndex    = -1,
                            Type        = ResultType.Warning,
                            Description = "Cert file already exist."
                        });
                    }

                    gcExcelToDocumentPlug.GenerateDocumentPlug(certFileStream, tradingPartnerSpecCertMetadata.TradingPartnerName,
                                                               tradingPartnerSpecCertMetadata.DocumentType, tradingPartnerSpecCertMetadata.Direction, (SpecCertFileType)tradingPartnerSpecCertMetadata.FileType);
                }
                else
                {
                    foreach (string error in errors)
                    {
                        gcExcelToDocumentPlug.SpecCertValidationResult.SegmentDefinitionValidationResults.Add(new SegmentDefinitionValidationResult()
                        {
                            ColumnIndex = "N/A",
                            RowIndex    = -1,
                            Type        = ResultType.Error,
                            Description = string.Format("Cert file name error: {0}", error)
                        });
                    }
                }
            }
            catch (Exception ex)
            {
                gcExcelToDocumentPlug.SpecCertValidationResult.SegmentDefinitionValidationResults.Add(new SegmentDefinitionValidationResult()
                {
                    ColumnIndex = "N/A",
                    RowIndex    = -1,
                    Type        = ResultType.Error,
                    Description = string.Format("Unknown error occured ({0}), please contact Maarg", ex.Message)
                });
            }

            return(gcExcelToDocumentPlug.SpecCertValidationResult);
        }