public Response Register(RegisterUser registerUser) { using (PP_testEntities context = new PP_testEntities()) { bool isExist = context.Uzytkownicies.Any(u => u.email == registerUser.Email); if (isExist) { return new Response() { Result = "Failed", Reason = "User is already exist" } } ; var user = new Uzytkownicy() { email = registerUser.Email, haslo = registerUser.Password, nazwa_uzytk = registerUser.Name }; context.Uzytkownicies.Add(user); context.SaveChanges(); } return(new Response() { Result = "OK" }); }
public Response UpdateInterwalies(List <Interwaly> interwaly) { using (PP_testEntities context = new PP_testEntities()) { var rows = from o in context.Interwalies select o; foreach (var row in rows) { context.Interwalies.Remove(row); } foreach (var i in interwaly) { context.Interwalies.Add(i); } context.SaveChanges(); } return(new Response() { Result = "OK" }); }
public Response UpdateUser(UserProfile user) { using (PP_testEntities context = new PP_testEntities()) { var userToUpdate = (from u in context.Uzytkownicies.Include("Przejazdy_fs").Include("Pojazdies") where user.email == u.email select u).FirstOrDefault(); if (userToUpdate != null) { userToUpdate.administrator = user.administrator; userToUpdate.email = user.email; userToUpdate.haslo = user.haslo; userToUpdate.id_uzytk = user.id_uzytk; userToUpdate.imie = user.imie; userToUpdate.nazwisko = user.nazwisko; userToUpdate.nazwa_uzytk = user.nazwa_uzytk; } context.SaveChanges(); } return(new Response() { Result = "OK" }); }
public Response Read(Reading reading) { bool tokenExist = AuthRepository.IsTokenExist(reading.AuthToken); #if DEBUG tokenExist = true; #endif if (tokenExist) { try { List<int> ridesIds = new List<int>(); var file = Convert.FromBase64String(reading.Content);//System.Text.Encoding.Unicode.GetBytes(reading.Content); string fileName = DateTime.Now.ToString("yyyyMMddHHmmtt") + RandomString(5); string tmpFilePath = Path.Combine(Path.GetTempPath(), fileName); File.WriteAllBytes(tmpFilePath, file); using (SQLiteConnection con = new SQLiteConnection("Data Source="+tmpFilePath)) { con.Open(); string ride = "SELECT _id FROM ride"; using (SQLiteCommand cmd = new SQLiteCommand(ride, con)) { using (SQLiteDataReader rdr = cmd.ExecuteReader()) { while (rdr.Read()) { ridesIds.Add(rdr.GetInt32(0)); } } } using (PP_testEntities context = new PP_testEntities()) { if (ridesIds.Count == 1) { var przejazd = new Przejazdy_fs(); przejazd.dane_przejazdu = file; var userLogins = AuthRepository.GetLogin(reading.AuthToken); #if DEBUG var user = (from u in context.Uzytkownicies select u).FirstOrDefault(); #else var user = (from u in context.Uzytkownicies where u.email == userLogins select u).FirstOrDefault(); #endif przejazd.Uzytkownicy = user; przejazd.id_przejazdu = Guid.NewGuid(); context.Przejazdy_fs.Add(przejazd); AddTagsToRide(con, context, przejazd); } else if (ridesIds.Count > 1) { foreach (var id in ridesIds) { string fname = DateTime.Now.ToString("yyyyMMddHHmmtt") + RandomString(5); string path = Path.Combine(Path.GetTempPath(), fname); File.WriteAllBytes(path, file); var przejazd = new Przejazdy_fs(); using (SQLiteConnection con2 = new SQLiteConnection("Data Source=" + path)) { con2.Open(); string query = "DELETE FROM location_data where RIDE_ID <> " + id.ToString(); SQLiteCommand cmd = new SQLiteCommand(query, con2); cmd.ExecuteNonQuery(); cmd.Dispose(); query = "DELETE FROM accelerometer_data where RIDE_ID <> " + id.ToString(); cmd = new SQLiteCommand(query, con2); cmd.ExecuteNonQuery(); cmd.Dispose(); query = "DELETE FROM gyroscope_data where RIDE_ID <> " + id.ToString(); cmd = new SQLiteCommand(query, con2); cmd.ExecuteNonQuery(); cmd.Dispose(); query = "DELETE FROM light_data where RIDE_ID <> " + id.ToString(); cmd = new SQLiteCommand(query, con2); cmd.ExecuteNonQuery(); cmd.Dispose(); query = "DELETE FROM ride where _id <> " + id.ToString(); cmd = new SQLiteCommand(query, con2); cmd.ExecuteNonQuery(); cmd.Dispose(); var userLogins = AuthRepository.GetLogin(reading.AuthToken); #if DEBUG var user = (from u in context.Uzytkownicies select u).FirstOrDefault(); #else var user = (from u in context.Uzytkownicies where u.email == userLogins select u).FirstOrDefault(); #endif przejazd.Uzytkownicy = user; przejazd.id_przejazdu = Guid.NewGuid(); przejazd.dane_przejazdu = Encoding.ASCII.GetBytes(System.DateTime.Now.ToString()); context.Przejazdy_fs.Add(przejazd); AddTagsToRide(con2, context, przejazd); con2.Close(); GC.Collect(); GC.WaitForPendingFinalizers(); } przejazd.dane_przejazdu = File.ReadAllBytes(path); } } context.SaveChanges(); } } File.Delete(tmpFilePath); return new Response() { Result = "OK" }; } catch (Exception e) { return new Response() { Result = "Error", Reason = e.Message }; } } else { return new Response() {Result = "Error", Reason = "Zły token sesji"}; } }
public PassageData SplitPassageData(UpdateStatistic stat) { bool tokenExists = AuthRepository.IsTokenExist(stat.Token); //#if DEBUG // tokenExists = true; //#endif if (!tokenExists || stat.PassageGuid == null) { return(new PassageData()); } string login = AuthRepository.GetLogin(stat.Token); var guid = new Guid(stat.PassageGuid); using (var context = new PP_testEntities()) { var user = context.Uzytkownicies.First(u => u.email == login); var przejazd = context.Przejazdy_fs.FirstOrDefault(p => p.id_przejazdu == guid); if (przejazd == null || przejazd.id_uzytk != user.id_uzytk && !user.administrator) { return(new PassageData()); } string fileNameInner = DateTime.Now.ToString("yyyyMMddHHmmtt") + ReadingsRepository.RandomString(5); string fileNameOuter = DateTime.Now.ToString("yyyyMMddHHmmtt") + ReadingsRepository.RandomString(5); string tmpFilePathInner = Path.Combine(Path.GetTempPath(), fileNameInner); string tmpFilePathOuter = Path.Combine(Path.GetTempPath(), fileNameOuter); File.WriteAllBytes(tmpFilePathInner, przejazd.dane_przejazdu); File.WriteAllBytes(tmpFilePathOuter, przejazd.dane_przejazdu); var nowy_przejazd = new Przejazdy_fs(); using (var con = new SQLiteConnection("Data Source=" + tmpFilePathInner)) using (var con2 = new SQLiteConnection("Data Source=" + tmpFilePathOuter)) { con.Open(); con2.Open(); string query = $"DELETE FROM location_data where TIMESTAMP >= {stat.StartTimestamp} and TIMESTAMP <= {stat.EndTimestamp}"; SQLiteCommand cmd = new SQLiteCommand(query, con2); cmd.ExecuteNonQuery(); cmd.Dispose(); query = $"DELETE FROM accelerometer_data where TIMESTAMP >= {stat.StartTimestamp} and TIMESTAMP <= {stat.EndTimestamp}"; cmd = new SQLiteCommand(query, con2); cmd.ExecuteNonQuery(); cmd.Dispose(); query = $"DELETE FROM gyroscope_data where TIMESTAMP >= {stat.StartTimestamp} and TIMESTAMP <= {stat.EndTimestamp}"; cmd = new SQLiteCommand(query, con2); cmd.ExecuteNonQuery(); cmd.Dispose(); query = $"DELETE FROM light_data where TIMESTAMP >= {stat.StartTimestamp} and TIMESTAMP <= {stat.EndTimestamp}"; cmd = new SQLiteCommand(query, con2); cmd.ExecuteNonQuery(); cmd.Dispose(); query = $"DELETE FROM location_data where TIMESTAMP < {stat.StartTimestamp} or TIMESTAMP > {stat.EndTimestamp}"; cmd = new SQLiteCommand(query, con); cmd.ExecuteNonQuery(); cmd.Dispose(); query = $"DELETE FROM accelerometer_data where TIMESTAMP < {stat.StartTimestamp} or TIMESTAMP > {stat.EndTimestamp}"; cmd = new SQLiteCommand(query, con); cmd.ExecuteNonQuery(); cmd.Dispose(); query = $"DELETE FROM gyroscope_data where TIMESTAMP < {stat.StartTimestamp} or TIMESTAMP > {stat.EndTimestamp}"; cmd = new SQLiteCommand(query, con); cmd.ExecuteNonQuery(); cmd.Dispose(); query = $"DELETE FROM light_data where TIMESTAMP < {stat.StartTimestamp} or TIMESTAMP > {stat.EndTimestamp}"; cmd = new SQLiteCommand(query, con); cmd.ExecuteNonQuery(); cmd.Dispose(); context.Tagis.RemoveRange(context.Tagis.Where(t => t.id_przejazdu == guid)); var repo = new ReadingsRepository(); repo.AddTagsToRide(con2, context, przejazd); nowy_przejazd.id_przejazdu = Guid.NewGuid(); nowy_przejazd.id_pojazdu = przejazd.id_pojazdu; nowy_przejazd.id_uzytk = przejazd.id_uzytk; nowy_przejazd.data_przejazdu = przejazd.data_przejazdu; repo.AddTagsToRide(con, context, nowy_przejazd); } przejazd.dane_przejazdu = File.ReadAllBytes(tmpFilePathOuter); nowy_przejazd.dane_przejazdu = File.ReadAllBytes(tmpFilePathInner); File.Delete(tmpFilePathOuter); File.Delete(tmpFilePathInner); context.Przejazdy_fs.Add(nowy_przejazd); context.SaveChanges(); return(new PassageData()); } }