public int GetEntries()
 {
     using (DataContext dataContext = new DataContext())
     {
         return dataContext.Bevaegelser.Count();
     }
 }
 /// <summary>
 /// Henter alle bevaegelser
 /// </summary>
 /// <param name="kolonne">Sortere på den valgte kolonne</param>
 /// <param name="faldendeEllerStigende"></param>
 /// <returns>En liste med alle bevægelser</returns>
 public List<Bevaegelser> HentBevaegelser(string kolonne, string faldendeEllerStigende)
 {
     TraceHjaelp(new []{kolonne, faldendeEllerStigende}, "kaldt");
     using (DataContext dataContext = new DataContext())
     {
         switch (kolonne)
         {
             case "Tidspunkt":
                 switch (faldendeEllerStigende)
                 {
                     case "stigende":
                     {
                         var query = from q in dataContext.Bevaegelser orderby q.Tidspunkt ascending select q;
                             TraceHjaelp(new[] { kolonne, faldendeEllerStigende }, query.Count().ToString() + " Elementer returneret");
                             return query.ToList();
                     }
                     case "faldende":
                     {
                         var query = from q in dataContext.Bevaegelser orderby q.Tidspunkt descending select q;
                             TraceHjaelp(new[] { kolonne, faldendeEllerStigende }, query.Count().ToString() + " Elementer returneret");
                             return query.ToList();
                     }
                     default:
                         var queryDefault = from q in dataContext.Bevaegelser orderby q.Dato descending orderby q.Tidspunkt descending select q;
                         TraceHjaelp(new[] { kolonne, faldendeEllerStigende }, queryDefault.Count().ToString() + " Elementer returneret");
                         return queryDefault.ToList();
                 }
             case "Dato":
                 switch (faldendeEllerStigende)
                 {
                     case "stigende":
                     {
                         var query = from q in dataContext.Bevaegelser orderby q.Dato ascending select q;
                             TraceHjaelp(new[] { kolonne, faldendeEllerStigende }, query.Count().ToString() + " Elementer returneret");
                             return query.ToList();
                     }
                     case "faldende":
                     {
                         var query = from q in dataContext.Bevaegelser orderby q.Dato descending select q;
                             TraceHjaelp(new[] { kolonne, faldendeEllerStigende }, query.Count().ToString() + " Elementer returneret");
                             return query.ToList();
                     }
                     default:
                         var queryDefault = from q in dataContext.Bevaegelser orderby q.Dato descending orderby q.Dato descending select q;
                         TraceHjaelp(new[] { kolonne, faldendeEllerStigende }, queryDefault.Count().ToString() + " Elementer returneret");
                         return queryDefault.ToList();
                 }
             case "Temperatur":
                 switch (faldendeEllerStigende)
                 {
                     case "stigende":
                     {
                         var query = from q in dataContext.Bevaegelser orderby q.Temperatur ascending select q;
                             TraceHjaelp(new[] { kolonne, faldendeEllerStigende }, query.Count().ToString() + " Elementer returneret");
                             return query.ToList();
                     }
                     case "faldende":
                     {
                         var query = from q in dataContext.Bevaegelser orderby q.Temperatur descending select q;
                             TraceHjaelp(new[] { kolonne, faldendeEllerStigende }, query.Count().ToString() + " Elementer returneret");
                             return query.ToList();
                     }
                     default:
                         var queryDefault = from q in dataContext.Bevaegelser orderby q.Dato descending orderby q.Temperatur descending select q;
                         TraceHjaelp(new[] { kolonne, faldendeEllerStigende }, queryDefault.Count().ToString() + " Elementer returneret");
                         return queryDefault.ToList();
                 }
             default:
                 var queryDefault1 = from q in dataContext.Bevaegelser orderby q.Dato descending orderby q.Tidspunkt descending select q;
                 TraceHjaelp(new[] { kolonne, faldendeEllerStigende }, queryDefault1.Count().ToString() + " Elementer returneret");
                 return queryDefault1.ToList();
         }
     }
 }
 private Brugere FindBruger(string brugernavn = null, int id = 0, string email = null)
 {
     using (DataContext dataContext = new DataContext())
     {
         if (email != null)
         {
             Brugere b = dataContext.Brugere.FirstOrDefault(bruger => bruger.Email == email);
             return b;
         }
         if (brugernavn != null)
         {
             Brugere b = dataContext.Brugere.FirstOrDefault(bruger => bruger.Brugernavn == brugernavn);
             return b;
         }
         Brugere br = dataContext.Brugere.FirstOrDefault(bruger => bruger.Id == id);
         return br;
     }
 }
 public Bevaegelser SletHistorik(int id)
 {
     using (DataContext dataContext = new DataContext())
     {
         Bevaegelser b = dataContext.Bevaegelser.FirstOrDefault(bevaegelse => bevaegelse.Id == id);
         if (b != null)
         {
             dataContext.Bevaegelser.Remove(b);
             dataContext.SaveChanges();
             return b;
         }
         return null;
     }
 }
 public Brugere OpdaterPassword(string brugernavn, string password)
 {
     using (DataContext dataContext = new DataContext())
     {
         Brugere b = FindBruger(brugernavn);
         if (b != null && PasswordTjekker(password) && !password.Contains(b.Brugernavn))
         {
             b.Password = password;
             dataContext.Brugere.AddOrUpdate(b);
             dataContext.SaveChanges();
             return b;
         }
         return null;
     }
 }
 /// <summary>
 /// Henter alle bevaegelser
 /// </summary>
 /// <returns>En liste med alle bevægelser</returns>
 public List<Bevaegelser> HentBevaegelser()
 {
     using (DataContext dataContext = new DataContext())
     {
         return dataContext.Bevaegelser.ToList();
     }
 }
        private void DataBehandling(byte[] bytes, ref DateTime senesteDato, ref TimeSpan senesteTid)
        {
            string resp = Encoding.ASCII.GetString(bytes);
            string movementDetected = resp.Split('\r')[7];          // "Movement last detected: 2015 - 10 - 29 09:27:19.001053\r\n";
            string dateTimeString = movementDetected.Split(':')[1]; //  2015-10-29 09
            string[] cutTimeArray = movementDetected.Split(':');    // "[Movement last detected], [2015-10-29 09], [27], [19.001053\r\n]
            string cutTimeSplit = cutTimeArray[3].Split('.')[0];    // 19
            string[] cut3 = dateTimeString.Split(' ');              // [""] [2015-10-29], [09]
            string[] cut4 = cut3[1].Split('-');
            DateTime dt = new DateTime(int.Parse(cut4[0]), int.Parse(cut4[1]), int.Parse(cut4[2]));
            TimeSpan ts = new TimeSpan(int.Parse(cut3[2]), int.Parse(cutTimeArray[2]), int.Parse(cutTimeSplit));
            if (senesteDato != dt || senesteTid != ts)
            {
                VejrService.GlobalWeatherSoapClient client = new VejrService.GlobalWeatherSoapClient();
                var response = client.GetWeather("Roskilde", "Denmark");
                var doc = new XmlDocument();
                doc.LoadXml(response);
                XmlNode root = doc.DocumentElement;
                XmlNode node = root.SelectSingleNode("//Temperature");
                var nodeSplit = node.InnerText.Split('(')[1];
                var nodeSplit2 = nodeSplit.Split(' ')[0];

                using (DataContext dataContext = new DataContext())
                {
                    dataContext.Bevaegelser.Add(new Bevaegelser(dt, ts, decimal.Parse(nodeSplit2)));
                    dataContext.SaveChanges();
                }
                dt = senesteDato;
                ts = senesteTid;
                if (_alarmBool)
                {
                    Alarmer();
                }
            }
        }
        /// <summary>
        /// Opretter en bruger med de pågældende parametre
        /// </summary>
        /// <param name="brugernavn"></param>
        /// <param name="password"></param>
        /// <param name="email"></param>
        /// <returns>string med resultat</returns>
        public string OpretBruger(string brugernavn, string password, string email)
        {
            using (DataContext dataContext = new DataContext())
            {
                Brugere exBruger = FindBruger(brugernavn);

                if (exBruger == null)
                {
                    try
                    {
                        Brugere b = new Brugere() {Brugernavn = brugernavn, Password = password, Email = email};
                        dataContext.Brugere.Add(b);
                        dataContext.SaveChanges();
                        return brugernavn + " er oprettet i databasen";
                    }
                    catch (ArgumentException ex)
                    {
                        return ex.Message;
                    }
                }
                return "Brugernavnet findes allerede i databasen";
            }
        }
 /// <summary>
 /// Opdaterer tidsrummet hvori sensoren er aktiv
 /// </summary>
 /// <param name="fra"></param>
 /// <param name="til"></param>
 /// <returns>string med resultat</returns>
 public string OpdaterTidsrum(string fra, string til)
 {
     if (fra == null)
     {
         string succesStreng = "Fra skal udfyldes";
         TraceHjaelp(new[] { fra, til }, succesStreng);
         return succesStreng;
     }
     if (til == null)
     {
         string succesStreng1 = "Til skal udfyldes";
         TraceHjaelp(new[] { fra, til }, succesStreng1);
         return succesStreng1;
     }
     try
     {
         var f = TimeSpan.Parse(fra);
         var t = TimeSpan.Parse(til);
         using (DataContext dataContext = new DataContext())
         {
             Tider tid = dataContext.Tider.FirstOrDefault(tider => tider.Id == 1);
             tid.Fra = f;
             tid.Til = t;
             dataContext.Tider.AddOrUpdate(tid);
             dataContext.SaveChanges();
             _ta = Task.Run((() => SensorLoop()));
             string succesStreng = "Tidsrummet blev ændret";
             TraceHjaelp(new []{fra, til}, succesStreng);
             return succesStreng;
         }
     }
     catch (Exception ex)
     {
         TraceHjaelp(new[] { fra, til }, ex.Message);
         return "Formatet skal være (HH:MM:SS)";
     }
 }
 /// <summary>
 /// Opdaterer tiden hvori sensoren sover efter måling
 /// </summary>
 /// <param name="minutAntal"></param>
 /// <returns>string med resultat</returns>
 public string OpdaterTidEfterMaaling(int minutAntal)
 {
     int milisekundAntal = minutAntal*60000;
     try
     {
         using (DataContext dataContext = new DataContext())
         {
             Tider tid = dataContext.Tider.FirstOrDefault(t => t.Id == 1);
             if (tid != null)
             {
                 tid.SoveTidEfterMaaling = milisekundAntal;
                 dataContext.Tider.AddOrUpdate(tid);
                 dataContext.SaveChanges();
                 string succesStreng = "Måleren sover nu i " + (minutAntal) + " minutter efter at den har målt";
                 TraceHjaelp(new []{minutAntal.ToString()}, succesStreng);
                 return succesStreng;
             }
             string fejlStreng = "Der gik noget galt. Tiden kunne ikke findes";
             TraceHjaelp(new[] { minutAntal.ToString() }, fejlStreng);
             return fejlStreng;
         }
     }
     catch (Exception ex)
     {
         TraceHjaelp(new[] { minutAntal.ToString() }, ex.Message);
         return ex.Message;
     }
 }
 /// <summary>
 /// Opdaterer den pågældende brugers password til det skrevne password
 /// </summary>
 /// <param name="brugernavn"></param>
 /// <param name="password"></param>
 /// <returns>string med resultat</returns>
 public string OpdaterPassword(string brugernavn, string password)
 {
     using (DataContext dataContext = new DataContext())
     {
         Brugere b = FindBruger(brugernavn);
         if (b != null)
         {
             try
             {
                 b.Password = password;
                 b.Password = KrypterStreng(password);
                 dataContext.Brugere.AddOrUpdate(b);
                 dataContext.SaveChanges();
                 string succesStreng = "Password er ændret";
                 TraceHjaelp(new []{brugernavn, "EncryptedText"}, succesStreng);
                 return succesStreng;
             }
             catch (ArgumentException ex)
             {
                 TraceHjaelp(new[] { brugernavn, "EncryptedText" }, ex.Message);
                 return ex.Message;
             }
         }
         string fejlStreng = "Der gik noget galt med at finde din bruger. Prøv igen";
         TraceHjaelp(new[] { brugernavn, "EncryptedText" }, fejlStreng);
         return fejlStreng;
     }
 }
 /// <summary>
 /// Opdaterer den pågældende brugers email til den skrevne email
 /// </summary>
 /// <param name="brugernavn"></param>
 /// <param name="email"></param>
 /// <returns>string med resultat</returns>
 public string OpdaterEmail(string brugernavn, string email)
 {
     using (DataContext dataContext = new DataContext())
     {
         Brugere b = FindBruger(brugernavn);
         if (b != null)
         {
             try
             {
                 b.Email = email;
                 dataContext.Brugere.AddOrUpdate(b);
                 dataContext.SaveChanges();
                 string succesStreng = "Email er ændret";
                 TraceHjaelp(new []{brugernavn, email}, succesStreng);
                 return succesStreng;
             }
             catch (ArgumentException ex)
             {
                 TraceHjaelp(new[] { brugernavn, email }, ex.Message);
                 return ex.Message;
             }
         }
         string fejlStreng = "Der gik noget galt med at finde din bruger. Prøv igen";
         TraceHjaelp(new[] { brugernavn, email }, fejlStreng);
         return fejlStreng;
     }
 }
 /// <summary>
 /// Henter bevægelser i det skrevne interval
 /// </summary>
 /// <param name="aarstal"></param>
 /// <param name="maaned"></param>
 /// <param name="slutdag"></param>
 /// <returns>int med antal bevægelser i intervallet</returns>
 public int HentTidspunkt(int aarstal, int maaned, int slutdag)
 {
     try
     {
         if (aarstal.ToString().Length == 4 && maaned >= 1 && maaned <= 12 && slutdag >= 1 && slutdag <= 31)
         {
             DateTime startsDato = new DateTime(aarstal, maaned, 1);
             DateTime slutsDato = new DateTime(aarstal, maaned, slutdag);
             using (DataContext dataContext = new DataContext())
             {
                 var query = from q in dataContext.Bevaegelser
                     where q.Dato >= startsDato
                     where q.Dato <= slutsDato
                     select q;
                 int succesInt = query.Count();
                 TraceHjaelp(new[] { aarstal.ToString(), maaned.ToString(), slutdag.ToString() }, succesInt.ToString());
                 return succesInt;
             }
         }
         int fejlInt = 0;
         TraceHjaelp(new[] { aarstal.ToString(), maaned.ToString(), slutdag.ToString() }, fejlInt.ToString());
         return fejlInt;
     }
     catch (Exception ex)
     {
         TraceHjaelp(new []{aarstal.ToString(), maaned.ToString(), slutdag.ToString()}, ex.Message);
         return 0;
     }
 }
 /// <summary>
 /// Henter temperatur i det skrevne interval
 /// </summary>
 /// <param name="startInterval"></param>
 /// <param name="slutInterval"></param>
 /// <returns>int med antal bevægelser i intervallet</returns>
 public int HentTemperatur(int startInterval, int slutInterval)
 {
     using (DataContext datacontext = new DataContext())
     {
         var query = from p in datacontext.Bevaegelser
                     where p.Temperatur >= startInterval && p.Temperatur <= slutInterval
                     select p;
         int succesInt = query.Count();
         TraceHjaelp(new []{startInterval.ToString(), slutInterval.ToString()}, succesInt.ToString());
         return succesInt;
     }
 }
 /// <summary>
 /// Henter bevægelser i det skrevne interval
 /// </summary>
 /// <param name="aarstal"></param>
 /// <param name="maaned"></param>
 /// <param name="slutdag"></param>
 /// <returns>int med antal bevægelser</returns>
 public int HentTidspunkt(int aarstal, int maaned, int slutdag)
 {
     if (aarstal.ToString().Length == 4 && maaned >= 1 && maaned <= 12 && slutdag >= 1 && slutdag <= 31)
     {
         DateTime startsDato = new DateTime(aarstal, maaned, 1);
         DateTime slutsDato = new DateTime(aarstal, maaned, slutdag);
         using (DataContext dataContext = new DataContext())
         {
             var query = from q in dataContext.Bevaegelser
                 where q.Dato >= startsDato
                 where q.Dato <= slutsDato
                 select q;
             return query.Count();
         }
     }
     return 0;
 }
        /// <summary>
        /// Opdatere den pågældende brugers password til det skrevne password
        /// </summary>
        /// <param name="brugernavn"></param>
        /// <param name="password"></param>
        /// <returns>string med resultat</returns>
        public string OpdaterPassword(string brugernavn, string password)
        {
            using (DataContext dataContext = new DataContext())
            {
                Brugere b = FindBruger(brugernavn);
                if (b != null)
                {
                    try
                    {
                    b.Password = password;
                    dataContext.Brugere.AddOrUpdate(b);
                    dataContext.SaveChanges();
                    return "Password er ændret";
                    }
                    catch (ArgumentException ex)
                    {

                        return ex.Message;
                    }
                }
                return "Der gik noget galt med at finde din bruger. Prøv igen";
            }
        }
        /// <summary>
        /// Opretter en bruger med de pågældende parametre
        /// </summary>
        /// <param name="brugernavn"></param>
        /// <param name="password"></param>
        /// <param name="email"></param>
        /// <returns>string med resultat</returns>
        public string OpretBruger(string brugernavn, string password, string email)
        {
            using (DataContext dataContext = new DataContext())
            {
                Brugere exBruger = FindBruger(brugernavn);
                if (exBruger == null)
                {
                    if (brugernavn == null)
                    {
                        string fejlStreng = "Brugernavnet skal udfyldes";
                        TraceHjaelp(new[] { brugernavn, "EncryptedText", email }, fejlStreng);
                        return fejlStreng;
                    }
                    if (password == null)
                    {
                        string fejlStreng1 = "Password skal udfyldes";
                        TraceHjaelp(new[] { brugernavn, "EncryptedText", email }, fejlStreng1);
                        return fejlStreng1;
                    }
                    if (email == null)
                    {
                        string fejlStreng2 = "Email skal udfyldes";
                        TraceHjaelp(new[] {brugernavn, "EncryptedText", email}, fejlStreng2);
                        return fejlStreng2;
                    }
                    try
                    {
                        Brugere b = new Brugere() {Brugernavn = brugernavn, Password = password, Email = email};
                        b.Password = KrypterStreng(password);
                        dataContext.Brugere.Add(b);
                        dataContext.SaveChanges();
                        string succesStreng = brugernavn + " er oprettet i databasen";
                        TraceHjaelp(new[] {brugernavn, "EncryptedText", email}, succesStreng);
                        return succesStreng;
                    }
                    catch (ArgumentException ex)
                    {
                        TraceHjaelp(new[] {brugernavn, "EncryptedText", email}, ex.Message);
                        return ex.Message;
                    }
                }

            }
                string fejlStreng3 = "Brugernavnet findes allerede i databasen";
                TraceHjaelp(new[] { brugernavn, "EncryptedText", email }, fejlStreng3);
                return fejlStreng3;
        }
 private void Alarmer()
 {
     using (DataContext dataContext = new DataContext())
     {
         foreach (var bruger in dataContext.Brugere)
         {
             SendEmail(bruger.Email, "Indbrud", "Der er indbrud!");
         }
         _alarmBool = false;
     }
 }
 /// <summary>
 /// Sletter et bevægelses element med det pågældende id
 /// </summary>
 /// <param name="id"></param>
 /// <returns>bevægelsen med id(id)</returns>
 public Bevaegelser SletHistorik(int id)
 {
     using (DataContext dataContext = new DataContext())
     {
         Bevaegelser b = dataContext.Bevaegelser.FirstOrDefault(bevaegelse => bevaegelse.Id == id);
         if (b != null)
         {
             dataContext.Bevaegelser.Remove(b);
             dataContext.SaveChanges();
             TraceHjaelp(new []{id.ToString()}, b.ToString());
             return b;
         }
         TraceHjaelp(new []{id.ToString()}, "null");
         return null;
     }
 }
        private void SensorLoop()
        {
            Task.Run((() => SetTrue()));
            using (DataContext dataContext = new DataContext())
            {
                while (true)
                {
                    if (DateTime.Now.Hour < 17 && DateTime.Now.Hour > 8)
                    {
                        //Random r = new Random();

                        //string testmessage = "RoomSensor Broadcasting\r\n" +
                        //                     "Location: Teachers room\r\n" +
                        //                     "Platform: Linux - 3.12.28 + -armv6l - with - debian - 7.6\r\n" +
                        //                     "Machine: armv6l\r\n" +
                        //                     "Potentiometer(8bit): 134\r\n" +
                        //                     "Light Sensor(8bit): 159\r\n" +
                        //                     "Temperature(8bit): 215\r\n" +
                        //                     "Movement last detected: 2015 - 10 - 29 09:27:" + r.Next(1,99) + ".001053\r\n";
                        //byte[] staticBytes = Encoding.ASCII.GetBytes(testmessage);
                        byte[] bytes = _client.Receive(ref _ipAddress);
                        Task.Run(() => DataBehandling(bytes, ref _senesteDato, ref _senesteTid));
                        Thread.Sleep(60000);
                    }
                }
            }
        }
 private void AktiverAlarm()
 {
     using (DataContext dataContext = new DataContext())
     {
         while (true)
         {
             _alarmBool = true;
             var firstOrDefault = dataContext.Tider.FirstOrDefault(t => t.Id == 1);
             if (firstOrDefault != null && firstOrDefault.SoveTidEfterAlarmering > 0)
                 Thread.Sleep(firstOrDefault.SoveTidEfterAlarmering);
             else
             {
                 Thread.Sleep(3600000);
             }
         }
     }
 }
 public Brugere OpdaterEmail(string brugernavn, string email)
 {
     using (DataContext dataContext = new DataContext())
     {
         Brugere b = FindBruger(brugernavn);
         if (b != null && email.Contains("@"))
         {
             b.Email = email;
             dataContext.Brugere.AddOrUpdate(b);
             dataContext.SaveChanges();
             return b;
         }
         return null;
     }
 }
        private void SensorLoop()
        {
            Task.Run((() => AktiverAlarm()));
            using (DataContext dataContext = new DataContext())
            {
                while (true)
                {
                    var tid = (from q in dataContext.Tider where q.Id == 1 select q).SingleOrDefault();
                    if (AktiverSensor(DateTime.Now.TimeOfDay, tid.Fra, tid.Til))
                    {
                        //Random r = new Random();

                        //string testmessage = "RoomSensor Broadcasting\r\n" +
                        //                     "Location: Teachers room\r\n" +
                        //                     "Platform: Linux - 3.12.28 + -armv6l - with - debian - 7.6\r\n" +
                        //                     "Machine: armv6l\r\n" +
                        //                     "Potentiometer(8bit): 134\r\n" +
                        //                     "Light Sensor(8bit): 159\r\n" +
                        //                     "Temperature(8bit): 215\r\n" +
                        //                     "Movement last detected: 2015 - 10 - 29 09:27:" + r.Next(1,99) + ".001053\r\n";
                        //byte[] staticBytes = Encoding.ASCII.GetBytes(testmessage);
                        byte[] bytes = _client.Receive(ref _ipAddress);
                        Task.Run(() => DataBehandling(bytes, ref _senesteDato, ref _senesteTid));

                        var firstOrDefault = dataContext.Tider.FirstOrDefault(t => t.Id == 1);
                        if (firstOrDefault != null && firstOrDefault.SoveTidEfterMaaling > 0)
                            Thread.Sleep(firstOrDefault.SoveTidEfterMaaling);
                        else
                        {
                            Thread.Sleep(60000);
                        }
                    }
                }
            }
        }
        public Brugere OpretBruger(string brugernavn, string password, string email)
        {
            bool indeholderIkkeBrugernavn = false;
            bool indeholderSnabelA = false;

            using (DataContext dataContext = new DataContext())
            {
                Brugere exBruger = FindBruger(brugernavn);

                #region Betingelser

                if (!password.Contains(brugernavn))
                {
                    indeholderIkkeBrugernavn = true;
                }
                if (email.Contains("@"))
                {
                    indeholderSnabelA = true;
                }

                #endregion

                if (exBruger == null && PasswordTjekker(password) && indeholderIkkeBrugernavn && indeholderSnabelA)
                {
                    Brugere b = new Brugere() {Brugernavn = brugernavn, Password = password, Email = email};
                    dataContext.Brugere.Add(b);
                    dataContext.SaveChanges();
                    return b;
                }
                return null;
            }
        }
        public void TestOpretBruger2()
        {
            Random r = new Random();
            string name = "linda" + r.Next(1000, 2000);
            Assert.AreEqual(name + " er oprettet i databasen",
                client.OpretBruger(name, "J4566785", name + "@gmail.com"));
            using (DataContext dataContext = new DataContext())
            {

                Brugere b = dataContext.Brugere.FirstOrDefault(bruger => bruger.Brugernavn == name);
                if (b != null)
                {
                    dataContext.Brugere.Remove(b);
                    dataContext.SaveChanges();
                }

            }
        }
 private static void DoIt(byte[] bytes, ref int lastTemp)
 {
     string resp = Encoding.ASCII.GetString(bytes);
     string cut = resp.Split('\r')[6];
     string cut2 = cut.Split(':')[1];
     string cut3 = cut2.Split(' ')[1];
     string cut4 = cut3[0].ToString() + cut3[1].ToString() + "," + cut3[2].ToString();
     int temp = int.Parse(cut3);
     //if (lastTemp != temp)
     //{
     using (DataContext dataContext = new DataContext())
     {
         DateTime tidspunkt = DateTime.Now;
         dataContext.Bevaegelser.Add(new Bevaegelser() {Temperatur = temp, Tidspunkt = tidspunkt});
         dataContext.SaveChanges();
     }
     lastTemp = temp;
     //}
 }
 public void TestSletHistorik()
 {
     Random r = new Random();
     bool actual = false;
     Bevaegelser b1 = service.SletHistorik(r.Next(678,748));
     if (b1 != null)
     {
         actual = true;
     }
     using (DataContext dataContext = new DataContext())
     {
         dataContext.Bevaegelser.Add(b1);
         dataContext.SaveChanges();
     }
     Assert.IsTrue(actual);
 }
 //Integrationstest
 public void TestSletHistorik1()
 {
     Random r = new Random();
     bool actual = false;
     Bevaegelser b1 = client.SletHistorik(r.Next(350, 530));
     if (b1 != null)
     {
         actual = true;
     }
     using (DataContext dataContext = new DataContext())
     {
         dataContext.Bevaegelser.Add(b1);
         dataContext.SaveChanges();
     }
     Assert.AreEqual(true, actual);
 }
        /// <summary>
        /// Finder bruger ud fra skrevne parametre
        /// </summary>
        /// <param name="brugernavn"></param>
        /// <param name="id"></param>
        /// <param name="email"></param>
        /// <returns>Bruger-objekt</returns>
        public Brugere FindBruger(string brugernavn = null, int id = 0, string email = null)
        {
            using (DataContext dataContext = new DataContext())
            {
                if (email != null)
                {
                    Brugere b = dataContext.Brugere.FirstOrDefault(bruger => bruger.Email == email);
                    if (b != null)
                    {
                        TraceHjaelp(new[] { brugernavn, id.ToString(), email }, b.ToString());
                        return b;
                    }
                    TraceHjaelp(new []{brugernavn, id.ToString(), email}, "Brugeren er Null");
                    return null;
                }
                if (brugernavn != null)
                {
                    Brugere b = dataContext.Brugere.FirstOrDefault(bruger => bruger.Brugernavn == brugernavn);
                    if (b != null)
                    {
                        TraceHjaelp(new[] { brugernavn, id.ToString(), email }, b.ToString());
                        return b;
                    }
                    TraceHjaelp(new[] { brugernavn, id.ToString(), email }, "Brugeren er Null");
                    return null;
                }
                Brugere br = dataContext.Brugere.FirstOrDefault(bruger => bruger.Id == id);
                if (br != null)
                {
                    TraceHjaelp(new[] { brugernavn, id.ToString(), email }, br.ToString());
                    return br;
                }
                TraceHjaelp(new[] { brugernavn, id.ToString(), email }, "Brugeren er Null");
                return null;

            }
        }