コード例 #1
0
ファイル: JsonEtl.cs プロジェクト: mattcarlucci/Crypto.Etl
        /// <summary>
        /// Save as CSV.
        /// </summary>
        /// <param name="model">The model.</param>
        public override void ToCsv(UrlModel model)
        {
            var content = model.GetUrlData();
            var dataSet = Transform(content);

            TransformTime(dataSet);
            TransformData(dataSet, model);
        }
コード例 #2
0
ファイル: JsonEtl.cs プロジェクト: mattcarlucci/Crypto.Etl
        /// <summary>
        /// Transforms the data.
        /// </summary>
        /// <param name="ds">The ds.</param>
        /// <param name="model">The model.</param>
        private void TransformData(DataSet ds, UrlModel model)
        {
            List <DataTable> tables = ds.Tables.Cast <DataTable>().ToList();
            var results             = tables.GroupBy(g => GroupByUnique(g)).ToList();

            foreach (var result in results)
            {
                for (int i = 1; i < result.Count(); i++)
                {
                    result.First().Merge(result.Skip(i).Take(1).SingleOrDefault());
                }
                var file = string.Format("{0}_{1}.csv", model.GetRootFileName(""), result.Key);
                SaveFile(result.First(), model, file);
            }
        }
コード例 #3
0
ファイル: JsonEtl.cs プロジェクト: mattcarlucci/Crypto.Etl
        /// <summary>
        /// Saves the file.
        /// </summary>
        /// <param name="table">The table.</param>
        /// <param name="model">The model.</param>
        /// <param name="file">The file.</param>
        private void SaveFile(DataTable table, UrlModel model, string file)
        {
            var lines = new List <string>();

            var header = string.Join(",", table.ColumnNames());

            lines.Add(header);

            var values = table.AsEnumerable().Select(row => FormatRow(row));

            lines.AddRange(values);

            UrlModel.DeleteFile(file);
            File.WriteAllLines(file, lines);
        }
コード例 #4
0
ファイル: JsonEtl.cs プロジェクト: mattcarlucci/Core.News.Web
        /// <summary>
        /// Transforms the data.
        /// </summary>
        /// <param name="ds">The ds.</param>
        /// <param name="model">The model.</param>
        private void TransformData(DataSet ds, UrlModel model)
        {
            List <DataTable> tables = ds.Tables.Cast <DataTable>().ToList();
            var results             = tables.GroupBy(g => GroupByUnique(g)).ToList();

            foreach (var result in results)
            {
                for (int i = 1; i < result.Count(); i++)
                {
                    result.First().Merge(result.Skip(i).Take(1).SingleOrDefault());
                }

                //  result.First().
                OnDataTableCreated(this, new DataTableEventArgs(result.First(), result.Key));
            }
        }
コード例 #5
0
 /// <summary>
 /// To the CSV.
 /// </summary>
 /// <param name="model">The model.</param>
 public abstract void Transform(UrlModel model);
コード例 #6
0
 /// <summary>
 /// To the CSV.
 /// </summary>
 /// <param name="model">The model.</param>
 public abstract void ToCsv(UrlModel model);