//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); }
//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(); } } }