private static List <AlertHistoryItemModel> ProduceAlertHistoryItemsAsync(Stream stream)
        {
            Debug.Assert(stream != null, "stream is a null reference.");

            var models = new List <AlertHistoryItemModel>();

            try
            {
                stream.Position = 0;
                using (var reader = new StreamReader(stream))
                {
                    IEnumerable <ExpandoObject> expandos = ParsingHelper.ParseCsv(reader).ToExpandoObjects();
                    foreach (ExpandoObject expando in expandos)
                    {
                        AlertHistoryItemModel model = ProduceAlertHistoryItem(expando);

                        if (model != null)
                        {
                            models.Add(model);
                        }
                    }
                }
            }
            finally
            {
            }

            return(models);
        }
        private async static Task <List <AlertHistoryItemModel> > ProduceAlertHistoryItemsAsync(CloudBlockBlob blob)
        {
            Debug.Assert(blob != null, "blob is a null reference.");

            var        models = new List <AlertHistoryItemModel>();
            var        stream = new MemoryStream();
            TextReader reader = null;

            try
            {
                await blob.DownloadToStreamAsync(stream);

                stream.Position = 0;
                reader          = new StreamReader(stream);

                IEnumerable <ExpandoObject> expandos = ParsingHelper.ParseCsv(reader).ToExpandoObjects();
                foreach (ExpandoObject expando in expandos)
                {
                    AlertHistoryItemModel model = ProduceAlertHistoryItem(expando);

                    if (model != null)
                    {
                        models.Add(model);
                    }
                }
            }
            finally
            {
                IDisposable dispStream = stream as IDisposable;
                if (dispStream != null)
                {
                    dispStream.Dispose();
                }

                IDisposable dispReader = reader as IDisposable;
                if (dispReader != null)
                {
                    dispReader.Dispose();
                }
            }

            return(models);
        }
Exemple #3
0
        private static List <AlertHistoryItemModel> ProduceAlertHistoryItemsAsync(Stream stream)
        {
            Debug.Assert(stream != null, "stream is a null reference.");

            var        models = new List <AlertHistoryItemModel>();
            TextReader reader = null;

            try
            {
                stream.Position = 0;
                reader          = new StreamReader(stream);

                IEnumerable <ExpandoObject> expandos = ParsingHelper.ParseCsv(reader).ToExpandoObjects();
                foreach (ExpandoObject expando in expandos)
                {
                    AlertHistoryItemModel model = ProduceAlertHistoryItem(expando);

                    if (model != null)
                    {
                        models.Add(model);
                    }
                }
            }
            finally
            {
                IDisposable dispStream = stream as IDisposable;
                if (dispStream != null)
                {
                    dispStream.Dispose();
                }

                IDisposable dispReader = reader as IDisposable;
                if (dispReader != null)
                {
                    dispReader.Dispose();
                }
            }

            return(models);
        }
Exemple #4
0
        private static AlertHistoryItemModel ProduceAlertHistoryItem(
            ExpandoObject expandoObject,
            string sourceField)
        {
            DateTime date;
            AlertHistoryItemModel model;
            string str;

            Debug.Assert(
                expandoObject != null,
                "expandoObject is a null reference.");

            Debug.Assert(
                !string.IsNullOrEmpty(sourceField),
                "sourceField is a null reference or empty string.");

            model = null;

            str =
                ReflectionHelper.GetNamedPropertyValue(
                    expandoObject,
                    sourceField,
                    true,
                    false) as string;

            if (string.Equals(
                    str,
                    "AlarmTemp",
                    StringComparison.OrdinalIgnoreCase))
            {
                model = new AlertHistoryItemModel()
                {
                    RuleOutput = str
                };

                model.DeviceId =
                    ReflectionHelper.GetNamedPropertyValue(
                        expandoObject,
                        "deviceid",
                        true,
                        false) as string;

                model.Value =
                    ReflectionHelper.GetNamedPropertyValue(
                        expandoObject,
                        "tempreading",
                        true,
                        false) as string;
            }
            else if (string.Equals(
                         str,
                         "AlarmHumidity",
                         StringComparison.OrdinalIgnoreCase))
            {
                model = new AlertHistoryItemModel()
                {
                    RuleOutput = str
                };

                model.DeviceId =
                    ReflectionHelper.GetNamedPropertyValue(
                        expandoObject,
                        "deviceid",
                        true,
                        false) as string;

                model.Value =
                    ReflectionHelper.GetNamedPropertyValue(
                        expandoObject,
                        "humidityreading",
                        true,
                        false) as string;
            }

            if (model != null)
            {
                str =
                    ReflectionHelper.GetNamedPropertyValue(
                        expandoObject,
                        "time",
                        true,
                        false) as string;

                if (DateTime.TryParse(str, out date))
                {
                    model.Timestamp = date;
                }

                model.Value = AttemptNumericFormatting(model.Value);
            }

            return(model);
        }