/// <summary>
        /// 現在の環境データを取得します
        /// </summary>
        /// <returns></returns>
        public static ContainerAqualiumRawData DeserializeAqualiumDataCurrent()
        {
            var aquadatas = new ContainerAqualiumRawData();

            var tableRecords = AzureStrageTable.getTableRecordCurrent();

            return(deserializeRecesiveRecord(tableRecords));
        }
        /// <summary>
        /// 受け取ったIotHubからのレコードを水槽内部データオブジェクトとしてデシリアライズします
        /// </summary>
        /// <param name="propertys"></param>
        /// <returns></returns>
        private static ContainerAqualiumRawData deserializeRecesiveRecord(IDictionary <string, EntityProperty> propertys)
        {
            List <string>            element  = new List <string>();
            ContainerAqualiumRawData aquaDate = new ContainerAqualiumRawData();

            System.Reflection.PropertyInfo[] propertysContainerAqualiumRawData = typeof(ContainerAqualiumRawData).GetProperties();
            foreach (var property in propertys)
            {
                if (property.Value.PropertyType == EdmType.String)
                {
                    Console.WriteLine("{0}, {1}", property.Key, property.Value.StringValue);
                    //レコード内部のJson文字列で構成されている"LogOutput"をパーシングしオブジェクトへ格納します
                    if (property.Key == "LogOutput")
                    {
                        string logOutput = "";
                        logOutput = property.Value.StringValue.Replace("Message received:", "");
                        logOutput = logOutput.Replace("[", "");
                        logOutput = logOutput.Replace("]", "");
                        logOutput = logOutput.Replace("{", "");
                        logOutput = logOutput.Replace("}", "");
                        foreach (var logstr in logOutput.Split(','))
                        {
                            string[] node = new string[2];
                            node[0] = RevoveChars(logstr.Split(':')[0], new char[] { '"', ':', ' ', '\r', '\n' });
                            node[1] = RevoveChars(logstr.Split(':')[1], new char[] { '"', ':', ' ', '\r', '\n' });
                            foreach (var propertyContainerAqualiumRawData in propertysContainerAqualiumRawData)
                            {
                                if (propertyContainerAqualiumRawData.Name == node[0])
                                {
                                    string tmpstr   = node[1];
                                    var    tmpValue = propertyContainerAqualiumRawData.GetValue(aquaDate);
                                    var    tmpType  = tmpValue.GetType();
                                    double tmpD;
                                    int    tmpI;

                                    if (tmpType.IsPrimitive)
                                    {
                                        if (double.TryParse(tmpstr, out tmpD))
                                        {
                                            propertyContainerAqualiumRawData.SetValue(aquaDate, tmpD);
                                        }
                                        else if (int.TryParse(tmpstr, out tmpI))
                                        {
                                            propertyContainerAqualiumRawData.SetValue(aquaDate, tmpI);
                                        }
                                        else
                                        {
                                            throw new Exception();
                                        }
                                    }
                                    else if (tmpType.Name == typeof(DateTimeOffset).Name)
                                    {
                                        propertyContainerAqualiumRawData.SetValue(aquaDate, DateTimeOffset.Parse(tmpstr));
                                    }
                                    else
                                    {
                                        propertyContainerAqualiumRawData.SetValue(aquaDate, tmpstr);
                                    }
                                    break;
                                }
                            }
                        }
                    }
                }
                //レコード内部の日時データについては、上記(LogOutput文字列)とは別のパーシングし、対称オブジェクトのプロパティへ格納します
                else if (property.Value.PropertyType == EdmType.DateTime)
                {
                    foreach (var propertyContainerAqualiumRawData in propertysContainerAqualiumRawData)
                    {
                        if (propertyContainerAqualiumRawData.Name == property.Key)
                        {
                            var tmpValue = propertyContainerAqualiumRawData.GetValue(aquaDate);
                            var tmpType  = tmpValue.GetType();
                            if (tmpType.Name == typeof(DateTimeOffset).Name)
                            {
                                propertyContainerAqualiumRawData.SetValue(aquaDate, property.Value.DateTimeOffsetValue);
                            }
                        }
                    }
                }
            }
            return(aquaDate);
        }