示例#1
0
文件: DBTable.cs 项目: Adel-dz/Hub
        public void Delete(int ndx)
        {
            Assert(IsConnected);
            Assert(ndx < RowCount);
            Assert(0 <= ndx);

            lock (m_rwLock)
            {
                int ndxFrame = RowIndexToFrameIndex(ndx);

                if (m_header.FirstDeletedFrameIndex != NULL_INDEX)
                {
                    m_writer.Position = 0;
                    m_writer.Write(m_header.FirstDeletedFrameIndex);

                    long framePos = GetFramePosition(ndxFrame);
                    WriteFrame(framePos);
                }

                m_header.FirstDeletedFrameIndex = ndxFrame;
                int pos = m_recycledData.BinarySearch(ndxFrame);

                Assert(pos < 0);
                m_recycledData.Insert(~pos, ndxFrame);

                m_header.LastWriteTime = DateTime.Now;
                DatumDeleted?.Invoke(ndx);
            }
        }
        private void SaveMeltResults()
        {
            var arguments = new List <Tuple <string, double> >
            {
                new Tuple <string, double>(@"G шлака, т", GshlSAVE[adaptROUND - 1]),
                new Tuple <string, double>(@"L СО_СО2, м3", LSAVE[adaptROUND - 1]),
                new Tuple <string, double>(@"Теплопотери, кДж", TeplFutLossSAVE[adaptROUND - 1]),
                new Tuple <string, double>(@"Р2О5 шл", Tube.Шлак.P2O5),
                new Tuple <string, double>(@"Сумм расх-ие балансов, %", adaptCOMPAIR * 100)
            };

            if (_isFixedMass)
            {
                arguments.Add(new Tuple <string, double>(@"alfa Fe, доли", alfaFeSAVE[adaptROUND - 1]));
                arguments.Add(new Tuple <string, double>(@"В", Tube.Шлак.B));
            }
            else
            {
                arguments.Add(new Tuple <string, double>(@"alfa Fe, доли", Params.alfaFe));
                arguments.Add(new Tuple <string, double>(@"В", (Tube.Шлак.CaO + Tube.Шлак.MgO) / Tube.Шлак.SiO2));
                arguments.Add(new Tuple <string, double>(@"Gст, т", Estimation.GstYieldSAVE[adaptROUND - 1]));
                arguments.Add(new Tuple <string, double>(@"alfa Изв, доли", Estimation.ALFAizvSAVE[adaptROUND - 1]));
            }

            var write = new TableWriter(Settings.Default.MelpMdb);

            write.Write("adaptationdata", arguments, NumberOfAdaptedMelt + 1);
        }
示例#3
0
        public static void ExportCreditStatistics(IEnumerable <Student> students)
        {
            Dictionary <string, StatisticalFilter> filters = new Dictionary <string, StatisticalFilter>();

            filters["MIND"] = s => true;
            filters["PASS"] = s => s.Specialization != null;
            filters["FAIL"] = s => s.Specialization == null;
            foreach (var code in students.Select(s => s.EducationProgram).Distinct())
            {
                foreach (var filter in filters)
                {
                    Dictionary <string, XHistogram[]> histograms = new Dictionary <string, XHistogram[]>();
                    string[] groups = students.Where(s => s.EducationProgram == code).SelectMany(s => s.CreditPerGroup.Keys).Distinct().ToArray();
                    foreach (string group in groups)
                    {
                        var values    = students.Where(s => s.EducationProgram == code).Where(s => filter.Value(s)).Where(s => s.CreditPerGroup.Sum(e => e.Value) > 0).Select(student => student.CreditPerGroup[group]);
                        var histogram = values.GroupBy(i => i).OrderBy(e => e.Key).Select(e => new XHistogram(e.Key, e.Count()));
                        histograms.Add(group, histogram.ToArray());
                    }
                    var driver = new ExcelDriver();
                    foreach (var sheet in histograms)
                    {
                        TableWriter.Write <XHistogram>(Export.PATH_HISTOGRAM, sheet.Value, driver, code + "+" + filter.Key + "+" + sheet.Key);
                    }
                }
            }
            Log.Write(Export.PATH_HISTOGRAM);
        }
