예제 #1
0
        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
            }
        }
예제 #2
0
        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
            }
        }
예제 #3
0
 public static void InsertData(Temperaturer t)
 {
     using (var db = new ProjektarbeteContext())
     {
         db.Add(t);
         db.SaveChanges();
     }
 }
예제 #4
0
      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);
          }
      }
예제 #5
0
 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);
     }
 }
예제 #6
0
        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.#";
            }
        }
예제 #7
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
            }
        }
예제 #8
0
 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.
             }
         }
     }
 }
예제 #9
0
        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
            }
        }
예제 #10
0
        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.#";
            }
        }
예제 #11
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
            }
        }
예제 #12
0
        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());
            }
        }
예제 #13
0
        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());
            }
        }
예제 #14
0
      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);
          }
      }
예제 #15
0
 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);
         }
     }
 }
예제 #16
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
            }
        }