Ejemplo n.º 1
0
        public void LogReferencesExportTest()
        {
            var reader = new CSVReader(_inputFilePath);

            _data.Sensors = reader.ReadSensors();
            _data.Sensors = new List <Sensor> {
                _data.Sensors[0]
            };
            using (var writer = File.CreateText(_outputFilePath + "ChangesTest.csv"))
            {
                writer.WriteLine("Change matrix for file: " + Path.GetFileName(_outputFilePath));
                writer.WriteLine("Date,Time,Temperature");
                for (var time = _data.StartTimeStamp; time <= _data.EndTimeStamp; time = time.AddMinutes(_data.DataInterval))
                {
                    writer.WriteLine(time.ToString("dd/MM/yyyy,HH:mm") + ",1");
                }
            }
            var ll = new LinkedList <int>();

            ll.AddFirst(1);

            for (var time = _data.StartTimeStamp; time <= _data.EndTimeStamp; time = time.AddMinutes(_data.DataInterval))
            {
                _data.Sensors[0].CurrentState.Changes.Add(time, ll);
            }

            DatasetExporter.Export(_data, _outputFilePath, ExportFormat.CSV, true, false, true, loadInUnloadedValues: false);
            Assert.AreEqual(Tools.GenerateMD5HashFromFile(_outputFilePath + "ChangesTest.csv"), Tools.GenerateMD5HashFromFile(_outputFilePath + " Changes Matrix.csv"));
        }
        private static void XslValueOfForDataFields
            (XmlWriter writer, IList<string> sFileds,
            DatasetExporter.ExportFormat formatType)
        {

            // xsl:value-of for data fields
            for (int i = 0; i < sFileds.Count; i++)
            {
                writer.WriteString("\"");
                writer.WriteStartElement("xsl:value-of");
                writer.WriteAttributeString("select", sFileds[i]);
                writer.WriteEndElement(); // xsl:value-of
                writer.WriteString("\"");

                if (i != sFileds.Count - 1)
                {
                    writer.WriteString
                        ((formatType == DatasetExporter.ExportFormat.Csv)
                             ? ","
                             : "	");
                }


            }


        }
        // Function  : WriteStylesheet 
        // Arguments : writer, sHeaders, sFileds, FormatType
        // Purpose   : Creates XSLT file to apply on dataset's XML file 
        internal static void CreateStylesheet
            (XmlTextWriter writer, string[] sHeaders,
            string[] sFileds, DatasetExporter.ExportFormat formatType)
        {


            ConstructXslSkeleton(writer);

            // xsl-template
            writer.WriteStartElement("xsl:template");
            writer.WriteAttributeString("match", "/");


            XslValueOfForHeaders
                (writer, sHeaders,
                 sFileds, formatType);


            XslForEach(writer);


            XslValueOfForDataFields
                (writer, sFileds, formatType);


            FinalizeXslStylesheet(writer);

        
        }
Ejemplo n.º 4
0
        public void ExportAsCSVNoEmptyLinesAndMetaData()
        {
            var reader = new CSVReader(Path.Combine(_inputFilePath));

            _data.Sensors = reader.ReadSensors();
            DatasetExporter.Export(_data, _outputFilePath, ExportFormat.CSV, false, true, false, ExportedPoints.AllPoints, DateColumnFormat.TwoDateColumn, loadInUnloadedValues: false);
            Assert.AreEqual(Tools.GenerateMD5HashFromFile(_outputFilePath), Tools.GenerateMD5HashFromFile(_inputFilePath));
        }
Ejemplo n.º 5
0
        public void ExportAsCSVEmptyLinesIncludedWithAverageEveryHour()
        {
            var reader = new CSVReader(Path.Combine(_inputFilePath));

            _data.Sensors = reader.ReadSensors();
            DatasetExporter.Export(_data, _outputFilePath, ExportFormat.CSV, true, false, false, ExportedPoints.HourlyPoints, DateColumnFormat.TwoDateColumn, loadInUnloadedValues: false);
            Assert.AreEqual(File.ReadLines(_outputFilePath).Count(), ((_data.ExpectedDataPointCount) / 4) + 1);
        }
Ejemplo n.º 6
0
        public void ExportCSVWithIndividualDateColumns()
        {
            var dateTime     = new DateTime(2011, 8, 4, 0, 0, 0);
            var givenDataSet = new Dataset(new Site(1, "Steven", "Kerry", Contact, Contact, new GPSCoords(0, 0)));
            var sampleData   = new Dictionary <DateTime, float> {
                { dateTime.AddMinutes(15), 100 }, { dateTime.AddMinutes(30), 100 }, { dateTime.AddMinutes(45), 100 }, { dateTime.AddMinutes(60), 100 }
            };
            var s  = new Sensor("Awesome Sensor", "Awesome");
            var ss = new SensorState(s, DateTime.Now, sampleData, null);

            s.AddState(ss);
            givenDataSet.AddSensor(s);

            DatasetExporter.Export(givenDataSet, _outputFilePath, ExportFormat.CSV, true, false, false, ExportedPoints.AllPoints, DateColumnFormat.SplitDateColumn, loadInUnloadedValues: false);

            Assert.AreEqual(DatasetOutputWithIndividualColumns, File.ReadAllText(_outputFilePath));
        }
