Exemplo n.º 1
0
        //string timeZoneId, bool isReadCalculatedValues,
        //  DateTime dtServerStart, DateTime dtServerEnd, EnumDataSourceType? dataSourceType,

        public FormulaInterpreterDB(FORMULAS_EXPRESSIONS fExpr, IDBInterfaceAdapter nameInterface
                                    , InterpretatorParams interpretatorParams
                                    , IMyListConverters myListConverters, IGetNotWorkedPeriodService IGetNotWorkedPeriodService, IDateTimeExtensions dateTimeExtensions)
        {
            _fExpr = fExpr;
            InterpretatorParams = interpretatorParams;
            //this.SubFormulas = new System.Collections.Hashtable();
            _recursionCallStack = new HashSet <string>();
            _variablesDict      = new Dictionary <string, Variable>();
            //_variablesDict.Add("myVar", new Variable("myVar", 0, 1440, new TFormulaConstant() { ArchiveValues = new List<TVALUES_DB>() { new TVALUES_DB(VALUES_FLAG_DB.DataCorrect, 20010) } }, "1666"));
            _nameInterface = nameInterface;

            _dateTimeExtensions = dateTimeExtensions;

            _formulaArchivesPrecalculator = new FormulaArchivesPrecalculator(interpretatorParams.TimeZoneId
                                                                             , interpretatorParams.IsReadCalculatedValues, interpretatorParams.ServerStartDateTime, interpretatorParams.ServerEndDateTime
                                                                             , interpretatorParams.DataSourceType, myListConverters, IGetNotWorkedPeriodService, _dateTimeExtensions);
        }
Exemplo n.º 2
0
        //public void Collect(FORMULAS_EXPRESSIONS F_excpressions, string FilePath)
        //{
        //    byte[] data = Collect(F_excpressions);
        //    PrvFileStream file_str = null;
        //    try
        //    {
        //        file_str = new PrvFileStream(FilePath, FileModeEx.CreateAlways, FileAccessEx.Write, FileShareEx.None);
        //        file_str.Write(data, 0, (int)data.Length);
        //    }
        //    finally
        //    {
        //        if (file_str != null)
        //            file_str.Close();
        //    }
        //}

        public byte[] Collect(FORMULAS_EXPRESSIONS F_excpressions)
        {
            MemoryStream memory_str = null;

            try
            {
                memory_str          = new MemoryStream();
                memory_str.Position = 0;

                XmlWriterSettings settings = new XmlWriterSettings();
                settings.ConformanceLevel = ConformanceLevel.Document;
                settings.Indent           = true;
                XmlWriter xml_writer = XmlWriter.Create(memory_str, settings);

                xml_writer.WriteStartElement("FORMULAS_EXPRESSIONS");

                //List<FORMULA> f_list = F_excpressions.FORMULAS_LIST;

                //for (int i = 0; i < f_list.Count; i++)
                //    WriteFormulaData(f_list[i], xml_writer);

                foreach (var _key in F_excpressions.FORMULAS_LIST.Keys)
                {
                    WriteFormulaData(F_excpressions.FORMULAS_LIST[_key], xml_writer);
                }

                xml_writer.WriteEndElement();

                xml_writer.Close();
                memory_str.Position = 0;

                return(memory_str.ToArray());
            }
            finally
            {
                if (memory_str != null)
                {
                    memory_str.Close();
                }
            }
        }