Exemplo n.º 1
0
        static void StatisticCoefficientK1K2()
        {
            C_Flats_PIK1_AreasTableAdapter pikFlats = new C_Flats_PIK1_AreasTableAdapter();
            var flatsAreas = new PIK1.C_Flats_PIK1_AreasDataTable();

            flatsAreas = pikFlats.GetData();

            DBService dbServ = new DBService(null);

            dbServ.LoadDbFlatsFromFile();
            //var sections = DBService.dictDbFlats.Values.SelectMany(s => s).ToList();

            // Шагов, этажность , секция, кол квартир, К1, К2
            var sectCoeffsK1K2 = new List <Tuple <SelectSectionParam, string, int, double, double, string> >();

            foreach (var item in DBService.dictDbFlats)
            {
                var    sectBySize      = item.Value;
                double levelArea       = 0;
                double levelAreaOffLLU = 0;
                double levelAreaOnLLU  = 0;

                foreach (var sect in sectBySize)
                {
                    string          sectString = string.Empty;
                    List <RoomInfo> rooms      = new List <RoomInfo>();
                    foreach (var flat in sect)
                    {
                        var ri = flat.GetRoomInfo();
                        ri.CodeReqIndex = GetRoomCode(ri);
                        rooms.Add(ri);
                        var currentFlatAreas = flatsAreas.First(x => x.Short_Type.Equals(flat.ShortType));
                        var areas            = Calculate.GetAreaFlat(15, ri, currentFlatAreas);
                        levelArea       += areas[2];
                        levelAreaOffLLU += areas[3];
                        levelAreaOnLLU  += areas[4];
                        sectString      += flat.ShortType + "_";
                    }
                    var k1 = levelAreaOffLLU / levelArea;
                    var k2 = levelAreaOffLLU / levelAreaOnLLU;

                    string code = GetCodeSection(rooms);

                    sectCoeffsK1K2.Add(new Tuple <SelectSectionParam, string, int, double, double, string>(
                                           item.Key, sectString, sect.Count - 1, k1, k2, code));
                }
            }

            using (var xlPackage = new ExcelPackage())
            {
                DoubleEqualityComparer doubleComparer = new DoubleEqualityComparer(0.01);
                var wsK1 = xlPackage.Workbook.Worksheets.Add("К1");
                FillCoefK(sectCoeffsK1K2, wsK1, "К1", (k) => k.GroupBy(g => g.Item4, doubleComparer));
                var wsK2 = xlPackage.Workbook.Worksheets.Add("К2");
                FillCoefK(sectCoeffsK1K2, wsK2, "К2", (k) => k.GroupBy(g => g.Item5, doubleComparer));
                xlPackage.SaveAs(new FileInfo("BankSectionsCoeficientK1K2.xlsx"));
            }
        }
Exemplo n.º 2
0
        public MainForm()
        {
            InitializeComponent();
            btnMenuGroup1.Image = Properties.Resources.up;
            btnMenuGroup2.Image = Properties.Resources.up;
            btnMenuGroup3.Image = Properties.Resources.up;

            var pikFlats = new C_Flats_PIK1_AreasTableAdapter();

            flatsAreas     = pikFlats.GetData();
            dictFlatsAreas = flatsAreas.ToDictionary(k => k.Short_Type, v => v);
            var flatsTableAdapter = new C_Flats_PIK1TableAdapter();

            dbFlats = flatsTableAdapter.GetData();
        }