public void ReadOperationShouldBeQuick()
        {
            Benchmark.This("FileHelperEngine.ReadStream", () =>
            {
                var engine = new FileHelperEngine <FixedSampleRecord>();
                using (var stream = new StringReader(FixedFileSample))
                {
                    var records = engine.ReadStream(stream);
                    records.Should().HaveCount(19);
                }
            })
            .Against.This("FlatFileEngine.Read", () =>
            {
                var layout = new FixedSampleRecordLayout();
                using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(FixedFileSample)))
                {
                    var factory = new FixedLengthFileEngineFactory();

                    var flatFile = factory.GetEngine(layout);

                    var records = flatFile.Read <FixedSampleRecord>(stream).ToArray();

                    records.Should().HaveCount(19);
                }
            })
            .WithWarmup(1000)
            .For(10000)
            .Iterations()
            .PrintComparison();
        }
예제 #2
0
        /// <summary>
        /// Extract records from a stream and insert them to the data source
        /// using the DataLinkProvider
        /// <see cref="DataLink.DataStorage.InsertRecords"/> method.
        /// </summary>
        /// <param name="reader">The stream with the source records.</param>
        public object[] InsertFromStream(StreamReader reader)
        {
            mLastInsertedRecords = FileHelperEngine.ReadStream(reader);
            mProvider.InsertRecords(mLastInsertedRecords);

            return(mLastInsertedRecords);
        }
예제 #3
0
        private void ReadStockFile()
        {
            var ftpManager = new FtpManager(_ftpSetting.FtpUri, null, false, true);
            var regex      = FileNameRegex;

            foreach (var fileName in ftpManager.GetFiles())
            {
                if (!regex.IsMatch(fileName))
                {
                    continue;
                }
                using (var stream = ftpManager.Download(Path.GetFileName(fileName)))
                {
                    using (var streamReader = new StreamReader(stream))
                    {
                        var engine            = new FileHelperEngine(typeof(DatColStock));
                        var listOfVendorStock = engine.ReadStream(streamReader) as DatColStock[];
                        ProcessStock(listOfVendorStock);

                        try
                        {
                            ftpManager.Upload(stream, Path.Combine("History", fileName));
                        }
                        catch (Exception e) {
                        }
                    }
                }
                _archiveService.CopyToArchive(ftpManager.BaseUri.AbsoluteUri, SaveTo.StockDirectory, fileName);

                ftpManager.Delete(fileName);
            }
        }
예제 #4
0
        private static IEnumerable <CSSEGISandDataDailyReport> GetRecords(string url)
        {
            CSSEGISandDataDailyReport[] records = { };
            try
            {
                HttpWebRequest  req  = (HttpWebRequest)WebRequest.Create(url);
                HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

                StreamReader sr = new StreamReader(resp.GetResponseStream());
                using var stream = new StringReader(sr.ReadToEnd());

                var engine = new FileHelperEngine <CSSEGISandDataDailyReport>();

                //engine.BeforeReadRecord += (sender, args) =>
                //    args.RecordLine = args.RecordLine.Replace(@",", "-");

                engine.BeforeReadRecord += Engine_BeforeReadRecord;

                //engine.AfterReadRecord += Engine_AfterReadRecord;
                records = engine.ReadStream(stream);
                //var records = engine.ReadStreamAsList(stream, 0);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString()); // with stack trace
            }
            return(records);
        }
        public void ReadOperationShouldBeQuick()
        {
            Benchmark.This("FileHelperEngine.ReadStream", () =>
            {
                var engine = new FileHelperEngine<FixedSampleRecord>();
                using (var stream = new StringReader(FixedFileSample))
                {
                    var records = engine.ReadStream(stream);
                    records.Should().HaveCount(19);
                }
            })
                .Against.This("FlatFileEngine.Read", () =>
                {
                    var layout = new FixedSampleRecordLayout();
                    using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(FixedFileSample)))
                    {
                        var factory = new FixedLengthFileEngineFactory();

                        var flatFile = factory.GetEngine(layout);

                        var records = flatFile.Read<FixedSampleRecord>(stream).ToArray();

                        records.Should().HaveCount(19);
                    }
                })
                .WithWarmup(1000)
                .For(10000)
                .Iterations()
                .PrintComparison();
        }
        private void TestAllTables2017_2018(string textResourceName, Func <int, int, bool, int, int> taxFunction)
        {
            Assembly a = Assembly.GetExecutingAssembly();

            using (var s = a.GetManifestResourceStream(textResourceName))
            {
                var importEngine = new FileHelperEngine <TrekkRecord2018>();
                using (var sr = new StreamReader(s))
                {
                    var lines = importEngine.ReadStream(sr);
                    Assert.Multiple(() =>
                    {
                        foreach (var trekkRecord in lines)
                        {
                            var t = taxFunction(
                                trekkRecord.Trekkgrunnlag,
                                trekkRecord.Tabellnummer,
                                trekkRecord.TabelltypeIsPensjon,
                                trekkRecord.Trekkperiode);
                            Assert.AreEqual(
                                trekkRecord.Trekk,
                                t,
                                $"{trekkRecord.Tabellnummer} failed at grl:{trekkRecord.Trekkgrunnlag} pensj:{trekkRecord.TabelltypeIsPensjon} periode:{trekkRecord.Trekkperiode}"
                                );
                        }
                    }
                                    );
                }
            }
        }
