Beispiel #1
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (!(value is double))
            {
                return(null);
            }
            double v = (double)value;
            double p = parameter as double? ?? 0;

            return(SingleParam?.Invoke(v) ?? DoubleParam?.Invoke(v, p));
        }
Beispiel #2
0
        static internal async Task LoadState()
        {
            //Try catch inside of the Method
            SingleParam <SuspensionState> res = await new Persistance().LoadJsonAsync <SuspensionState>(SuspensionStateFileNameWithExt);

            if (res.Success == true)
            {
                PointerTo_ListOfEntries = res.value.Entries;
                PointerTo_SelectedEntry = res.value.SelectedEntry;
            }
        }
Beispiel #3
0
        internal async Task <SingleParam <byte[]> > GetPictureFromURLAsync(string URL)
        {
            SingleParam <byte[]> res = new SingleParam <byte[]>();

            try
            {
                byte[] buffer = await _httpClient.GetByteArrayAsync(URL).ConfigureAwait(false);

                res.value = buffer;

                res.Success = true;
            }
            catch (Exception ex)
            {
                res.Error = ex;
            }

            return(res);
        }
Beispiel #4
0
        internal async Task <SingleParam <string> > ReadTextFromFileAsync(string fileNameWithExtension)
        {
            var res = new SingleParam <String>();

            try
            {
                Windows.Storage.StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;

                StorageFile file = await localFolder.GetFileAsync(fileNameWithExtension).AsTask().ConfigureAwait(false);

                res.value = await FileIO.ReadTextAsync(file).AsTask().ConfigureAwait(false);

                res.Success = true;
            }
            catch (Exception ex)
            {
                res.Error = ex;
            }
            return(res);
        }
