Example #1
0
        private static void LogMessage(StreamWriter logFile, string message, int type)
        {
            logFile.WriteLine(string.Format("{0} - {1}", type == 1 ? "INFO" : type == 2 ? "WARNING" : "ERROR", message));

            message = message.Replace('{', '[');
            message = message.Replace('}', ']');

            switch (type)
            {
            case 1:
                ConsoleExtensions.WriteInfo(message);
                break;

            case 2:
                ConsoleExtensions.WriteWarning(message);
                break;

            case 3:
                ConsoleExtensions.WriteError(message);
                break;
            }
        }
Example #2
0
        private static int ValidateInstanceFile(Parameters parameters)
        {
            string specCertFullPath = parameters.SpecCertName;
            string specCertFileName = Path.GetFileName(specCertFullPath);
            string instanceFilePath = parameters.InstanceFileName;
            string instanceFileName = Path.GetFileName(instanceFilePath);

            if (File.Exists(specCertFullPath) == false)
            {
                ConsoleExtensions.WriteError("{0} does not exist.", specCertFullPath);
                return(1);
            }

            if (Path.GetExtension(specCertFullPath) != ".xlsx")
            {
                ConsoleExtensions.WriteError("{0} is not a zip file.", specCertFullPath);
                return(1);
            }

            if (File.Exists(instanceFilePath) == false)
            {
                ConsoleExtensions.WriteError("{0} does not exist.", instanceFilePath);
                return(1);
            }

            string logFileName = Path.ChangeExtension(instanceFileName, "log");

            ConsoleExtensions.WriteInfo("Log file for this processing: {0}", logFileName);

            string instanceFileData = File.ReadAllText(instanceFilePath);

            using (StreamWriter logFile = new StreamWriter(logFileName))
            {
                try
                {
                    TradingPartnerSpecCertMetadata metadata = new TradingPartnerSpecCertMetadata();
                    metadata.Initialize(specCertFileName);

                    GCExcelToDocumentPlug excelToDocumentPlug;
                    switch ((SpecCertFileType)metadata.FileType)
                    {
                    case SpecCertFileType.X12:
                        excelToDocumentPlug = new X12GCExcelToDocumentPlug();
                        break;

                    case SpecCertFileType.Xml:
                        excelToDocumentPlug = new XmlGCExcelToDocumentPlug();
                        break;

                    case SpecCertFileType.FlatFile:
                        excelToDocumentPlug = new FlatFileGCExcelToDocumentPlug();
                        break;

                    default:
                        throw new NotSupportedException(string.Format("Spec cert type {0} is not supported", (SpecCertFileType)metadata.FileType));
                        break;
                    }

                    LogInformation(logFile, string.Format("Generating document plug from spec cert {0}", specCertFileName));

                    TradingPartnerSpecCertMetadata specCertMetadata = new TradingPartnerSpecCertMetadata();
                    specCertMetadata.Initialize(specCertFileName);

                    IDocumentPlug documentPlug = null;
                    using (StreamReader stream = new StreamReader(specCertFullPath))
                        documentPlug = excelToDocumentPlug.GenerateDocumentPlug(
                            stream.BaseStream, specCertMetadata.TradingPartnerName, specCertMetadata.DocumentType,
                            specCertMetadata.Direction, Maarg.Contracts.GCValidate.SpecCertFileType.X12);

                    if (documentPlug == null)
                    {
                        LogError(logFile, "Document plug generation failed");
                        return(-1);
                    }
                    else
                    {
                        LogInformation(logFile, "Document plug generated successfully");
                    }
                    LogInformation(logFile, "Validating instance file");

                    IFatpipeDocument    fatpipeDocument;
                    EDIValidationResult result = EdiValidator.ValidateEdi(instanceFileData, instanceFileName, specCertFileName, documentPlug, out fatpipeDocument);

                    LogValidationResult(result, logFile);
                }
                catch (Exception ex)
                {
                    LogError(logFile, string.Format("Error encountered during validating {0} file. Error: {1}", instanceFileName, ex.ToString()));
                }
            }

            return(0);
        }