예제 #7
0
        private void ProcessFiles()
        {
            var ftpManager = new FtpManager(_ftpSetting.FtpUri, null, false, true);
            var regex      = FileNameRegex;

            foreach (var fileName in ftpManager.GetFiles())
            {
                if (!regex.IsMatch(fileName))
                {
                    continue;
                }

                using (var stream = ftpManager.Download(Path.GetFileName(fileName)))
                {
                    using (var streamReader = new StreamReader(stream))
                    {
                        try
                        {
                            var engine            = new FileHelperEngine(typeof(DatColPurchaseOrder));
                            var listofPickTickets = engine.ReadStream(streamReader) as DatColPurchaseOrder[];

                            ProcessFile(listofPickTickets);

                            _archiveService.CopyToArchive(ftpManager.BaseUri.AbsoluteUri, SaveTo.PurchaseOrderDirectory, fileName);

                            ftpManager.Delete(fileName);
                        }
                        catch (Exception)
                        {
                            _log.AuditError(string.Format("Failed to process the Purchase order file. File name: '{0}'", fileName));
                        }
                    }
                }
            }
        }
        private void TestAllTables(string textResourceName, Func <int, int, bool, int, int> taxFunction)
        {
            Assembly a = Assembly.GetExecutingAssembly();

            //use ildasm and inspect the Manifest of this assembly to find TextResourceName
            //from here C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools
            using (var s = a.GetManifestResourceStream(textResourceName))
            {
                var importEngine = new FileHelperEngine <TrekkRecord>();
                using (var sr = new StreamReader(s))
                {
                    var lines = importEngine.ReadStream(sr);
                    Assert.Multiple(() =>
                    {
                        foreach (var trekkRecord in lines)
                        {
                            var t = taxFunction(
                                trekkRecord.Trekkgrunnlag,
                                trekkRecord.Tabellnummer,
                                trekkRecord.TabelltypeIsPensjon,
                                trekkRecord.Trekkperiode);
                            Assert.AreEqual(
                                trekkRecord.Trekk,
                                t,
                                $"{trekkRecord.Tabellnummer} failed at grl:{trekkRecord.Trekkgrunnlag} pensj:{trekkRecord.TabelltypeIsPensjon} periode:{trekkRecord.Trekkperiode}"
                                );
                        }
                    }
                                    );
                }
            }
        }
예제 #9
0
        /// <summary>
        /// Downloads the game file manifest the web host, loads it into a stream,
        /// and then populates the CSV object collection
        /// </summary>
        /// <returns></returns>
        public bool LoadManifest()
        {
            bool success = true;

            try
            {
                System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
                Uri         manifestUri  = new Uri(GetFinalUrl(StrResources.ClientFileUrl), StrResources.MftFilename);
                WebRequest  req          = WebRequest.Create(manifestUri);
                WebResponse response     = req.GetResponse();
                Stream      stream       = response.GetResponseStream();
                TextReader  textRead     = new StreamReader(stream);
                var         manifestFile = new FileHelperEngine <FileManifest>();

                manifest = manifestFile.ReadStream(textRead);

                textRead.Dispose();
                stream.Dispose();
                response.Dispose();
            }
            catch (Exception ex)
            {
                success = false;
                Utils.HandleError(ex, "Error downloading file manifest");
            }
            return(success);
        }
