private void DidLoad(object sender, RoutedEventArgs e)
        {
            //show the boat information
            BoatAmount.Content = $"  {SelectionList.Count}";

            if (AccessLevel == 1)
            {
                AccessLevelButton.Content = "Lid";
            }
            else if (AccessLevel == 2)
            {
                AccessLevelButton.Content = "Wedstrijdcommissaris";
            }
            else if (AccessLevel == 3)
            {
                AccessLevelButton.Content = "Materiaalcommissaris";
            }
            else if (AccessLevel == 4)
            {
                AccessLevelButton.Content = "Administrator";
            }

            //check which dates are not possible to reserve because of maintenance or other reservations
            foreach (var boat in SelectionList)
            {
                dates = reservation.CheckDates(boat.boatId);

                var bm = new BoatInMaintenances();
                //Get dates when boat is in maintenance
                var maintenanceDates = BoatInMaintenances.CheckMaintenanceDates(boat.boatId);
                foreach (var d in maintenanceDates)
                {
                    //adding dates to list
                    if (!dates.Contains(d))
                    {
                        dates.Add(d);
                    }
                }

                foreach (var date in dates)
                {
                    //disable the dates that are not possible to reserve
                    DatePicker.BlackoutDates.Add(new CalendarDateRange(date));
                }
            }
        }
        private void DidLoad(object sender, RoutedEventArgs e)
        {
            //show the boat information
            BoatName.Content        = $"  {boatName}";
            BoatDescription.Content = $" {BoatTypeDescription}";
            if (AccessLevel == 1)
            {
                AccessLevelButton.Content = "Lid";
            }
            else if (AccessLevel == 2)
            {
                AccessLevelButton.Content = "Wedstrijdcommissaris";
            }
            else if (AccessLevel == 3)
            {
                AccessLevelButton.Content = "Materiaalcommissaris";
            }
            else if (AccessLevel == 4)
            {
                AccessLevelButton.Content = "Administrator";
            }

            //check which dates are not possible to reserve
            Dates = Reservation.CheckDates(BoatId);

            //getting dates when boat is in maintenance
            var bm = new BoatInMaintenances();
            var maintancesDates = BoatInMaintenances.CheckMaintenanceDates(BoatId);

            foreach (var d in maintancesDates)
            {
                //adding dates to list
                Dates.Add(d);
            }

            foreach (var date in Dates)
            {
                //disable the dates that are not possible to reserve
                DatePicker.BlackoutDates.Add(new CalendarDateRange(date));
            }
        }
예제 #3
0
        private void InMaintenance_Click(object sender, RoutedEventArgs e)
        {
            var valid = true;
            var from  = DatePicker.SelectedDate;
            var until = DatePickerUntil.SelectedDate;

            //start date is not empty
            if (from == null)
            {
                valid = false;
                MessageBox.Show("Vult u de start datum in.");
            }
            else if (until == null) //end date is not empty
            {
                valid = false;
                MessageBox.Show("Vult u de eind datum in.");
            }
            else if (from > until) //startDate > endDates
            {
                valid = false;
                MessageBox.Show("Start datum mag niet voorbij eind datum zijn.");
            }



            //save to boatMaintenance
            if (!valid)
            {
                return;
            }
            int insertId;

            //set endDate time to 23:59:59 from day
            var now      = (DateTime)until;
            var newUntil = now.AddHours(23).AddMinutes(59).AddSeconds(59);


            using (var context = new BootDB())
            {
                var inmain = new BoatInMaintenances()
                {
                    boatId    = this.BoatID,
                    startDate = @from,
                    endDate   = newUntil
                };

                //save to boat in maintenances
                context.BoatInMaintenances.Add(inmain);
                context.SaveChanges();

                insertId = inmain.boatInMaintenanceId;

                //find reservation id
                int reservId;
                var query = context.Reservations
                            .FirstOrDefault(x => x.memberId == MemberId && x.date >= @from && x.date <= newUntil);

                if (query != null)
                {
                    reservId = query.reservationId;

                    //remove records from reservations
                    context.Reservations.RemoveRange(context.Reservations.Where(x => x.reservationId == reservId && x.memberId == MemberId));

                    //remove records from Resevervation_boats
                    context.Reservation_Boats.RemoveRange(context.Reservation_Boats.Where(x => x.reservationId == reservId));
                    context.SaveChanges();
                }
            }
            MessageBox.Show($"Boot \"{BoatName}\" is in onderhoud genomen van {@from?.ToString("dd-MM-yyyy")} t/m {until?.ToString("dd-MM-yyyy")}.");
            Switcher.Switch(new DamageReportsScreen(FullName, AccessLevel, MemberId));
        }