Пример #1
0
        private void CreateWSF()
        {
            string dateTime = DateTime.Now.ToString("yyyyMMdd");
            string requestedDate = DateTime.Now.ToString("yyMMdd");
            //_filePath = System.Configuration.ConfigurationManager.AppSettings["ftpPathWriteProcessorWSF"].ToString();
            string folderPath = System.Configuration.ConfigurationManager.AppSettings["ftpPathWriteProcessorWSF"].ToString();
            double totalBalance = 0d;
            string processorCode = string.Empty;
            Int64 rowCount = 0;

            //Get the list of datasource to be processed
            DataSet ds = new DataLayer().RetrieveWSFInformation();
            logger.Log(NLog.LogLevel.Info, "<br/><font color=red>Creation  of the WSF files starts........." + DateTime.Now.ToString());
            //Get the list of processors to process the data file
            if (ds.Tables[1].Rows.Count > 0)
            {
                for (int i = 0; i < ds.Tables[1].Rows.Count; i++)
                {

                    processorCode = ds.Tables[1].Rows[i]["processorId"].ToString();

                    #region Process the files
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        rowCount = ds.Tables[0].Rows.Count;
                        //_filePath = string.Concat(processorCode.Substring(0, 2), requestedDate.Substring(0, 6), ".wsf");
                        string fileName= string.Concat(processorCode.Substring(0, 2), requestedDate.Substring(0, 6), ".wsf");

                    //    using (MRFWriter writer = new MRFWriter(_filePath))
                        using (MRFWriter writer = new MRFWriter(Path.Combine(folderPath, fileName)))
                        {
                            ProcessorRow rowHeader = new ProcessorRow();
                            rowHeader.Add(String.Format("HEADER"));
                            rowHeader.Add(String.Format(dateTime));
                            rowHeader.Add(String.Format(processorCode));
                            writer.WriteRow(rowHeader);
                            for (int count = 0; count <= rowCount - 1; count++)
                            {
                                /// Need to add logic to create the file based on the values from the file/db
                                ProcessorRow row = new ProcessorRow();
                                row.Add(String.Format(dateTime));
                                row.Add(String.Format(processorCode));
                                row.Add(String.Format(ds.Tables[0].Rows[count]["merchantId"].ToString()));
                                row.Add(String.Format(ds.Tables[0].Rows[count]["processorNumber"].ToString()));
                                row.Add(String.Format(ds.Tables[0].Rows[count]["balance"].ToString()));
                                row.Add(String.Format(ds.Tables[0].Rows[count]["rate"].ToString()));
                               totalBalance+=Convert.ToDouble(ds.Tables[0].Rows[count]["balance"].ToString());
                                writer.WriteRow(row);
                            }
                            ProcessorRow rowTrailer = new ProcessorRow();
                            rowTrailer.Add(String.Format("TRAILER"));
                            rowTrailer.Add(String.Format(dateTime));
                            rowTrailer.Add(String.Format(processorCode));
                            rowTrailer.Add(String.Format(rowCount.ToString()));
                            rowTrailer.Add(String.Format(totalBalance.ToString()));
                            writer.WriteRow(rowTrailer);

                        }
                    }

                }
                    #endregion
                logger.Log(NLog.LogLevel.Info, "<br/><font color=red>Reading of the files Ends........." + DateTime.Now.ToString());
            }
        }
