private static List <BoatTypes> LoadBoatSeatsSelection() { try { var boatSeats = new List <BoatTypes>(); using (var context = new BootDB()) { var tableData = (from b in context.Boats join bt in context.BoatTypes on b.boatTypeId equals bt.boatTypeId select new { boatAmountSpaces = bt.boatAmountSpaces }); //Fills list with all the seat options foreach (var b in tableData) { boatSeats.Add(new BoatTypes() { boatAmountSpaces = b.boatAmountSpaces }); } } //Removes duplicates from list var distinctBoatSeats = boatSeats.GroupBy(elem => elem.boatAmountSpaces).Select(g => g.First()).ToList(); return(distinctBoatSeats); } catch (Exception ex) { //Error message for any exception that could occur MessageBox.Show(ex.Message, "Een fout is opgetreden", MessageBoxButton.OK, MessageBoxImage.Error); return(null); } }
//Unchecked takes boat out of maintenance private void CheckBox_Unchecked(object sender, RoutedEventArgs e) { // Get current boat from click row Boat boat = ((FrameworkElement)sender).DataContext as Boat; try { using (var context = new BootDB()) { var currentBoat = (from b in context.Boats where b.boatId == boat.boatId select b).SingleOrDefault(); currentBoat.boatOutOfService = 0; context.SaveChanges(); MessageBox.Show(boat.boatName + " is uit onderhoud genomen en weer te reserveren.", "Boot weer beschikbaar", MessageBoxButton.OK, MessageBoxImage.Information); } } catch (Exception exception) { //Error message for exception that could occur MessageBox.Show(exception.Message, "Een fout is opgetreden", MessageBoxButton.OK, MessageBoxImage.Error); } }
public void OnLoginButtonIsPressed_MaterialCommissionerLoggedInCorrect_ReturnTrue() { //Arrange Member m = new Member(); MainWindow mw = new MainWindow(); int result; using (var context = new BootDB()) { Member m1 = new Member { memberName = "unittest", memberUsername = "******", memberAccessLevelId = 3, memberRowLevelId = 1, memberSubscribedUntill = DateTime.Now.AddYears(1) }; context.Members.Add(m1); context.SaveChanges(); // Act m.OnLoginButtonIsPressed(new LoginScreen(), new LoginEventArgs("unittest3")); result = m.SortUser; context.Members.Attach(m1); context.Members.Remove(m1); context.SaveChanges(); } // Assert Assert.AreEqual(3, result); }
private static List <BoatTypes> LoadBoatSeatsSelection() { var boatSeats = new List <BoatTypes>(); using (var context = new BootDB()) { var tableData = (from b in context.Boats join bt in context.BoatTypes on b.boatTypeId equals bt.boatTypeId select new { boatAmountSpaces = bt.boatAmountSpaces }); foreach (var b in tableData) { boatSeats.Add(new BoatTypes() { boatAmountSpaces = b.boatAmountSpaces }); } } var distinctBoatSeats = boatSeats.GroupBy(elem => elem.boatAmountSpaces).Select(g => g.First()).ToList(); return(distinctBoatSeats); }
public static void AddNewUserToDb(string nameInput, string usernameInput) { //add user as member, but not active yet if (CheckAmountUsers() != 0) { using (var context = new BootDB()) { var member = new Member { memberUsername = usernameInput, memberName = nameInput, memberAccessLevelId = 1, memberRowLevelId = 1 }; context.Members.Add(member); context.SaveChanges(); } }//if system has no members, first one to register is admin else { using (var context = new BootDB()) { var member = new Member { memberUsername = usernameInput, memberName = nameInput, memberAccessLevelId = 4, memberRowLevelId = 1 }; context.Members.Add(member); context.SaveChanges(); } } }
private void Reservation_Click(object sender, RoutedEventArgs e) { var reservations = new List <Reservations>(); //getting reservations of user from database using (var context = new BootDB()) { var dateNow = DateTime.Now.Date; var timeNow = DateTime.Now.TimeOfDay; var data = (from r in context.Reservations where r.memberId == MemberId && r.date > dateNow || (r.date == dateNow && r.endTime > timeNow) select r.reservationId); foreach (var d in data) { reservations.Add(new Reservations()); } } //check if member has more then two reservations if (reservations.Count < 2) { WebBrowser?.Dispose(); Switcher.Switch(new SelectDateOfReservation(BoatID, BoatName, BoatDescription, AccessLevel, FullName, MemberId)); } else { MessageBox.Show("U kunt geen nieuwe reservering plaatsen omdat u al 2 aankomende reserveringen heeft.", "Opnieuw reserveren", MessageBoxButton.OK, MessageBoxImage.Error); } }
public static void DeleteReservation(int reservationId) { //delete row in reservations table using (var context = new BootDB()) { var data = (from r in context.Reservations where r.reservationId == reservationId select new { r.reservationId, r.memberId, r.date, r.beginTime, r.endTime }); foreach (var d in data) { var res = new Reservations(d.reservationId, d.memberId, d.date, d.beginTime, d.endTime); context.Reservations.Attach(res); context.Reservations.Remove(res); } //delete row in Reservations_Boats table var data2 = (from rb in context.Reservation_Boats where rb.reservationId == reservationId select new { rb.reservationId, rb.boatId }); foreach (var d in data2) { var reservationBoats = new Reservation_Boats(d.reservationId, d.boatId); context.Reservation_Boats.Attach(reservationBoats); context.Reservation_Boats.Remove(reservationBoats); } context.SaveChanges(); } }
private void SetBoatDetailsOnView() { var boatName = ""; var boatDescription = ""; using (var context = new BootDB()) { var tableData = (from b in context.Boats join bt in context.BoatTypes on b.boatTypeId equals bt.boatTypeId where b.boatId == BoatID select new { boatId = b.boatId, boatName = b.boatName, boatTypeDescription = bt.boatTypeDescription }); foreach (var b in tableData) { boatName = b.boatName; boatDescription = b.boatTypeDescription; } } BoatName = boatName; boatIdLabel.Content = boatName; boatDescrLabel.Content = boatDescription; }
private static List <Member> LoadCollectionData() { var members = new List <Member>(); try { using (var context = new BootDB()) { var tableData = (from m in context.Members select m); foreach (var m in tableData) { // Adds table columns with items from database members.Add(new Member() { memberId = m.memberId, memberUsername = m.memberUsername, memberName = m.memberName, memberRowLevelId = m.memberRowLevelId, memberAccessLevelId = m.memberAccessLevelId, memberSubscribedUntill = m.memberSubscribedUntill }); } return(members); } } catch (Exception ex) { //Error message for any exception that could occur MessageBox.Show(ex.Message, "Een fout is opgetreden", MessageBoxButton.OK, MessageBoxImage.Error); return(null); } }
public void OnLoginButtonIsPressed_UserSubscriptionExpired_ReturnFalse() { //Arrange Member m = new Member(); MainWindow mw = new MainWindow(); bool result; using (var context = new BootDB()) { Member m1 = new Member { memberName = "unittest", memberUsername = "******", memberAccessLevelId = 1, memberRowLevelId = 1, memberSubscribedUntill = DateTime.Now.AddYears(-1) }; context.Members.Add(m1); context.SaveChanges(); // Act m.OnLoginButtonIsPressed(new LoginScreen(), new LoginEventArgs("unittest6")); result = m.Correct; context.Members.Attach(m1); context.Members.Remove(m1); context.SaveChanges(); } // Assert Assert.IsFalse(result); }
//Method to add report to the database public static void AddReportToDb(BoatDamage report) { using (var context = new BootDB()) { context.BoatDamages.Add(report); context.SaveChanges(); } }
//Method to add member to the database public static void AddMemberToDb(Member member) { using (var context = new BootDB()) { context.Members.Add(member); context.SaveChanges(); } }
private void ReservationButton_Click(object sender, RoutedEventArgs e) { //getting the selected begin and end time try { SelectedBeginTime = (beginTimePicker.SelectedTime.Value).TimeOfDay; SelectedEndTime = (endTimePicker.SelectedTime.Value).TimeOfDay; } catch (Exception) { ErrorLabel.Content = "Geen geldige invoer"; return; } //check if selected times are possible var check = Reservation.CheckTime(SelectedBeginTime, SelectedEndTime, BeginTime, EndTime, SunUp, SunDown, true); //this will be executed when the selected times are not correct if (!check) { ErrorLabel.Content = "Deze tijden zijn niet mogelijk"; } else //when it is possible to add reservation { using (var context = new BootDB()) { var reservation = new Reservations { memberId = MemberId, date = SelectedDate, beginTime = SelectedBeginTime, endTime = SelectedEndTime, }; context.Reservations.Add(reservation); context.SaveChanges(); //getting the last reservation id to add that to other table var data = (from r in context.Reservations orderby r.reservationId descending select r.reservationId).First().ToString(); var id = int.Parse(data); var reservation_boat = new Reservation_Boats { reservationId = id, boatId = BoatId }; context.Reservation_Boats.Add(reservation_boat); context.SaveChanges(); } //show message when reservation is added to screen MessageBox.Show("Reservering is gelukt!", "Gelukt", MessageBoxButton.OK, MessageBoxImage.Information); Switcher.Switch(new ReservationsScreen(FullName, AccessLevel, MemberId)); } }
//Method that inserts the boat into the database private static void AddBoatToDb(Boat boat) { using (var context = new BootDB()) { context.Boats.Add(boat); context.SaveChanges(); MessageBox.Show("Boot is succesvol toegevoegd.", "Boot toegevoegd", MessageBoxButton.OK, MessageBoxImage.Information); } }
private static int CheckAmountUsers() { using (var context = new BootDB()) { var data = (from m in context.Members select m).ToList(); return(data.Count); } }
private void LoadReservations() { //where reservations get stored var reservations = new List <Reservations>(); var date = DateTime.Now.Date; //is needed to check if the reservation is outdated var endTime = DateTime.Now.TimeOfDay; //is needed to check if reservation is outdated using (var context = new BootDB()) { //getting all data from database var reservationsData = (from r in context.Reservations join m in context.Members on r.memberId equals m.memberId join rb in context.Reservation_Boats on r.reservationId equals rb.reservationId where rb.boatId == BoatID && (r.date > date || (r.date == date && r.endTime > endTime)) orderby r.date, r.beginTime select new { reservationID = r.reservationId, memberName = m.memberName, memberUserName = m.memberUsername, memberRowLevel = m.memberRowLevelId, date = r.date, beginTime = r.beginTime, endTime = r.endTime }); //getting the rowLevel of the user RowLevelMember = int.Parse((from b in context.Members where b.memberId == MemberId select b.memberRowLevelId).First().ToString()); foreach (var d in reservationsData) { //make sure the date is shown in a normal way var resDate = d.date.ToString("d"); //adding data from database to the list reservations.Add(new Reservations(d.memberName, d.memberUserName, d.reservationID, resDate, d.beginTime, d.endTime)); } } //check if there are any reservation ahead if (reservations.Count == 0) { //delete the list of reservations ReservationList.Visibility = Visibility.Collapsed; } else //there are reservations ahead { //Hide the label that shows "er zijn geen aankomende reserveringen" NoReservationAvailable.Visibility = Visibility.Collapsed; // adding all data to the list ReservationList.ItemsSource = reservations; } }
//Method to load a list of all boats with damage private void LoadBoatsWithDamage() { var boats = new List <Boat>(); using (var context = new BootDB()) { //tables used: Boats - BoatDamages - BoatTypes //selected boat Id, boat name, boat type description, amount of damage reports, boat in service or not var data = from b in context.Boats join bt in context.BoatTypes on b.boatTypeId equals bt.boatTypeId where (from bd in context.BoatDamages select bd.boatId).Contains(b.boatId) select new { boatId = b.boatId, boatName = b.boatName, boatDesc = bt.boatTypeDescription, boatDamageReportAmount = (from bd2 in context.BoatDamages where bd2.boatId == b.boatId select bd2).Count(), }; //add all boats with damage reports to list foreach (var d in data) { var nextBoat = new Boat { boatId = d.boatId, boatName = d.boatName, boatTypeDescription = d.boatDesc, boatDamageReportAmount = d.boatDamageReportAmount }; boats.Add(nextBoat); //check if boat is in maintenance if (nextBoat.CheckIfBoatInMaintenance()) { //hide button in overview nextBoat.IsInMaintenance = true; } } } //If there are no damage reports yet set table visibility to false if (boats.Count == 0) { BoatList.Visibility = Visibility.Collapsed; } //If there are damage reports set the label that says there are non to invisible else { NoDamageReportsAvailable.Visibility = Visibility.Collapsed; } //add list with boats to the grid BoatList.ItemsSource = boats; }
//for unit tests public static void RemoveLastAddedMember() { using (var context = new BootDB()) { var data = (from m in context.Members select m).ToList().Last(); context.Members.Attach(data); context.Members.Remove(data); context.SaveChanges(); } }
//check if username exists public static bool UsernameExists(string username) { using (var context = new BootDB()) { var usernames = from u in context.Members where u.memberUsername == username select u; return(usernames.Any()); } }
//Method that finds out what to put into the "boatTypeId" field in the database based on the selected type public static int AssignSelectedType(string selectedType) { int selectedBoatTypeId; using (var context = new BootDB()) { selectedBoatTypeId = (from i in context.BoatTypes where i.boatTypeName == selectedType select i.boatTypeId).FirstOrDefault(); } return(selectedBoatTypeId); }
//Method that inserts the associated image into the database public static void AddImageToDb(BoatImages boatImage) { using (var context = new BootDB()) { boatImage.boatId = (from b in context.Boats orderby b.boatId descending select b.boatId).FirstOrDefault(); context.BoatImages.Add(boatImage); context.SaveChanges(); } }
//Method to check if a boat with the same name already exists in the database private static void CheckIfBoatExists(Boat boat) { using (var context = new BootDB()) { var boats = from b in context.Boats where b.boatName == boat.boatName select b; if (boats.ToList().Count > 0) { throw new Exception("Er bestaat al een boot met deze naam"); } } }
//load upcoming reservations private void LoadReservations() { var reservations = new List <Reservations>(); var date = DateTime.Now.Date; var endTime = DateTime.Now.TimeOfDay; using (var context = new BootDB()) { //tables used: Reservation - Reservation_Boats - Boats - BoatTypes //selected reservationId, BoatName, BoatTypeDescription, date, beginTime, endTime var data = (from r in context.Reservations join rb in context.Reservation_Boats on r.reservationId equals rb.reservationId join b in context.Boats on rb.boatId equals b.boatId join bt in context.BoatTypes on b.boatTypeId equals bt.boatTypeId where (r.memberId == MemberId && r.date > date || (r.date == date && r.endTime > endTime)) && r.reservationBatch == 0 orderby r.date ascending, r.beginTime ascending select new { reservationId = r.reservationId, boatName = b.boatName, boatType = bt.boatTypeDescription, date = r.date, beginTime = r.beginTime, endTime = r.endTime, boatId = b.boatId }); //add all reservations to reservation list foreach (var d in data) { var resDate = d.date.ToString("d"); reservations.Add(new Reservations(d.reservationId, d.boatName, d.boatType, resDate, d.beginTime, d.endTime, d.boatId)); } } //if there are no upcoming reservations make the list invisible. //also moves the reservations history table etc. if (reservations.Count == 0) { ReservationList.Visibility = Visibility.Collapsed; reservationsLabel.Visibility = Visibility.Collapsed; historyLabel.Margin = new Thickness(78, 100, 0, 0); historyScollViewer.Margin = new Thickness(0, 148, 0, 0); NoHistoryReservationAvailable.Margin = new Thickness(332, 162, 332, 0); } //add list with reservation to the grid ReservationList.ItemsSource = reservations; }
public static int CheckAmountReservations(int memberId) { var timeNow = DateTime.Now.TimeOfDay; var dateNow = DateTime.Now.Date; using (var context = new BootDB()) { var data = (from r in context.Reservations where r.memberId == memberId && r.reservationBatch == 0 && (r.date > dateNow || (r.date == dateNow && r.endTime > timeNow)) select r.reservationId).ToList(); return(data.Count()); } }
//Method to check if user already exists public static void CheckIfMemberExists(Member member) { using (var context = new BootDB()) { var members = from m in context.Members where m.memberUsername == member.memberUsername select m; if (members.ToList().Count > 0) { throw new Exception("Gebruiker bestaat al"); } } }
public void AddreportToDB_AddDamageReportToDataBase_ResultIsTrue() { //Arrange var report = new BoatDamage { boatId = 1, memberId = 1, boatDamageLevel = 2, boatDamageLocation = "Voor", boatDamageReason = "Sawwy", reportDate = DateTime.Now, boatImageBlob = "" }; var result = false; //Act //Method is placed inside a try block, so if it cant connect the result is set to false try { BoatDamage.AddReportToDb(report); //Check if the member is actually in the database using (var context = new BootDB()) { var Damages = from d in context.BoatDamages where d.boatId == report.boatId && d.memberId == report.memberId && d.boatDamageLevel == report.boatDamageLevel && d.boatDamageLocation == report.boatDamageLocation && d.boatDamageReason == report.boatDamageReason select d; if (Damages.ToList().Count > 0) { result = true; } } //Remove test member form database using (var context = new BootDB()) { context.BoatDamages.Attach(report); context.BoatDamages.Remove(report); context.SaveChanges(); } } catch (Exception) { result = false; } //Assert Assert.True(result); }
private void LoadReservationsHistory() { //where reservations get stored var reservationsHistory = new List <Reservations>(); var dateToday = DateTime.Now.Date; //is needed to check if reservation is already done var date3Months = DateTime.Now.AddMonths(-3); //is needed to check if the reservation has happened between now and 3 months ago var endTime = DateTime.Now.TimeOfDay; //is needed to check if reservation is already done using (var context = new BootDB()) { //getting all information from database var reservationsDataHistory = (from r in context.Reservations join m in context.Members on r.memberId equals m.memberId join rb in context.Reservation_Boats on r.reservationId equals rb.reservationId where rb.boatId == BoatID && (r.date < dateToday || (r.date == dateToday && r.endTime < endTime)) && r.date > date3Months orderby r.date descending, r.beginTime descending select new { reservationID = r.reservationId, memberName = m.memberName, memberUserName = m.memberUsername, date = r.date, beginTime = r.beginTime, endTime = r.endTime }); foreach (var d in reservationsDataHistory) { //is needed to show the date in a normal way var resDate = d.date.ToString("d"); //adding all data to the list reservationsHistory.Add(new Reservations(d.memberName, d.memberUserName, d.reservationID, resDate, d.beginTime, d.endTime)); } } //check if there are any reservations if (reservationsHistory.Count == 0) { //hide the reservation list ReservationHistoryList.Visibility = Visibility.Collapsed; } else //there are reservations { //hide the label "er zijn geen plaatsgevonden reserveringen" NoHistoryReservationAvailable.Visibility = Visibility.Collapsed; //add all data to the list on the screen ReservationHistoryList.ItemsSource = reservationsHistory; } }
//load reservation history private void LoadReservationsHistory() { var reservationsHistory = new List <Reservations>(); var date = DateTime.Now.Date; var endTime = DateTime.Now.TimeOfDay; using (var context = new BootDB()) { //tables used: Reservation - Reservation_Boats - Boats - BoatTypes //selected reservationId, BoatName, BoatTypeDescription, date, beginTime, endTime var data = (from r in context.Reservations join rb in context.Reservation_Boats on r.reservationId equals rb.reservationId join b in context.Boats on rb.boatId equals b.boatId join bt in context.BoatTypes on b.boatTypeId equals bt.boatTypeId where r.memberId == MemberId && r.reservationBatch < 1 && (r.date < date || (r.date == date && r.endTime < endTime)) orderby r.date descending, r.beginTime descending select new { reservationId = r.reservationId, boatName = b.boatName, boatType = bt.boatTypeDescription, date = r.date, beginTime = r.beginTime, endTime = r.endTime, boatId = b.boatId }); //add all reservations to reservation list foreach (var d in data) { var resDate = d.date.ToString("d"); reservationsHistory.Add(new Reservations(d.reservationId, d.boatName, d.boatType, resDate, d.beginTime, d.endTime, d.boatId)); } //if there is no reservation history make the table invisible if (reservationsHistory.Count == 0) { ReservationHistoryList.Visibility = Visibility.Collapsed; } //if there is a reservation history ser the label that says there is no history to invisible. else { NoHistoryReservationAvailable.Visibility = Visibility.Collapsed; } //add list with reservation to the grid ReservationHistoryList.ItemsSource = reservationsHistory; } }
private void LoadBoatData(int boatId) { using (var context = new BootDB()) { var tableData = (from b in context.Boats join bt in context.BoatTypes on b.boatTypeId equals bt.boatTypeId where b.boatId == boatId select new { boatId = b.boatId, boatTypeId = bt.boatTypeId, boatName = b.boatName, boatTypeName = bt.boatTypeName, boatTypeDescription = bt.boatTypeDescription, boatSteer = bt.boatSteer, boatRowLevel = bt.boatRowLevel, boatAmountSpaces = bt.boatAmountSpaces, boatYoutubeUrl = b.boatYoutubeUrl }); //getting the rowLevel of the user RowLevelMember = int.Parse((from b in context.Members where b.memberId == MemberId select b.memberRowLevelId).First().ToString()); foreach (var b in tableData) { // Loop through record and add to new BoatType BoatType = new BoatTypes() { boatTypeName = b.boatTypeName, boatTypeDescription = b.boatTypeDescription, BoatSteerString = (b.boatSteer == 0) ? "zonder stuur" : "met stuur", boatAmountSpaces = b.boatAmountSpaces, boatRowLevel = b.boatRowLevel }; BoatName = b.boatName; BoatDescription = b.boatTypeDescription; RowLevelBoat = b.boatRowLevel; // Loop through record and add to new Boat BoatData = new Boat() { boatId = b.boatId, boatTypeId = b.boatTypeId, boatName = b.boatName, boatYoutubeUrl = b.boatYoutubeUrl }; } } }
public void AddMemberToDB_AddMemberToDataBase_ResultIsTrue() { //Arrange var member = new Member { memberUsername = "******", memberName = "Unit Test", memberRowLevelId = 1, memberAccessLevelId = 1, memberSubscribedUntill = DateTime.Now.AddYears(1) }; var result = false; //Act //Method is placed inside a try block, so if it cant connect the result is set to false try { Member.AddMemberToDb(member); } catch (Exception e) { result = false; } //Check if the member is actually in the database using (var context = new BootDB()) { var members = from m in context.Members where m.memberUsername == member.memberUsername select m; if (members.ToList().Count > 0) { result = true; } } //Remove test member form database using (var context = new BootDB()) { context.Members.Attach(member); context.Members.Remove(member); context.SaveChanges(); } //Assert Assert.True(result); }