Example #3
0
        private static int ReadAllBtmFiles(Parameters parameters)
        {
            string fileName = parameters.ZipFileName;

            if (File.Exists(fileName) == false)
            {
                ConsoleExtensions.WriteError("{0} does not exist.", fileName);
                return(1);
            }

            if (Path.GetExtension(fileName) != ".zip")
            {
                ConsoleExtensions.WriteError("{0} is not a zip file.", fileName);
                return(1);
            }

            string logFileName = Path.ChangeExtension(Path.GetFileName(fileName), "log");

            ConsoleExtensions.WriteInfo("Log file for this processing: {0}", logFileName);
            using (StreamWriter logFile = new StreamWriter(logFileName))
            {
                try
                {
                    using (StreamReader sr = new StreamReader(fileName))
                    {
                        LogInformation(logFile, string.Format("Reading maps from {0}", fileName));

                        List <MapDetail> mapsDetailList = BtmFileReader.ReadMap(sr.BaseStream, fileName, parameters.SpecCertType);

                        if (mapsDetailList != null)
                        {
                            LogInformation(logFile, string.Format("{0} maps retrieved.", mapsDetailList.Count));
                            int specCertCount = 0;

                            foreach (MapDetail mapDetail in mapsDetailList)
                            {
                                if (mapDetail.DocumentType != 810 &&
                                    mapDetail.DocumentType != 850 &&
                                    mapDetail.DocumentType != 856)
                                {
                                    //LogInformation(logFile, string.Format("Spec cert generation for document type {0} is not supported", mapDetail.DocumentType));
                                    continue;
                                }

                                LogInformation(logFile, "======================================");
                                LogInformation(logFile, "Map detail:");
                                LogInformation(logFile, string.Format("\t{0}", mapDetail.FileName));
                                LogInformation(logFile, string.Format("\t{0}", mapDetail.FolderName));

                                Maarg.Fatpipe.Plug.Authoring.BtmFileHandler.SpecCertGenerator specCertGenerator = new Maarg.Fatpipe.Plug.Authoring.BtmFileHandler.SpecCertGenerator();
                                try
                                {
                                    SpecCertGenerationResult result = specCertGenerator.GenerateSpecCert(mapDetail, parameters.SpecCertType);

                                    if (result.PathsUsed.Count == 0)
                                    {
                                        LogError(logFile, "No path exist from map in template. No spec cert generated");
                                    }
                                    else
                                    {
                                        LogInformation(logFile, string.Format("Paths used {0}", result.PathsUsed.Count));
                                        specCertCount++;
                                    }

                                    if (result.Errors.Count != 0 || result.PathsUsed.Count == 0)
                                    {
                                        LogWarning(logFile, "Spec cert generated with errors");
                                    }
                                    else
                                    {
                                        LogInformation(logFile, "Spec cert generated successfully");
                                    }

                                    if (result.SpecCertGenerated)
                                    {
                                        ValidateAndUploadSpecCert(mapDetail, result, logFile, parameters.UploadSpecCert, parameters.SpecCertType);
                                    }

                                    if (result.Errors.Count > 0)
                                    {
                                        CreateErrorLogFile(fileName, mapDetail, result, logFile);
                                    }
                                }
                                catch (Exception e)
                                {
                                    LogError(logFile, string.Format("Spec cert generation failed. Exception: {0}", e.ToString()));
                                }
                            }

                            if (specCertCount == 0)
                            {
                                LogError(logFile, "No valid spec cert generated");
                            }
                        }
                        else
                        {
                            LogInformation(logFile, string.Format("No map present in {0}", fileName));
                        }
                    }
                }
                catch (Exception ex)
                {
                    LogError(logFile, string.Format("Error encountered during processing {0} file. Error: {1}", fileName, ex.ToString()));
                }
            }

            return(0);
        }