Пример #2
0
        /// <summary>
        /// Writes a processor file
        /// </summary>
        private void CreateMRF()
        {
            try
            {
            string dateTime = DateTime.Now.ToString("yyyyMMdd");
            string requestedDate = DateTime.Now.ToString("yyMMdd");

            string fileLocation = System.Configuration.ConfigurationManager.AppSettings["systemPathWrite"].ToString();
            string fileName = string.Empty;
            //fileLocation;
            string processorCode = string.Empty;
            string processorName = string.Empty;
            Int64 rowCount = 0;
            Int64 individualRows = 0;
            #region Load File

            //Get the list of datasource to be processed
            DataSet ds = new DataLayer().RetrieveProcessorQueue();
            logger.Log(NLog.LogLevel.Info, "<br/><font color=red>Creation  of the MRF files starts........." + DateTime.Now.ToString());
            //Get the list of processors to process the data file
            if (ds.Tables[1].Rows.Count > 0)
            {
                for (int i = 0; i < ds.Tables[1].Rows.Count; i++)
                {
                    processorCode = ds.Tables[1].Rows[i]["processorId"].ToString();
                    processorName = ds.Tables[1].Rows[i]["name"].ToString();
                    #region Process the files
                    logger.Log(NLog.LogLevel.Info, "<br/><font color=red>Total Rows Count in MRF files Creation........." + ds.Tables[0].Rows.Count.ToString());
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        fileName = string.Concat(processorCode.Substring(0, 2), requestedDate.Substring(0, 6), ".mrf");
                        rowCount = ds.Tables[0].Rows.Count;
                        _filePath = Path.Combine(fileLocation, fileName);
                        logger.Log(NLog.LogLevel.Info, "<br/><font color=red>File Path:   " + _filePath);
                        individualRows = 0;
                        using (MRFWriter writer = new MRFWriter(_filePath))
                        {
                            logger.Log(NLog.LogLevel.Info, "<br/><font color=red> Processor Code:   " + processorCode);
                            ProcessorRow rowHeader = new ProcessorRow();
                            rowHeader.Add(String.Format("HEADER"));
                            rowHeader.Add(String.Format(dateTime));
                            rowHeader.Add(String.Format(processorCode));
                            writer.WriteRow(rowHeader);
                            for (int count = 0; count <= rowCount - 1; count++)
                            {

                                if (processorCode == String.Format(ds.Tables[0].Rows[count]["ProcessorId"].ToString()))
                                {
                                    /// Need to add logic to create the file based on the values from the file/db
                                    ProcessorRow row = new ProcessorRow();
                                    row.Add(String.Format(dateTime));
                                    row.Add(String.Format(ds.Tables[0].Rows[count]["ProcessorId"].ToString()));
                                    row.Add(String.Format(ds.Tables[0].Rows[count]["merchantId"].ToString()));
                                    logger.Log(NLog.LogLevel.Info, "<br/><font color=red> Merchant Id :   " + String.Format(ds.Tables[0].Rows[count]["merchantId"].ToString()));
                                    row.Add(String.Format(ds.Tables[0].Rows[count]["processorNumber"].ToString()));

                                    writer.WriteRow(row);
                                    new DataLayer().UpdateProcessorQueue(Convert.ToInt64(ds.Tables[0].Rows[count]["merchantId"].ToString()), ds.Tables[0].Rows[count]["processorNumber"].ToString());
                                    individualRows++;
                                }
                            }
                            ProcessorRow rowTrailer = new ProcessorRow();
                            rowTrailer.Add(String.Format("TRAILER"));
                            rowTrailer.Add(String.Format(dateTime));
                            rowTrailer.Add(String.Format(processorCode));
                            rowTrailer.Add(String.Format(individualRows.ToString()));
                            writer.WriteRow(rowTrailer);

                        }

                        /* if (System.Configuration.ConfigurationManager.AppSettings["isftp"].ToString() == "1")
                         {
                             FtpWebRequest ftp = (FtpWebRequest)WebRequest.Create(Path.Combine(System.Configuration.ConfigurationManager.AppSettings["ftpPathWrite"].ToString(), fileName));
                             ftp.Credentials = new NetworkCredential(System.Configuration.ConfigurationManager.AppSettings["username"].ToString(), System.Configuration.ConfigurationManager.AppSettings["password"].ToString());
                             ftp.Method = WebRequestMethods.Ftp.UploadFile;
                             FileStream fs = File.OpenRead(_filePath);
                             byte[] buffer = new byte[fs.Length];
                             fs.Read(buffer, 0, buffer.Length);
                             fs.Close();

                             Stream ftpstream = ftp.GetRequestStream();
                             ftpstream.Write(buffer, 0, buffer.Length);
                             ftpstream.Close();
                         }*/
                    }
                }

                    #endregion

                }

            }
            catch(Exception ex)
            {

                logger.Log(NLog.LogLevel.Info, "<br/><font color=red>Error while creating MRF........." + ex.InnerException.ToString());
            }
            logger.Log(NLog.LogLevel.Info, "<br/><font color=red>Creation  of the MRF Ends........." + DateTime.Now.ToString());
            #endregion
        }