Ejemplo n.º 7
0
        public void ExportsRawDataWhenRequested()
        {
            var reader = new CSVReader(_inputFilePath);

            _data.Sensors = reader.ReadSensors();

            Assert.AreNotEqual(0, _data.Sensors[0].CurrentState.Values[new DateTime(2009, 1, 10, 7, 45, 0)]);

            // Make some changes to check the raw comes out
            var newState = _data.Sensors[0].CurrentState.Clone();

            newState.Values[new DateTime(2009, 1, 10, 7, 45, 0)] = 0;
            _data.Sensors[0].AddState(newState);

            DatasetExporter.Export(_data, _outputFilePath, ExportFormat.CSV, true, false, false, ExportedPoints.AllPoints, DateColumnFormat.TwoDateColumn, true, loadInUnloadedValues: false);

            reader        = new CSVReader(_outputFilePath + " Raw.csv");
            _data.Sensors = reader.ReadSensors();

            Assert.AreNotEqual(0, _data.Sensors[0].CurrentState.Values[new DateTime(2009, 1, 10, 7, 45, 0)]);
        }
Ejemplo n.º 8
0
        public void btnExport()
        {
            var dialog = new SaveFileDialog();

            dialog.Filter = ExportFormat.CSV.FilterText;

            if (dialog.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    DatasetExporter.Export(Dataset, dialog.FileName, ExportFormat.CSV, IncludeEmptyLines,
                                           IncludeMetaData, IncludeChangeLog, ExportedPoints, DateColumnFormat,
                                           ExportRawData, true, true);
                }catch (Exception e)
                {
                    Common.ShowMessageBoxWithException("Failed to Export", "Sorry something went wrong with exporting",
                                                       false, true, e);
                }
                this.TryClose();
            }
        }
        private static void ConstructXsltStylesheet
            (string[] sHeaders, string[] sFileds,
            DatasetExporter.ExportFormat FormatType,
            out MemoryStream memoryStream,
            out XmlTextWriter writer)
        {


            // XSLT to use for transforming this dataset.						
            memoryStream = new MemoryStream();

            writer = new XmlTextWriter
                (memoryStream, Encoding.UTF8);

            XslStylesheetConstructor.CreateStylesheet
                (writer, sHeaders,
                sFileds, FormatType);

            writer.Flush();

            memoryStream.Seek
                (0, SeekOrigin.Begin);

        }
Ejemplo n.º 10
0
        // Function  : Export_with_XSLT_Windows 
        // Arguments : dsExport, sHeaders, sFileds, FormatType, FileName
        // Purpose   : Exports dataset into CSV / Excel format
        internal static void ExportWithXsltWindows
            (DataSet datasetToExport, string[] sHeaders, string[] sFileds,
            DatasetExporter.ExportFormat FormatType, string FileName)
        {

            try
            {

                MemoryStream memoryStream;
                XmlTextWriter writer;


                ConstructXsltStylesheet
                    (sHeaders, sFileds, FormatType,
                    out memoryStream, out writer);


                StringWriter sw
                    = PerformXsltTransform
                    (datasetToExport, memoryStream);


                PerformFileWrite
                    (FileName, memoryStream, writer, sw);



            }
            catch (Exception Ex)
            {
                throw Ex;
            }



        }
Ejemplo n.º 11
0
        // Function  : Export_with_XSLT_Web 
        // Arguments : dsExport, sHeaders, sFileds, FormatType, FileName
        // Purpose   : Exports dataset into CSV / Excel format
        internal static void ExportWithXsltWeb
            (DataSet datasetToExport, string[] sHeaders,
            string[] sFileds, DatasetExporter.ExportFormat formatType, string fileName)
        {


            try
            {

                TextWriter textWriter = new StringWriter();
                
                var response = new HttpResponse(textWriter);



                ConfigureHttpResponse
                    (formatType, fileName, response);



                // XSLT to use for transforming this dataset.						
                var stream 
                    = new MemoryStream();

                var writer 
                    = new XmlTextWriter
                        (stream, Encoding.UTF8);


                XslStylesheetConstructor.CreateStylesheet
                    (writer, sHeaders, sFileds, formatType);
                
                
                writer.Flush();


                               
                var stringWriter
                    = PerformXslTransform
                    (datasetToExport, stream);


                PerformResponseWrite
                    (writer, stream,
                    response, stringWriter);
           
            
            }
            catch (ThreadAbortException Ex)
            {
                string errMsg = Ex.Message;
            }


            catch (Exception Ex)
            {
                throw Ex;
            }


        }
Ejemplo n.º 12
0
        private static void ConfigureHttpResponse
            (DatasetExporter.ExportFormat formatType,
            string fileName, HttpResponse response)
        {


            // Appending Headers
            response.Clear();
            response.Buffer = true;

            if (formatType == DatasetExporter.ExportFormat.Csv)
            {

                response.ContentType 
                    = "text/csv";
                
                response.AppendHeader
                    ("content-disposition",
                    "attachment; filename=" + fileName);
            
            }
            else
            {

                response.ContentType 
                    = "application/vnd.ms-excel";

                response.AppendHeader
                    ("content-disposition",
                     "attachment; filename=" + fileName);
            
            }


        }
        private static void XslValueOfForHeaders
            (XmlWriter writer, IList<string> sHeaders,
            ICollection<string> sFileds, DatasetExporter.ExportFormat formatType)
        {
// xsl:value-of for headers
            for (int i = 0; i < sHeaders.Count; i++)
            {
                writer.WriteString("\"");
                writer.WriteStartElement("xsl:value-of");
                writer.WriteAttributeString("select", "'" + sHeaders[i] + "'");
                writer.WriteEndElement(); // xsl:value-of
                writer.WriteString("\"");


                if (i != sFileds.Count - 1)
                    writer.WriteString
                        ((formatType == DatasetExporter.ExportFormat.Csv)
                             ? ","
                             : "	");
            }
        }