예제 #10
0
        public void NullReader()
        {
            var engine = new FileHelperEngine <SampleType>();

            Assert.Throws <ArgumentNullException>(()
                                                  => engine.ReadStream(null));
        }
예제 #11
0
        private object[] CoreTransform(StreamReader sourceFile, StreamWriter destFile, Type sourceType, Type destType, MethodInfo method)
        {
            var sourceEngine = new FileHelperEngine(sourceType, mSourceEncoding);
            var destEngine   = new FileHelperEngine(destType, mDestinationEncoding);

            var source      = sourceEngine.ReadStream(sourceFile);
            var transformed = CoreTransformRecords(source, method);
예제 #12
0
        private static async Task <IEnumerable <CSSEGISandDataDailyReport> > GetRecords3(string url)
        {
            string     readStream = string.Empty;
            HttpClient client     = new HttpClient();

            IEnumerable <CSSEGISandDataDailyReport> resultado = new List <CSSEGISandDataDailyReport>();

            try
            {
                var response = await client.GetAsync(url);

                using var responseStream = await response.Content.ReadAsAsync <TextReader>();

                //var responseStream = await response.Content.ReadAsStringAsync();

                //System.IO.Stream -> System.IO.TextReader
                //string -> System.IO.TextReader

                //return responseStream;

                //var engine = new FileHelperEngine<CSSEGISandDataDailyReport>();
                //var records = engine.ReadStringAsList(readStream);

                var engine = new FileHelperEngine <CSSEGISandDataDailyReport>();
                //var records = engine.ReadStream(responseStream);
                resultado = engine.ReadStream(responseStream);
            }
            catch (Exception ex)
            {
                string messareError = ex.ToString();
            }
            return(resultado);
        }
예제 #13
0
        public static IEnumerable <FullyQualifiedCarData> ParseCsvToFullyQualifiedCarDataEuro4()
        {
            if (m_FullyQualifiedCarData == null)
            {
                try
                {
                    var assembly    = Assembly.GetExecutingAssembly();
                    var euro4Stream = new StreamReader(assembly.GetManifestResourceStream("OpenResKit.CarbonFootprint.Positions.Resources.Euro_4_latest.csv"));

                    var engine = new FileHelperEngine <FullyQualifiedCarData>();
                    var cars4  = engine.ReadStream(euro4Stream);
                    foreach (var fullyQualifiedCarData in cars4)
                    {
                        fullyQualifiedCarData.Description += " EURO 4";
                    }

                    m_FullyQualifiedCarDataEuro4 = cars4;
                }
                catch (Exception exception)
                {
                    exception.GetType();
                    throw;
                }
            }

            return(m_FullyQualifiedCarDataEuro4);
        }
예제 #14
0
        public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
        {
            var csv  = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
            var file = ((csv.RawValue as HttpPostedFileBase[]) ?? Enumerable.Empty <HttpPostedFileBase>()).FirstOrDefault();

            if (file == null || file.ContentLength < 1)
            {
                bindingContext.ModelState.AddModelError(
                    "",
                    "Please select a valid CSV file"
                    );
                return(null);
            }

            using (var reader = new StreamReader(file.InputStream))
            {
                try
                {
                    var engine = new FileHelperEngine <T>();
                    return(engine.ReadStream(reader));
                }
                catch (Exception c)
                {
                    bindingContext.ModelState.AddModelError(bindingContext.ModelName, c.Message);
                    return(null);
                }
            }
        }
예제 #15
0
        public static IEnumerable <CarData> ParseCsvToCarDataEuro5()
        {
            if (m_CarDataEuro5 == null)
            {
                try
                {
                    var assembly    = Assembly.GetExecutingAssembly();
                    var euro4Stream = new StreamReader(assembly.GetManifestResourceStream("OpenResKit.CarbonFootprint.Positions.Resources.Euro_5_slim.csv"));

                    var engine = new FileHelperEngine <CarData>();
                    var cars5  = engine.ReadStream(euro4Stream);
                    foreach (var carData in cars5)
                    {
                        carData.Description += " EURO 5";
                    }

                    m_CarDataEuro5 = cars5;
                }
                catch (Exception exception)
                {
                    exception.GetType();
                    throw;
                }
            }

            return(m_CarDataEuro5);
        }
예제 #16
0
        public void GetMSWSReportsFromURL_AsStream_20060709_28Records()
        {
            DateTime date = new DateTime(2006, 7, 20);
                string url = string.Format(MSWSDataUrl_Format, date.ToString(MSWSDataURL_DateFormat));
                MSWSDailyReportRecord[] res = null;
                FileHelperEngine engine = new FileHelperEngine(typeof(MSWSDailyReportRecord));

                    // make request
                    HttpWebRequest webReq = null;
                HttpWebResponse webResp = null;
                StreamReader reader = null;
                try
                {
                    webReq = (HttpWebRequest)HttpWebRequest.Create(url);
                    webResp = (HttpWebResponse)webReq.GetResponse();
                    Encoding encode = Encoding.GetEncoding("utf-8");
                    reader = new StreamReader(webResp.GetResponseStream(), encode);
                    res = (MSWSDailyReportRecord[]) engine.ReadStream(reader);
                }
                catch
                {
                    throw;
                }
                finally
                {
                    if (webReq != null) webReq = null;
                    if (webResp != null) webResp.Close();
                    if (reader != null) reader.Close();
                }

                Assert.AreEqual(res.Length, 32);
        }
예제 #17
0
 public IList <FixedSampleRecord> FileHelpers()
 {
     using (var stream = new StringReader(_records))
     {
         return(_helperEngine.ReadStream(stream));
     }
 }
예제 #18
0
        private void RetrieveBody(StreamReader reader)
        {
            var engine = new FileHelperEngine <CSVEntry>();

            engine.ErrorManager.ErrorMode = ErrorMode.IgnoreAndContinue;
            this.body = engine.ReadStream(reader);
        }
예제 #19
0
        public object[] ReadData(Stream inputStream)
        {
            using (var textReader = new StreamReader(inputStream))
            {
                var fileHelper = new FileHelperEngine(type);

                return(fileHelper.ReadStream(textReader));
            }
        }
예제 #20
0
        public void FileHelpers()
        {
            var engine = new FileHelperEngine <FixedSampleRecord>();

            using (var stream = new StringReader(sampleText))
            {
                var records = engine.ReadStream(stream);
            }
        }
예제 #21
0
 public virtual IList <T> LoadData()
 {
     using (var fileStream = new FileStream(path
                                            , FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
         using (var streamReader = new StreamReader(fileStream))
         {
             return(engine.ReadStream(streamReader).ToList());
         }
 }
예제 #22
0
        public T[] GetImportData <T>(Stream file) where T : class
        {
            var reader = new StreamReader(file);

            var fileEngine = new FileHelperEngine(typeof(T));

            fileEngine.ErrorManager.ErrorMode = ErrorMode.IgnoreAndContinue;

            return(fileEngine.ReadStream(reader, Int32.MaxValue) as T[]);
        }
예제 #23
0
        private void Setup()
        {
            var engine = new FileHelperEngine <FixedSampleRecord>();

            using (var stream = new StringReader(FlatFileBenchmarks.FixedFileSample))
            {
                var records = engine.ReadStream(stream);
                sampleRecords = records;
            }
        }
예제 #24
0
 protected override void PopulateDataSource()
 {
     using (Stream stream = _streamFactory.CreateInstance(StreamMode.Read))
     {
         using (StreamReader streamReader = new StreamReader(stream))
         {
             _dataSource = ((TEntity[])_fileHelperEngine.ReadStream(streamReader)).ToList();
         }
     }
 }
예제 #25
0
        public void EncodingAdvanced5()
        {
            var engine = new FileHelperEngine(typeof(EncodingRecord));

            var encode = Encoding.GetEncoding("utf-8");
            var reader = new StreamReader(FileTest.Good.EncodingAdv3.Path, encode);
            var res = (EncodingRecord[])engine.ReadStream(reader);

            Assert.AreEqual(res.Length, 18);
        }
        private static IEnumerable <FixedSampleRecord> GetRecords()
        {
            var engine = new FileHelperEngine <FixedSampleRecord>();

            using (var stream = new StringReader(FixedFileSample))
            {
                var records = engine.ReadStream(stream);
                return(records);
            }
        }
        private void FileHelperEngine()
        {
            var engine = new FileHelperEngine <FixedSampleRecord>();

            using (var stream = new StringReader(FlatFileBenchmarks.FixedFileSample))
            {
                var records = engine.ReadStream(stream);
                records.Should().HaveCount(19);
            }
        }
예제 #28
0
        public IList <object> ReadStream(TextReader fileStream, int ignoreLines, IDictionary <int, string> fieldNames,
                                         char[] separator)
        {
            ClassBuilder(ignoreLines, fieldNames, separator);

            var engine      = new FileHelperEngine(InputType);
            var userRecords = engine.ReadStream(fileStream);

            return(userRecords);
        }
예제 #29
0
        public void EncodingAdvanced5()
        {
            var engine = new FileHelperEngine <EncodingRecord>();

            var encode = Encoding.GetEncoding("utf-8");
            var reader = new StreamReader(FileTest.Good.EncodingAdv3.Path, encode);
            var res    = engine.ReadStream(reader);

            Assert.AreEqual(res.Length, 18);
        }
예제 #30
0
        public JsonResult SubirArchivo(HttpPostedFileBase file)
        {
            ResultadoCRUD_Models        R     = new ResultadoCRUD_Models();
            List <ResultadoCRUD_Models> ListR = new List <ResultadoCRUD_Models>();

            try
            {
                if (file == null)
                {
                    R.res_excepcion = "no se recibió ningún archivo";
                }
                if (!(file.FileName.EndsWith(".csv") || (file.FileName.EndsWith(".txt"))))
                {
                    R.res_excepcion = "Debe ser un .csv o un .txt";
                }


                var engine = new FileHelperEngine <Importar_Models>();
                Importar_Models[] List_Importar;
                List_Importar = engine.ReadStream(new StreamReader(file.InputStream));

                string _lote = DateTime.Now.ToString("yyyyMMdd-hhmm");
                foreach (Importar_Models item in List_Importar)
                {
                    Contactos_Models C = new Contactos_Models();
                    R             = new ResultadoCRUD_Models();
                    C.con_fecha   = DateTime.Now;
                    C.con_cant    = 0;
                    C.con_lote    = _lote;
                    C.con_phone   = item.tel1;
                    C.con_titular = item.titular;
                    R             = C.InsertUpdateContactos(C);
                    ListR.Add(R);
                }
            }
            catch (Exception ex)
            {
                R = new ResultadoCRUD_Models();
                R.res_cantidad    = -1;
                R.res_metodo      = "FileUploadController.SubirArchivo";
                R.res_observacion = "ERROR:" + ex.Message;
                R.res_excepcion   = (ex.InnerException == null)?"":ex.InnerException.ToString();
                ListR.Add(R);
            }
            // ViewData["Resultados"] = ListR;
            //return JsonConvert.SerializeObject(ListR);
            return(new JsonResult
            {
                ContentType = "application/json",
                Data = ListR,
                JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                MaxJsonLength = Int32.MaxValue
            });
        }
예제 #31
0
        public IEnumerable <TCBasicInfo> ReadCsv(Stream inputStream)
        {
            var engine = new FileHelperEngine <TechCompanyCsv>();

            TechCompanyCsv[] csvData;
            using (var streamReader = new StreamReader(inputStream))
            {
                csvData = engine.ReadStream(streamReader);
            }
            var result = CsvToModelMapper(csvData);

            return(result);
        }
예제 #32
0
        public void ReadEmpty()
        {
            string data = "";

            FileHelperEngine <SampleType> engine = new FileHelperEngine <SampleType>();

            SampleType[] res;
            res = engine.ReadStream(new StringReader(data));

            Assert.AreEqual(0, res.Length);
            Assert.AreEqual(0, engine.TotalRecords);
            Assert.AreEqual(0, engine.ErrorManager.ErrorCount);
        }
예제 #33
0
        private Destination[] CoreTransform(StreamReader sourceFile, StreamWriter destFile, Type sourceType, Type destType, MethodInfo method)
        {
            FileHelperEngine <Source>      sourceEngine = new FileHelperEngine <Source>(mSourceEncoding);
            FileHelperEngine <Destination> destEngine   = new FileHelperEngine <Destination>(mDestinationEncoding);

            Source[]      source      = sourceEngine.ReadStream(sourceFile);
            Destination[] transformed = CoreTransformRecords(source, method);
#endif

            destEngine.WriteStream(destFile, transformed);

            return(transformed);
        }
        public ActionResult DownloadAsExcel(string id)
        {
            if (string.IsNullOrWhiteSpace(id))
            {
                TempData["Message"] = "Unable to download file.  No file was selected. Please select a file and try again.";
                return RedirectToAction("Index");
            }

            try
            {
                var file = GetNamedFile(id);
                var created = file.TimeStamp;
                var filePathAndFilename = file.FilePath;
                var filename = file.FileNameLessExtension;

                var streamReader = new StreamReader(filePathAndFilename);

                var engine = new FileHelperEngine<FeederSystemFixedLengthRecord>();

                var result = engine.ReadStream(streamReader);

                var transactions = result.ToList();

                // Opening the Excel template...
                var templateFileStream = new FileStream(Server.MapPath(@"~\Files\RevisedScrubberWithoutData.xlsx"),
                    FileMode.Open, FileAccess.Read);

                // Getting the complete workbook...
                var templateWorkbook = new XSSFWorkbook(templateFileStream);

                // Getting the worksheet by its name...
                var sheet = templateWorkbook.GetSheet("Sheet1");

                // We need this so the date will be formatted correctly; otherwise, the date format gets all messed up.
                var dateCellStyle = templateWorkbook.CreateCellStyle();
                var format = templateWorkbook.CreateDataFormat();
                dateCellStyle.DataFormat = format.GetFormat("[$-809]m/d/yyyy;@");

                // Here's another to ensure we get a number with 2 decimal places:
                var twoDecimalPlacesCellStyle = templateWorkbook.CreateCellStyle();
                format = templateWorkbook.CreateDataFormat();
                twoDecimalPlacesCellStyle.DataFormat = format.GetFormat("#0.00");

                var boldFont = templateWorkbook.CreateFont();
                    boldFont.FontHeightInPoints = 11;
                    boldFont.FontName = "Calibri";
                    boldFont.Boldweight = (short)FontBoldWeight.Bold;

                var boldCellStyle = templateWorkbook.CreateCellStyle();
                boldCellStyle.SetFont(boldFont);

                var boldTotalAmountStyle = templateWorkbook.CreateCellStyle();
                boldTotalAmountStyle.DataFormat = twoDecimalPlacesCellStyle.DataFormat;
                boldTotalAmountStyle.SetFont(boldFont);

                var grandTotal = 0.0;
                var i = 0;
                foreach (var transaction in transactions)
                {
                    i++;
                    // Getting the row... 0 is the first row.
                    var dataRow = sheet.GetRow(i);
                    dataRow.CreateCell(0).SetCellValue(transaction.FiscalYear);
                    dataRow.CreateCell(1).SetCellValue(transaction.ChartNum);
                    dataRow.CreateCell(2).SetCellValue(transaction.Account);
                    dataRow.CreateCell(3).SetCellValue(transaction.SubAccount);
                    dataRow.CreateCell(4).SetCellValue(transaction.ObjectCode);
                    dataRow.CreateCell(5).SetCellValue(transaction.SubObjectCode);
                    dataRow.CreateCell(6).SetCellValue(transaction.BalanceType);
                    dataRow.CreateCell(7).SetCellValue(transaction.ObjectType.Trim());
                    dataRow.CreateCell(8).SetCellValue(transaction.FiscalPeriod);
                    dataRow.CreateCell(9).SetCellValue(transaction.DocumentType);
                    dataRow.CreateCell(10).SetCellValue(transaction.OriginCode);
                    dataRow.CreateCell(11).SetCellValue(transaction.DocumentNumber);
                    dataRow.CreateCell(12).SetCellValue(transaction.LineSequenceNumber);
                    dataRow.CreateCell(13).SetCellValue(transaction.TransactionDescription);

                    var transactionAmount = Convert.ToDouble(transaction.Amount.Trim());
                    grandTotal += transactionAmount;
                    var cell = dataRow.CreateCell(14);
                    cell.CellStyle = twoDecimalPlacesCellStyle;
                    cell.SetCellValue(transactionAmount);

                    dataRow.CreateCell(15).SetCellValue(transaction.DebitCreditCode.Trim());

                    cell = dataRow.CreateCell(16);
                    cell.CellStyle = dateCellStyle;
                    cell.SetCellValue(Convert.ToDateTime(transaction.TransactionDate));

                    dataRow.CreateCell(17).SetCellValue(transaction.OrganizationTrackingNumber);
                    dataRow.CreateCell(18).SetCellValue(transaction.ProjectCode);
                    dataRow.CreateCell(19).SetCellValue(transaction.OrganizationReferenceId.Trim());
                    dataRow.CreateCell(20).SetCellValue(transaction.ReferenceTypeCode.Trim());
                    dataRow.CreateCell(21).SetCellValue(transaction.ReferenceOriginCode.Trim());
                    dataRow.CreateCell(22).SetCellValue(transaction.ReferenceNumber.Trim());
                    dataRow.CreateCell(23).SetCellValue(transaction.ReversalDate.Trim());
                    dataRow.CreateCell(24).SetCellValue(transaction.TransactionEncumbranceUpdateCode.Trim());
                }

                if (transactions.Any())
                {
                    var totalsRow = sheet.GetRow(i + 1);
                    var totalsCell = totalsRow.CreateCell(13);
                    totalsCell.CellStyle = boldCellStyle;
                    totalsCell.SetCellValue(" Grand Total");

                    totalsCell = totalsRow.CreateCell(14);
                    totalsCell.CellStyle = boldTotalAmountStyle;
                    totalsCell.SetCellValue(grandTotal);
                }

                // Forcing formula recalculation...
                sheet.ForceFormulaRecalculation = true;

                var ms = new MemoryStream();

                // Writing the workbook content to the FileStream...
                templateWorkbook.Write(ms);

                TempData["Message"] = "Excel report created successfully!";

                // Sending the server processed data back to the user computer...
                return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", filename + ".xlsx");
            }
            catch (Exception ex)
            {
                TempData["Message"] = String.Format("Opps!  Something went wrong: {0}", ex.Message);

                return RedirectToAction("Index");
            }
        }
예제 #35
0
        private void ProcessFile(IDAO dao, string fullPath, string fileName, CancellationToken token)
        {
            Log.Trace($"Thread [{Thread.CurrentThread.ManagedThreadId}] - Start processing file [{fileName}]");

            token.ThrowIfCancellationRequested();
            string managerSecondName = GetManagerSecondNameFromFileName(fileName);
            var manager = dao.ManagerRepository.FindBySecondName(managerSecondName) ??
                          dao.ManagerRepository.Add(new Manager(managerSecondName));

            token.ThrowIfCancellationRequested();
            // parsing .csv
            using (var textReader = File.OpenText(fullPath))
            {
                var engine = new FileHelperEngine<SaleRecord>();
                var records = engine.ReadStream(textReader);

                foreach (var record in records)
                {
                    token.ThrowIfCancellationRequested();
                    ProcessRecord(dao, record, manager, fileName, token);
                }
            }
        }
        public IList<FeederSystemFixedLengthRecord> ReadFile(Stream stream)
        {
            var engine = new FileHelperEngine<FeederSystemFixedLengthRecord>();
            var streamReader = new StreamReader(stream);

            var result = engine.ReadStream(streamReader);
            return result.ToList();
        }
        /// <summary>
        /// Import the sessions in this providers type
        /// This may throw an exception if there are File I/O issues
        /// </summary>
        /// <param name="location">The location of the csv file</param>
        /// <returns>The list of sessions</returns>
        public List<Session> loadSessions(string location)
        {
            Uri uri = null;
            try
            {
                uri = new Uri(location);
            }
            catch (Exception e)
            {
                throw new Exception("Unable to parse location: " + e.Message);
            }

            FileHelperEngine<CsvRecord> engine = new FileHelperEngine<CsvRecord>();
            List<CsvRecord> csvList = null;
            List<Session> sessionList = null;

            if (uri.Scheme == Uri.UriSchemeFile)
            {
                try
                {
                    csvList = new List<CsvRecord>(engine.ReadFile(uri.LocalPath));
                }
                catch
                {
                    throw new Exception("Unable to parse sessions file." + Environment.NewLine +
                                        "The file may be corrupted or from" + Environment.NewLine +
                                        "a previous version of PuTTY Session Manager.");
                }

            }
            else if (uri.Scheme == Uri.UriSchemeHttp || uri.Scheme == Uri.UriSchemeHttps)
            {
                Stream s = getRemoteCsvFile(uri);
                if (s != null)
                {
                    try
                    {
                        csvList = new List<CsvRecord>(engine.ReadStream(new StreamReader(s)));
                    }
                    catch
                    {
                        throw new Exception("Unable to parse sessions file." + Environment.NewLine +
                                            "The file may be corrupted or from" + Environment.NewLine +
                                            "a previous version of PuTTY Session Manager.");
                    }
                    finally
                    {
                        if ( s != null )
                            s.Close();
                    }
                }
            }
            else
            {
                throw new Exception("Unable to parse location: unsupported protocol");
            }

            if (csvList != null)
            {
                sessionList = csvList.ConvertAll(new Converter<CsvRecord, Session>(CsvToSessionConvertor));
            }

            return sessionList;
        }
예제 #38
0
        public void ReadStream()
        {
            string data = "11121314901234" + Environment.NewLine +
                "10111314012345" + Environment.NewLine +
                "11101314123456" + Environment.NewLine +
                "10101314234567" + Environment.NewLine;

            var engine = new FileHelperEngine<SampleType>();

            SampleType[] res;
            res = engine.ReadStream(new StringReader(data));

            Assert.AreEqual(4, res.Length);
            Assert.AreEqual(4, engine.TotalRecords);
            Assert.AreEqual(0, engine.ErrorManager.ErrorCount);

            Assert.AreEqual(new DateTime(1314, 12, 11), res[0].Field1);
            Assert.AreEqual("901", res[0].Field2);
            Assert.AreEqual(234, res[0].Field3);

            Assert.AreEqual(new DateTime(1314, 11, 10), res[1].Field1);
            Assert.AreEqual("012", res[1].Field2);
            Assert.AreEqual(345, res[1].Field3);
        }
예제 #39
0
        public void ReadEmpty()
        {
            string data = "";

            var engine = new FileHelperEngine<SampleType>();

            SampleType[] res;
            res = engine.ReadStream(new StringReader(data));

            Assert.AreEqual(0, res.Length);
            Assert.AreEqual(0, engine.TotalRecords);
            Assert.AreEqual(0, engine.ErrorManager.ErrorCount);
        }
예제 #40
0
 public void NullReader()
 {
     engine = new FileHelperEngine(typeof (SampleType));
     Assert.Throws<ArgumentNullException>(()
         => engine.ReadStream(null));
 }
        public ActionResult Display(string id)
        {
            if (string.IsNullOrWhiteSpace(id))
            {
                TempData["Message"] = "Unable to display file.  No file was selected. Please select a file and try again.";
                return RedirectToAction("Index");
            }

            var file = GetNamedFile(id);

            var engine = new FileHelperEngine<FeederSystemFixedLengthRecord>();

            var streamReader = new StreamReader(file.FilePath);

            var result = engine.ReadStream(streamReader);

            var transactions = result.ToList();

            TempData["Message"] = String.Format("Now viewing \"{0}\".", file.FileName);
            TempData["Filename"] = file.FileNameLessExtension;
            return View(transactions);
        }
예제 #42
0
		public void NullReader()
		{
			engine = new FileHelperEngine(typeof (SampleType));
			engine.ReadStream(null);
		}
예제 #43
0
        public void ReadStream()
        {
            string data = "11121314901234\n"+
                "10111314012345\n" +
                "11101314123456\n" +
                "10101314234567\n" ;

            engine = new FileHelperEngine(typeof(SampleType));

            SampleType[] res;
            res = (SampleType[])engine.ReadStream(new StringReader(data));

            Assert.AreEqual(4, res.Length);
            Assert.AreEqual(4, engine.TotalRecords);
            Assert.AreEqual(0, engine.ErrorManager.ErrorCount);

            Assert.AreEqual(new DateTime(1314, 12, 11), res[0].Field1);
            Assert.AreEqual("901", res[0].Field2);
            Assert.AreEqual(234, res[0].Field3);

            Assert.AreEqual(new DateTime(1314, 11, 10), res[1].Field1);
            Assert.AreEqual("012", res[1].Field2);
            Assert.AreEqual(345, res[1].Field3);
        }
 private static IEnumerable<FixedSampleRecord> GetRecords()
 {
     var engine = new FileHelperEngine<FixedSampleRecord>();
     using (var stream = new StringReader(FixedFileSample))
     {
         var records = engine.ReadStream(stream);
         return records;
     }
 }