Beispiel #1
0
        public Nullable <T> SetVariable <T>(string Path, string Keyword, int ParameterIndex, T value) where T : struct
        {
            PFSFile    pfsFile    = null;
            PFSKeyword pfsKeyword = null;

            if (!CheckAll(Path, Keyword, out pfsFile, out pfsKeyword))
            {
                return(null);
            }

            try
            {
                switch (typeof(T).ToString())
                {
                case "System.Boolean":
                {
                    object obj = value;
                    pfsKeyword.DeleteParameter(ParameterIndex);
                    pfsKeyword.InsertNewParameterBool((bool)obj, ParameterIndex);
                    object boolValue = pfsKeyword.GetParameter(ParameterIndex).ToBoolean();

                    pfsFile.Write(fi.FullName);
                    pfsFile.Close();

                    return((T?)boolValue);
                }

                case "System.Double":
                {
                    object obj = value;
                    pfsKeyword.DeleteParameter(ParameterIndex);
                    pfsKeyword.InsertNewParameterDouble((double)obj, ParameterIndex);
                    object doubleValue = pfsKeyword.GetParameter(ParameterIndex).ToDouble();

                    pfsFile.Write(fi.FullName);
                    pfsFile.Close();

                    return((T?)doubleValue);
                }

                case "System.Int32":
                case "System.Int64":
                {
                    object obj = value;
                    pfsKeyword.DeleteParameter(ParameterIndex);
                    pfsKeyword.InsertNewParameterInt((int)obj, ParameterIndex);
                    object intValue = pfsKeyword.GetParameter(ParameterIndex).ToInt();

                    pfsFile.Write(fi.FullName);
                    pfsFile.Close();

                    return((T?)intValue);
                }

                case "System.Single":
                {
                    object obj = value;
                    pfsKeyword.DeleteParameter(ParameterIndex);
                    pfsKeyword.InsertNewParameterDouble((float)obj, ParameterIndex);
                    object singleValue = pfsKeyword.GetParameter(ParameterIndex).ToSingle();

                    pfsFile.Write(fi.FullName);
                    pfsFile.Close();

                    return((T?)singleValue);
                }

                default:
                {
                    return(null);
                }
                }
            }
            catch (Exception ex)
            {
                ErrorMessage = string.Format(CSSPDHIRes.ParameterIndex_DoesNotExistForSectionPath_AndKeyword_Error_, ParameterIndex, Path, Keyword, ex.Message + (ex.InnerException != null ? " Inner: " + ex.InnerException.Message : ""));
                OnCSSPDHIChanged(new CSSPDHIEventArgs(new CSSPDHIMessage("Error", -1, false, ErrorMessage)));
                pfsFile.Close();
                return(null);
            }
        }