コード例 #1
0
            public override async Task <(string FileName, IEnumerable <byte> Content)> SerializeAsync()
            {
                return(await Task.Run(() => (generateFileName(), generateContent())));

                string generateFileName()
                {
                    var mode = Mode.ToAnglesString();

                    return($"{MeasureDateTime.ToString(TIME_FORMAT)} InGK TCAL raw {mode}.csv");
                }

                IEnumerable <byte> generateContent()
                {
                    var ms     = new MemoryStream();
                    var writer = new StreamWriter(ms, Encoding.GetEncoding(CSV_ENCODING));
                    var rows   = new Enumerable <string[]>
                    {
                        Columns,
                        Rows.Select(r => r.Select(c => c.ToStringInvariant()).ToArray())
                    };

                    foreach (var row in rows)
                    {
                        writer.WriteLine(row.Aggregate(CSV_SEPARATOR));
                    }
                    writer.Flush();

                    return(ms.ToArray());
                }
            }
コード例 #2
0
            public override int GetHashCode()
            {
                var hashCode = -1080134904;

                hashCode = hashCode * -1521134295 + Mode.GetHashCode();
                hashCode = hashCode * -1521134295 + MeasureDateTime.GetHashCode();
                hashCode = hashCode * -1521134295 + EqualityComparer <string[]> .Default.GetHashCode(Columns);

                hashCode = hashCode * -1521134295 + EqualityComparer <IEnumerable <double[]> > .Default.GetHashCode(Rows);

                return(hashCode);
            }
コード例 #3
0
            public override async Task <(string FileName, IEnumerable <byte> Content)> SerializeAsync()
            {
                return(await Task.Run(() => (generateFileName(), generateContent())));

                string generateFileName()
                {
                    return($"{MeasureDateTime.ToString(TIME_FORMAT)} InGK SENS raw.csv");
                }

                IEnumerable <byte> generateContent()
                {
                    var ms     = new MemoryStream();
                    var writer = new StreamWriter(ms, Encoding.GetEncoding(CSV_ENCODING));
                    var rows   = new Enumerable <IEnumerable <string> >
                    {
                        Columns,
                        Positions.Select((r, i) => getRows(i, r)).Flatten()
                    };

                    foreach (var row in rows)
                    {
                        writer.WriteLine(row.Aggregate(CSV_SEPARATOR));
                    }
                    writer.Flush();

                    return(ms.ToArray());

                    IEnumerable <IEnumerable <string> > getRows(int i, PositionMeasureResult position)
                    {
                        yield return(new string[]
                        {
                            "Position",
                            (i + 1).ToStringInvariant(),
                            position.Position.Inc.ToStringInvariant(),
                            position.Position.Azi.ToStringInvariant(),
                            position.Position.Gtf.ToStringInvariant()
                        });

                        foreach (var measure in position.Result)
                        {
                            yield return(measure.Select(m => m.ToStringInvariant()));
                        }
                    }
                }
            }