public static void VarmastTillKallasteUte(string plats) { using (var db = new ProjektarbeteContext()) { var q = (from rad in db.Datavardes where rad.plats == plats group rad by rad.datum.Date into g select new { g.Key, tempMedel = g.Average(rad => rad.temp) }).OrderBy(g => g.tempMedel); foreach (var z in q) { Console.WriteLine($"{z.Key} {z.tempMedel.ToString("##.#")}"); } Console.WriteLine(q.Count()); //select cast(datum as date), format(AVG(Temp), 'N1') // from datavarde // where Plats = 'Ute' // group by cast(datum as date) //order by AVG(Temp) desc } }
public static List <Balkong> TabellTempInneUte(DateTime dag) { // 1 skapar tabellen som har innetemperaturer using (var db = new ProjektarbeteContext()) { var TabInne = from rad in db.Datavardes where rad.datum.Date == dag.Date && rad.plats == "Inne" select new { datum = rad.datum, TempInne = rad.temp }; // 2 skapar tabellen som har yttretemperaturer var TabYttre = from rad in db.Datavardes where rad.datum.Date == dag.Date && rad.plats == "Ute" select new { datum = rad.datum, TempUte = rad.temp }; // 3 joinar dessa två tabeller för att få ut en enda var TabInUte = ( from radInne in TabInne join radUte in TabYttre on radInne.datum equals radUte.datum // data della radInne coincide cn la data della riga TempUte select new Balkong { datum = radInne.datum, TempInne = radInne.TempInne, TempUte = radUte.TempUte }).ToList(); return(TabInUte); // sorterar för datum och lägger den i en lista // Tabell med nummer men utan titel } }
public static void InsertData(Temperaturer t) { using (var db = new ProjektarbeteContext()) { db.Add(t); db.SaveChanges(); } }
public static List <Fuktig> RiskForMogel(string plats) { using (var db = new ProjektarbeteContext()) { var q = from rad in db.Datavardes where rad.plats == plats group rad by rad.datum.Date into g select new Fuktig() { DagDatum = g.Key, fuktMedel = g.Average(rad => rad.luftfuktighet), tempMedel = g.Average(rad => rad.temp) }; // select new Fuktig() { g.Key, g.Average(rad => rad.temp), g.Average(rad => rad.luftfuktighet), 0 }; var listMogel = (from rad in q orderby rad.DagDatum select rad).ToList(); // execl chart var fl = new StreamWriter(@"C:\Prova\riskmedel.csv"); // beräkning av mögelindex double gammalRiskindex = 0; foreach (var x in listMogel) // x är första dagen DagDatum i tabellen { if (x.fuktMedel > Fuktig.RHcrit((double)x.tempMedel)) { x.Mogelindex = gammalRiskindex + 0.1; } else { x.Mogelindex = gammalRiskindex - 0.1; if (x.Mogelindex < 0) { x.Mogelindex = 0; } } gammalRiskindex = x.Mogelindex; // fl.WriteLine("{0,10:d} ; {3,5:N1} ; {1,5:N0} ; {2,5:N2}", x.dagensdatum, x.fuktMedel, riskindex[i], x.tempMedel); // {position : date utan // i++; } // fl.Close(); // Console.WriteLine("End of printing"); // Console.WriteLine($"{x.dagensdatum} {x.luftfuktigmedel.ToString()}"); return(listMogel); } }
public static DateTime MinDatum() // vi får Min Datumet som finns (tillgänglig) i databasen dvs 2016-05-31 { using (var db = new ProjektarbeteContext()) { var q = db.Datavardes .Min(x => x.datum); return(q); } }
private void btnTtF_Click(object sender, EventArgs e) // TORRAST TILL FUKTIGASTE { using (var db = new ProjektarbeteContext()) { lblGrid.Text = "Sortering av torrast till fuktigaste dagen enligt medelluftfuktighet per dag" + comboPlats.SelectedItem.ToString(); dataGridView3.DataSource = EFMethods.TorrastTillfuktigaste(comboPlats.SelectedItem.ToString()); dataGridView3.Columns["FuktMedel"].DefaultCellStyle.Format = "0.#"; } }
private void btnVtK_Click(object sender, EventArgs e) // VARMAST TILL KALLASTE { using (var db = new ProjektarbeteContext()) { lblGrid.Text = "Sortering av varmast till kallaste dagen enligt medeltemperatur per dag " + comboPlats.SelectedItem.ToString(); dataGridView3.DataSource = EFMethods.VarmastTillKallasteUte(comboPlats.SelectedItem.ToString()); // lägger q i dataGridView3.Columns["TempMedel"].DefaultCellStyle.Format = "0.#"; // 1.skriver kolumnnamn, 2.väljer med # hur många siffror efter kommatecken ska dyka upp } }
public static void InsertData1(string FilNamn) // tar all data från cvs filNamn och lägger den i databasen. { // FilNamn är cvs filen därifrån vi hämtar all data. using (var db = new ProjektarbeteContext()) { foreach (string rad in File.ReadLines(FilNamn)) { var tmpx = Metoder.ConvertData(rad); // skapar objekt temperatur i vilken rad konverteras (rad viene convertito nell´oggetto tmpx). if (tmpx is not null) { db.Add(tmpx); db.SaveChanges(); // 4 gånger snabbare om jag skriver metoden Savechanges() inne i metoden foreach, dvs efter att all data skrivs in i databasen. } } } }
public static void InsertData2(string FilNamn) // tar all data från cvs filNamn och lägger den i databasen { using (var db = new ProjektarbeteContext()) { foreach (string rad in File.ReadLines(FilNamn)) { var tmpx = Metoder.ConvertData(rad); // skapar objekt temperatur i vilken rad konverteras (rad viene convertito nell´oggetto tmpx) if (tmpx is not null) { db.Add(tmpx); } } db.SaveChanges(); // 4 gånger långsammare om jag skriver metoden Savechanges() efter foreach, dvs efter att all data skrivs in i databasen } }
private void btnTtF_Click(object sender, EventArgs e) // TORRAST TILL FUKTIGASTE { using (var db = new ProjektarbeteContext()) { var q = (from rad in db.Datavardes where rad.plats == comboPlats.SelectedItem.ToString() group rad by rad.datum.Date //grupperar raderna ordnade enligt dagdatumen "raggruppa le righe in ordine di data escludend ore e minuti" (.Date toglie ore e minuti) into g select new { DagDatum = g.Key, FuktMedel = g.Average(rad => rad.luftfuktighet) }).OrderBy(g => g.FuktMedel); dataGridView2.DataSource = q.ToList(); dataGridView2.Columns["FuktMedel"].DefaultCellStyle.Format = "0.#"; } }
private void btnVtK_Click(object sender, EventArgs e) { using (var db = new ProjektarbeteContext()) { var q = (from rad in db.Datavardes where rad.plats == comboPlats.SelectedItem.ToString() group rad by rad.datum.Date into g select new { DagDatum = g.Key, TempMedel = g.Average(rad => rad.temp) }).OrderBy(g => g.TempMedel); dataGridView1.DataSource = q.ToList(); // lägger q i dataGridView1.Columns["TempMedel"].DefaultCellStyle.Format = "0.#"; // 1.skriver kolumnnamn, 2.väljer med # hur många siffror efter kommatecken ska dyka upp } }
public static Object TorrastTillfuktigaste(string plats) // TORRAST TILL FUKTIGASTE { using (var db = new ProjektarbeteContext()) { var q = (from rad in db.Datavardes where rad.plats == plats group rad by rad.datum.Date //grupperar raderna ordnade enligt dagdatumen "raggruppa le righe in ordine di data escludend ore e minuti" (.Date toglie ore e minuti) into g select new { DagDatum = g.Key, FuktMedel = g.Average(rad => rad.luftfuktighet), fuktMax = g.Max(rad => rad.luftfuktighet), fuktMin = g.Min(rad => rad.luftfuktighet) }).OrderBy(g => g.FuktMedel); return(q.ToList()); } }
public static Object VarmastTillKallasteUte(string plats) { using (var db = new ProjektarbeteContext()) { var q = (from rad in db.Datavardes where rad.plats == plats group rad by rad.datum.Date into g select new { dagDatum = g.Key, tempMedel = g.Average(rad => rad.temp), tempMax = g.Max(rad => rad.temp), tempMin = g.Min(rad => rad.temp) }).OrderBy(g => g.tempMedel); return(q.ToList()); } }
public static List <Fuktig> RiskForMogel(string plats) { using (var db = new ProjektarbeteContext()) { var q = from rad in db.Datavardes where rad.plats == plats group rad by rad.datum.Date // Här bestämmer vi vad g.Key ska ha. into g select new Fuktig() { DagDatum = g.Key, fuktMedel = g.Average(rad => rad.luftfuktighet), tempMedel = g.Average(rad => rad.temp) }; // linq gör egengligen inget hittils. // select new Fuktig() { g.Key, g.Average(rad => rad.temp), g.Average(rad => rad.luftfuktighet), 0 }; var listMogel = (from rad in q orderby rad.DagDatum select rad).ToList(); // beräkning av mögelindex foreach (var x in listMogel) // x är första dagen DagDatum i tabellen { x.Mogelindex = Mmax(x.tempMedel, x.fuktMedel); //if (x.fuktMedel > Fuktig.RHcrit((double)x.tempMedel)) x.Mogelindex = gammalRiskindex + 0.1; //else //{ // x.Mogelindex = gammalRiskindex - 0.1; // if (x.Mogelindex < 0) x.Mogelindex = 0; //} //gammalRiskindex = x.Mogelindex; } // fl.Close(); // Console.WriteLine("End of printing"); // Console.WriteLine($"{x.dagensdatum} {x.luftfuktigmedel.ToString()}"); return(listMogel); } }
public static float MedelTempInUtomhus(DateTime dag, string plats) { using (var db = new ProjektarbeteContext()) { var q = from rad in db.Datavardes where rad.datum.Date == dag.Date && rad.plats == plats select rad.temp; if (q.Count() > 1) { return(q.Average()); } else { return(0); } } }
public static DateTime MeteorologiskVinter() { using (var db = new ProjektarbeteContext()) { var q = from rad in db.Datavardes where rad.plats == "Ute" && rad.datum > DateTime.Parse("2016-08-01") group rad by rad.datum.Date into g select new { dag = g.Key, tempMedel = g.Average(rad => rad.temp) }; var q2 = from radg in q // order resultatet in q by dag orderby radg.dag select radg; int n = 0; foreach (var z in q2) { if (z.tempMedel <= 0) // kontrollerar om temperaturen är <= 10 grader { n++; // räknar för hur många dagar i rad temperaturen är <= 10 grader if (n == 5) { return(z.dag); } } else { n = 0; } } return(DateTime.Parse("2099 12 12")); // StartVinterDag ej hittad } }