Exemple #1
0
        public bool InsertReservationAccount(ReservationAccount reservation)
        {
            var query =
                "P_PLEK_RESERVERING.insertPlekReser";

            var parameters = new List <OracleParameter>
            {
                new OracleParameter("Return_Value", OracleDbType.Int32, ParameterDirection.ReturnValue),
                new OracleParameter("p_plekid", reservation.PlaceId),
                new OracleParameter("p_reserveringid", reservation.ReservationId)
            };

            return(Database.ExecuteNonQuery(query, parameters));
        }
 public bool InsertReservationAccount(ReservationAccount reservation)
 {
     return(_context.InsertReservationAccount(reservation));
 }
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            if (!IsValid)
            {
                feedbackPanel.Visible = true;
                lblError.Text         = "Invalide registratie!";
                lblError.CssClass     = "text-danger";
                return;
            }

            if (StartDate.SelectedDate == DateTime.Parse("1-1-0001") ||
                EndDate.SelectedDate == DateTime.Parse("1-1-0001"))
            {
                feedbackPanel.Visible = true;
                lblError.Text         = "Invalide datas.";
                return;
            }

            if (drpListOfPlaces.SelectedValue == "Selecteer een plek")
            {
                feedbackPanel.Visible = true;
                lblError.Text         = "Selecteer eerst een plek om een reservering te plaatsen.";
                return;
            }

            // variables
            Count = 0;

            // Counting field of reservations
            Count = CheckEmptyEmailCount(Email1, Count);
            Count = CheckEmptyEmailCount(Email2, Count);
            Count = CheckEmptyEmailCount(Email3, Count);
            Count = CheckEmptyEmailCount(Email4, Count);
            Count = CheckEmptyEmailCount(Email5, Count);

            // Leader information
            var lFirstname = leader_first_name.Text;
            var lSurname   = leader_last_name.Text;
            var lAddress   = leader_address.Text;
            var lCity      = leader_city.Text;
            var lUsername  = leader_Username.Text;
            var lIban      = leader_iban.Text;
            var lEmail     = leader_Email.Text;
            var lPass      = leader_Password.Text;

            PlaceId = Convert.ToInt32(drpListOfPlaces.SelectedValue);
            var reservationOnPlace = LogicCollection.ReservationLogic.GetCountReservationOfPlace(PlaceId);

            if ((Count + 1 + reservationOnPlace) > LogicCollection.PlaceLogic.GetPlaceByID(PlaceId).Capacity)
            {
                feedbackPanel.Visible = true;
                lblError.Text         = "Teveel mensen willen op de plek ingeschreven worden.";
                return; // Too much people on that place
            }

            // Making person of leader
            var person = new Person(0, lFirstname, lSurname, lAddress, lCity, lIban); // local person

            if (!LogicCollection.PersonLogic.Insert(person))
            {
                return;
            }                                                    // insert person
            person = LogicCollection.PersonLogic.GetLastAdded(); // get person out of database

            // Register leader
            var lhash      = Membership.GeneratePassword(8, 2);
            var leaderUser = new User(0, lUsername, lEmail, lhash, false, lPass);

            if (!LogicCollection.UserLogic.RegisterUser(leaderUser))
            {
                return;
            }
            leaderUser = LogicCollection.UserLogic.GetLastAdded();

            // Making reservation
            var reservation = new Reservation(0, person.ID, StartDate.SelectedDate, EndDate.SelectedDate, false); // local reservation

            if (!LogicCollection.ReservationLogic.Insert(reservation))
            {
                return;
            }                                                              // insert reservation
            reservation = LogicCollection.ReservationLogic.GetLastAdded(); // get reservation out of database

            // Reservation Wristband leader
            var resvationWristband = new ReservationWristband(0, reservation.ID, leaderUser.ID);

            if (!LogicCollection.ReservationWristbandLogic.Insert(resvationWristband))
            {
                return;
            }                                                                                   // insert reservation
            resvationWristband = LogicCollection.ReservationWristbandLogic.GetLastAdded();

            // sending reservation mail to leader
            try
            {
                LogicCollection.ReservationLogic.ReservationMail(leaderUser, CurEvent,
                                                                 LogicCollection.PlaceLogic.GetPlaceByID(PlaceId), reservation.DateStart, reservation.DateEnd);
            }
            catch (Exception)
            {
                return;
            }

            // Making reservation_account
            var reservationAccount = new ReservationAccount(0, reservation.ID, PlaceId);

            if (!LogicCollection.ReservationLogic.InsertReservationAccount(reservationAccount))
            {
                return;
            }


            #region checking reservations emailadresses & Reservations of users

            // Listof Textboxes
            var listOfEmailReservation = new List <TextBox>()
            {
                Email1, Email2, Email3, Email4, Email5
            };

            var reservationsOfNewUser = new List <User>();
            // Checking Emailadres if not empty
            foreach (var email in listOfEmailReservation.Where(email => CheckEmptyEmailStatus(email)))
            {
                if (!LogicCollection.UserLogic.IsValidEmail(email.Text) || email == leader_Email)
                {
                    feedbackPanel.Visible = true;
                    lblError.Text         = "Invalide emailadressen.";
                    return;
                }

                var result = Regex.Match(email.Text, @"^.*?(?=@)").Value;

                var hash = Membership.GeneratePassword(8, 0);
                reservationsOfNewUser.Add(new User(0, result, email.Text, hash, false, null));
            }

            // Adding user to database and make reservation
            foreach (var user in reservationsOfNewUser)
            {
                // checking if users is not null send email and insert into database
                if (user == null)
                {
                    continue;
                }

                //send email and insert into database and make reservationAccount
                var password = Membership.GeneratePassword(10, 0);
                var register = LogicCollection.UserLogic.RegisterUser(user, true, password);
                var userLast = LogicCollection.UserLogic.GetLastAdded();

                if (!register)
                {
                    continue;
                }
                //var res = new ReservationAccount(0, reservation.ID, PlaceId);
                //if (!LogicCollection.ReservationLogic.InsertReservationAccount(res)) { return; }

                var resvationWristGuest = new ReservationWristband(0, reservation.ID, userLast.ID);
                if (!LogicCollection.ReservationWristbandLogic.Insert(resvationWristGuest))
                {
                    return;
                }                                                                                       // insert reservationWristband

                //sending reservation mail to newUser
                try
                {
                    LogicCollection.ReservationLogic.ReservationMail(userLast, CurEvent,
                                                                     LogicCollection.PlaceLogic.GetPlaceByID(PlaceId), reservation.DateStart, reservation.DateEnd);
                }
                catch (Exception)
                {
                    return;
                }
            }
            #endregion

            // Feedbackpanels
            feedbackPanel.Visible       = false;
            feedbackPanelSucces.Visible = true;
            fromRegister.Visible        = false;

            lblSucces.Visible = true;
            lblSucces.Text    =
                (IsValid ? "Succesvol geregisteerd! Login om je reservering te betalen." : "Invalide gegevens") +
                "<br />Voornaam: " + lFirstname +
                "<br />Achternaam: " + lSurname +
                "<br />Adres: " + lAddress +
                "<br />Woonplaats: " + lCity +
                "<br />IBAN: " + lIban +
                "<br />Email: " + lEmail +
                "<br />Meerdere reserveerders: " + Count +
                "<br />PlaceID: " + PlaceId +
                "<br />Startdatum: " + StartDate.SelectedDate.ToShortDateString() +
                "<br />Einddatum: " + EndDate.SelectedDate.ToShortDateString() +
                "<br /><a href='/Views/AccountSystem/Login.aspx'>Nu inloggen</a>";
        }