示例#4
0
        protected void WriteAssociations()
        {
            var driver = new SeparatedTextDriver();

            TableWriter.Write <XAssociation>(Export.PATH_ASSOCIATIONS, _rows.OfType <XUser>().Select(v => new XAssociation(v.Neptun, v.EducationProgram, v.Identifier)), driver);
            Log.Write(Export.PATH_ASSOCIATIONS);
        }
示例#5
0
        public static void ExportReports(IEnumerable <Student> students, IEnumerable <Specialization> specializations, IEnumerable <SpecializationGrouping> specializationGroupings)
        {
            var driver = new ExcelDriver();

            TableWriter.Write <XStudent>(Export.PATH_REPORT, students.Select(student => new XStudent(student)), driver);
            TableWriter.Write <XSumma>(Export.PATH_REPORT, specializations.Select(specialization =>
                                                                                  new XSumma(specialization, specializationGroupings)), driver);
            Log.Write(Export.PATH_REPORT);
        }
        private void TestDb()
        {
            var write = new TableWriter(Settings.Default.ParamsMdb);

            var tuples = new List <Tuple <string, double> >();
            var tuple1 = new Tuple <string, double>("Угар Fe в дым", 1.0d);
            var tuple2 = new Tuple <string, double>("Масса гот стали (выход)", 1.0d);

            tuples.Add(tuple1);
            tuples.Add(tuple2);

            write.Write("countdata", tuples, 1);
        }
示例#7
0
        protected void WriteTables()
        {
            File.Delete(Export.PATH_USERS_INSERT);
            File.Delete(Export.PATH_USERS_UPDATE);
            File.Delete(Export.PATH_RESULTS_SQL);
            File.Delete(Export.PATH_RESULTS_ZIP);

            StructuredQueryDriver driver = new StructuredQueryDriver();

            driver.QueryType = StructuredQueryType.TruncateInsert;
            TableWriter.Write <XUser>(Export.PATH_USERS_INSERT, _rows.OfType <XUser>(), driver);
            Log.Write(Export.PATH_USERS_INSERT);

            driver.QueryType = StructuredQueryType.UpdateWithFirstAsKey;
            TableWriter.Write <XUser>(Export.PATH_USERS_UPDATE, _rows.OfType <XUser>(), driver);
            Log.Write(Export.PATH_USERS_UPDATE);

            if (_rows.OfType <XUser>().Any(user => user.IsProvisioned) && !_rows.OfType <XUser>().All(user => user.IsProvisioned))
            {
                driver.QueryType = StructuredQueryType.Insert;
                TableWriter.Write <XUser>(Export.PATH_USERS_DIFFERENCE, _rows.OfType <XUser>().Where(user => user.IsProvisioned), driver);
                Log.Write(Export.PATH_USERS_DIFFERENCE);
            }

            driver.QueryType = StructuredQueryType.TruncateInsert;
            TableWriter.Write <XEmail>(Export.PATH_RESULTS_SQL, _rows.OfType <XEmail>(), driver);
            TableWriter.Write <XChoice>(Export.PATH_RESULTS_SQL, _rows.OfType <XChoice>(), driver);
            TableWriter.Write <XResult>(Export.PATH_RESULTS_SQL, _rows.OfType <XResult>(), driver);
            TableWriter.Write <XCourse>(Export.PATH_RESULTS_SQL, _rows.OfType <XCourse>(), driver);
            TableWriter.Write <XAvarage>(Export.PATH_RESULTS_SQL, _rows.OfType <XAvarage>(), driver);
            Log.Write(Export.PATH_RESULTS_SQL);

            ZipFile zip = new ZipFile(Export.PATH_RESULTS_ZIP);

            zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
            zip.AddFile(Export.PATH_RESULTS_SQL, "");
            zip.Save();
            Log.Write(Export.PATH_RESULTS_ZIP);
        }
 public void Write()
 {
     _tableWriter.Write(Items, typeof(TITem).GetProperties().Select(p => p.Name).ToArray());
     _workbook.SaveAs(_stream);
 }
 public void Write()
 {
     _tableWriter.Write(Items, typeof(TITem).GetProperties().Select(p => p.Name).ToArray());
 }