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