Ejemplo n.º 1
0
        public void RedrectToLocalFile(IEnumerable <FileEntry> lines, FileType type)
        {
            var writer = new LocalFileWriter();

            if (type == FileType.Json)
            {
                var jsonStringList = lines.Select(JsonConvert.SerializeObject).ToList();
                if (!writer.WriteToFile(DeviceSendingDetails.RedirectFileName, jsonStringList))
                {
                    throw new ApplicationException(String.Format("Error writing lines to file {0}", DeviceSendingDetails.RedirectFileName));
                }
            }
            else
            {
                var csvStringList = new List <String>();
                foreach (var line in lines)
                {
                    var key = line.PartitionKey;

                    switch (key)
                    {
                    case "temperature":
                        var tempObj = JsonConvert.DeserializeObject <TemperatureData>(line.Message);
                        csvStringList.Add(String.Format("{0},{1},{2},{3},{4}", key, tempObj.Timestamp.ToString("o"), tempObj.Deviceid, tempObj.RoomNumber, tempObj.Temperature));
                        break;

                    case "energy":
                        var energyObj = JsonConvert.DeserializeObject <EnergyData>(line.Message);
                        csvStringList.Add(String.Format("{0},{1},{2},{3},{4}", key, energyObj.Timestamp.ToString("o"), energyObj.Deviceid, energyObj.RoomNumber, energyObj.Kwh));
                        break;

                    case "humidity":
                        var humidityObj = JsonConvert.DeserializeObject <HumidityData>(line.Message);
                        csvStringList.Add(String.Format("{0},{1},{2},{3},{4}", key, humidityObj.Timestamp.ToString("o"), humidityObj.Deviceid, humidityObj.RoomNumber, humidityObj.Humidity));
                        break;

                    case "light":
                        var lightObj = JsonConvert.DeserializeObject <LightData>(line.Message);
                        csvStringList.Add(String.Format("{0},{1},{2},{3},{4}", key, lightObj.Timestamp.ToString("o"), lightObj.Deviceid, lightObj.RoomNumber, lightObj.Lumens));
                        break;
                    }
                }

                if (!writer.WriteToFile(DeviceSendingDetails.RedirectFileName, csvStringList))
                {
                    throw new ApplicationException(String.Format("Error writing lines to file {0}", DeviceSendingDetails.RedirectFileName));
                }
            }
        }
Ejemplo n.º 2
0
        public void RedrectToLocalFile(IEnumerable<FileEntry> lines, FileType type)
        {
            var writer = new LocalFileWriter();

            if (type == FileType.Json)
            {
                var jsonStringList = lines.Select(JsonConvert.SerializeObject).ToList();
                if (!writer.WriteToFile(DeviceSendingDetails.RedirectFileName, jsonStringList))
                    throw new ApplicationException(String.Format("Error writing lines to file {0}", DeviceSendingDetails.RedirectFileName));

            }
            else
            {
                var csvStringList = new List<String>();
                foreach (var line in lines)
                {
                    var key = line.PartitionKey;

                    switch (key)
                    {
                        case "temperature":
                            var tempObj = JsonConvert.DeserializeObject<TemperatureData>(line.Message);
                            csvStringList.Add(String.Format("{0},{1},{2},{3},{4}", key, tempObj.Timestamp.ToString("o"), tempObj.Deviceid, tempObj.RoomNumber, tempObj.Temperature));
                            break;
                        case "energy":
                            var energyObj = JsonConvert.DeserializeObject<EnergyData>(line.Message);
                            csvStringList.Add(String.Format("{0},{1},{2},{3},{4}", key, energyObj.Timestamp.ToString("o"), energyObj.Deviceid, energyObj.RoomNumber, energyObj.Kwh));
                            break;
                        case "humidity":
                            var humidityObj = JsonConvert.DeserializeObject<HumidityData>(line.Message);
                            csvStringList.Add(String.Format("{0},{1},{2},{3},{4}", key, humidityObj.Timestamp.ToString("o"), humidityObj.Deviceid, humidityObj.RoomNumber, humidityObj.Humidity));
                            break;
                        case "light":
                            var lightObj = JsonConvert.DeserializeObject<LightData>(line.Message);
                            csvStringList.Add(String.Format("{0},{1},{2},{3},{4}", key, lightObj.Timestamp.ToString("o"), lightObj.Deviceid, lightObj.RoomNumber, lightObj.Lumens));
                            break;
                    }
                }

                if (!writer.WriteToFile(DeviceSendingDetails.RedirectFileName, csvStringList))
                    throw new ApplicationException(String.Format("Error writing lines to file {0}", DeviceSendingDetails.RedirectFileName));
            }
            
        }