Beispiel #5
0
        internal async Task <SingleParam <string> > GetJsonPayLoadAsync(string URL)
        {
            SingleParam <string> res = new SingleParam <string>();

            try
            {
                using (HttpResponseMessage responseMessage = await _httpClient.GetAsync(URL).ConfigureAwait(false))
                {
                    responseMessage.EnsureSuccessStatusCode();
                    res.value = await responseMessage.Content.ReadAsStringAsync().ConfigureAwait(false);

                    res.Success = true;
                }
            }
            catch (Exception ex)
            {
                res.Error = ex;
            }

            return(res);
        }
        public Dictionary <string, IParameter> Read(IPackage owner)
        {
            Dictionary <string, IParameter> parameters = new Dictionary <string, IParameter>();

            if (File.Exists(_FileName))
            {
                StreamReader sr      = new StreamReader(_FileName);
                var          txt     = sr.ReadToEnd().Trim();
                var          lines   = txt.Split(new char[] { '\n' });
                string       newline = "";
                int          dimRow  = 0;
                int          paraRow = 0;
                for (int i = 0; i < lines.Length; i++)
                {
                    if (lines[i].ToLower().Contains("dimensions"))
                    {
                        dimRow = i;
                    }
                    if (lines[i].ToLower().Contains("parameters"))
                    {
                        paraRow = i;
                        break;
                    }
                }
                //read dimensions
                for (int i = dimRow + 1; i < paraRow;)
                {
                    i++;
                    newline = lines[i].Trim();
                    SingleParam <int> gv = new SingleParam <int>(newline)
                    {
                        Dimension      = 1,
                        VariableType   = ParameterType.Dimension,
                        DimensionNames = dim_name
                    };
                    i++;
                    newline  = lines[i].Trim();
                    gv.Value = int.Parse(newline);
                    if (!parameters.Keys.Contains(gv.Name))
                    {
                        parameters.Add(gv.Name, gv);
                    }
                    i++;
                }
                if (paraRow == 0)
                {
                    paraRow = -1;
                }
                //read parameters
                for (int i = paraRow + 1; i < lines.Length;)
                {
                    i++;
                    newline = TypeConverterEx.Split <string>(lines[i], 1)[0];
                    string name = newline.Trim();
                    i++;
                    newline = lines[i];
                    int      Dimension      = int.Parse(newline.Trim());
                    string[] dimensionNames = new string[Dimension];
                    for (int d = 0; d < Dimension; d++)
                    {
                        i++;
                        dimensionNames[d] = lines[i].Trim();
                    }
                    i++;
                    newline = lines[i];
                    int ValueCount = int.Parse(newline.Trim());
                    i++;
                    newline = lines[i];
                    int ValueType = int.Parse(newline.Trim());
                    if (ValueType == 0)
                    {
                        ArrayParam <short> gv = new ArrayParam <short>(name)
                        {
                            ValueType      = ValueType,
                            VariableType   = ParameterType.Parameter,
                            Dimension      = Dimension,
                            DimensionNames = dimensionNames,
                            Owner          = owner,
                        };
                        gv.Values = TypeConverterEx.ChangeType <short>(lines, i + 1, i + ValueCount);
                        if (!parameters.Keys.Contains(gv.Name))
                        {
                            parameters.Add(gv.Name, gv);
                        }
                    }
                    else if (ValueType == 1)
                    {
                        ArrayParam <int> gv = new ArrayParam <int>(name)
                        {
                            ValueType      = ValueType,
                            VariableType   = ParameterType.Parameter,
                            Dimension      = Dimension,
                            DimensionNames = dimensionNames,
                            Owner          = owner,
                        };
                        gv.Values = TypeConverterEx.ChangeType <int>(lines, i + 1, i + ValueCount);
                        if (!parameters.Keys.Contains(gv.Name))
                        {
                            parameters.Add(gv.Name, gv);
                        }
                    }
                    else if (ValueType == 2)
                    {
                        ArrayParam <float> gv = new ArrayParam <float>(name)
                        {
                            ValueType      = ValueType,
                            VariableType   = ParameterType.Parameter,
                            Dimension      = Dimension,
                            DimensionNames = dimensionNames,
                            Owner          = owner
                        };
                        gv.Values = TypeConverterEx.ChangeType <float>(lines, i + 1, i + ValueCount);
                        if (!parameters.Keys.Contains(gv.Name))
                        {
                            parameters.Add(gv.Name, gv);
                        }
                    }
                    else if (ValueType == 3)
                    {
                        ArrayParam <double> gv = new ArrayParam <double>(name)
                        {
                            ValueType      = ValueType,
                            VariableType   = ParameterType.Parameter,
                            Dimension      = Dimension,
                            DimensionNames = dimensionNames,
                            Owner          = owner
                        };
                        gv.Values = TypeConverterEx.ChangeType <double>(lines, i + 1, i + ValueCount);
                        if (!parameters.Keys.Contains(gv.Name))
                        {
                            parameters.Add(gv.Name, gv);
                        }
                    }
                    else if (ValueType == 4)
                    {
                        ArrayParam <string> gv = new ArrayParam <string>(name)
                        {
                            ValueType      = ValueType,
                            VariableType   = ParameterType.Parameter,
                            Dimension      = Dimension,
                            DimensionNames = dimensionNames,
                            Owner          = owner
                        };
                        gv.Values = TypeConverterEx.ChangeType <string>(lines, i + 1, i + ValueCount);
                        if (!parameters.Keys.Contains(gv.Name))
                        {
                            parameters.Add(gv.Name, gv);
                        }
                    }

                    i += ValueCount + 1;
                }
                IsLoaded = true;

                foreach (var pr in parameters.Values)
                {
                    pr.Owner = owner;
                }

                return(parameters);
            }
            else
            {
                Message  = string.Format("\r\n Failed to load . The package file does not exist: {0}", _FileName);
                IsLoaded = false;
                return(parameters);
            }
        }
        public override bool Load(ICancelProgressHandler progress)
        {
            if (File.Exists(FileName))
            {
                StreamReader sr      = new StreamReader(FileName);
                var          txt     = sr.ReadToEnd().Trim();
                var          lines   = txt.Split(new char[] { '\n' });
                string       newline = "";
                int          dimRow  = 0;
                int          paraRow = 0;
                for (int i = 0; i < lines.Length; i++)
                {
                    if (lines[i].ToLower().Contains("dimensions"))
                    {
                        dimRow = i;
                    }
                    if (lines[i].ToLower().Contains("parameters"))
                    {
                        paraRow = i;
                        break;
                    }
                }
                //read dimensions
                for (int i = dimRow + 1; i < paraRow;)
                {
                    i++;
                    newline = lines[i].Trim();
                    SingleParam <int> gv = new SingleParam <int>(newline)
                    {
                        Dimension      = 1,
                        VariableType   = ParameterType.Dimension,
                        DimensionNames = dim_name
                    };
                    i++;
                    newline  = lines[i].Trim();
                    gv.Value = int.Parse(newline);
                    if (!Parameters.Keys.Contains(gv.Name))
                    {
                        Parameters.Add(gv.Name, gv);
                    }
                    i++;
                }
                //read parameters
                for (int i = paraRow + 1; i < lines.Length;)
                {
                    i++;
                    newline = TypeConverterEx.Split <string>(lines[i], 1)[0];
                    string name = newline.Trim();
                    i++;
                    newline = lines[i];
                    int      Dimension      = int.Parse(newline.Trim());
                    string[] dimensionNames = new string[Dimension];
                    for (int d = 0; d < Dimension; d++)
                    {
                        i++;
                        dimensionNames[d] = lines[i].Trim();
                    }
                    i++;
                    newline = lines[i];
                    int ValueCount = int.Parse(newline.Trim());
                    i++;
                    newline = lines[i];
                    int ValueType = int.Parse(newline.Trim());
                    if (ValueType == 0)
                    {
                        ArrayParam <short> gv = new ArrayParam <short>(name)
                        {
                            ValueType      = ValueType,
                            VariableType   = ParameterType.Parameter,
                            Dimension      = Dimension,
                            DimensionNames = dimensionNames,
                            Owner          = this,
                        };
                        gv.Values = TypeConverterEx.ChangeType <short>(lines, i + 1, i + ValueCount);
                        if (!Parameters.Keys.Contains(gv.Name))
                        {
                            Parameters.Add(gv.Name, gv);
                        }
                    }
                    else if (ValueType == 1)
                    {
                        ArrayParam <int> gv = new ArrayParam <int>(name)
                        {
                            ValueType      = ValueType,
                            VariableType   = ParameterType.Parameter,
                            Dimension      = Dimension,
                            DimensionNames = dimensionNames,
                            Owner          = this,
                        };
                        gv.Values = TypeConverterEx.ChangeType <int>(lines, i + 1, i + ValueCount);
                        if (!Parameters.Keys.Contains(gv.Name))
                        {
                            Parameters.Add(gv.Name, gv);
                        }
                    }
                    else if (ValueType == 2)
                    {
                        ArrayParam <float> gv = new ArrayParam <float>(name)
                        {
                            ValueType      = ValueType,
                            VariableType   = ParameterType.Parameter,
                            Dimension      = Dimension,
                            DimensionNames = dimensionNames,
                            Owner          = this
                        };
                        gv.Values = TypeConverterEx.ChangeType <float>(lines, i + 1, i + ValueCount);
                        if (!Parameters.Keys.Contains(gv.Name))
                        {
                            Parameters.Add(gv.Name, gv);
                        }
                    }
                    else if (ValueType == 3)
                    {
                        ArrayParam <double> gv = new ArrayParam <double>(name)
                        {
                            ValueType      = ValueType,
                            VariableType   = ParameterType.Parameter,
                            Dimension      = Dimension,
                            DimensionNames = dimensionNames,
                            Owner          = this
                        };
                        gv.Values = TypeConverterEx.ChangeType <double>(lines, i + 1, i + ValueCount);
                        if (!Parameters.Keys.Contains(gv.Name))
                        {
                            Parameters.Add(gv.Name, gv);
                        }
                    }
                    else if (ValueType == 4)
                    {
                        ArrayParam <string> gv = new ArrayParam <string>(name)
                        {
                            ValueType      = ValueType,
                            VariableType   = ParameterType.Parameter,
                            Dimension      = Dimension,
                            DimensionNames = dimensionNames,
                            Owner          = this
                        };
                        gv.Values = TypeConverterEx.ChangeType <string>(lines, i + 1, i + ValueCount);
                        if (!Parameters.Keys.Contains(gv.Name))
                        {
                            Parameters.Add(gv.Name, gv);
                        }
                    }

                    i += ValueCount + 1;
                }
                OnLoaded(progress);
                return(true);
            }
            else
            {
                Message = string.Format("\tFailed to load {0}. The package file does not exist: {1}", Name, FileName);
                OnLoadFailed(Message, progress);
                return(false);
            }
        }
Beispiel #8
0
 private void SingleParamTest( SingleParam method, string command, string testValue )
 {
     method( testValue );
     Assertion.AssertEquals( command + " " + testValue, BufferToString() );
     try
     {
         method(null);
         Assertion.Fail("Null");
     }
     catch( ArgumentException ae )
     {
         Assertion.Assert( true );
     }
     try
     {
         method("");
         Assertion.Fail("Empty");
     }
     catch( ArgumentException ae )
     {
         Assertion.Assert( true );
     }
     try
     {
         method("bad value" );
         Assertion.Fail("Bad value");
     }
     catch( ArgumentException ae )
     {
         Assertion.Assert( true );
     }
     try
     {
         method( CreateString(600) );
         Assertion.Fail("Long value");
     }
     catch( ArgumentException ae )
     {
         Assertion.Assert( true );
     }
 }