Пример #1
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                Int32 NextAdvantageNumber = GetNextAdvantageNumber();
                //Add fields to user here so they will be saved to do the database
                var user = new AppUser
                {
                    UserName        = model.Email,
                    Email           = model.Email,
                    FirstName       = model.FirstName,
                    LastName        = model.LastName,
                    MI              = model.MI,
                    DOB             = model.DOB,
                    Address         = model.Address,
                    City            = model.City,
                    State           = model.State,
                    ZipCode         = model.ZipCode,
                    Miles           = model.Miles,
                    PhoneNumber     = model.PhoneNumber,
                    AdvantageNumber = NextAdvantageNumber + 1,
                    EmpType         = model.EmpType,
                };
                var result = await UserManager.CreateAsync(user, model.Password);


                //Once you get roles working, you may want to add users to roles upon creation
                await UserManager.AddToRoleAsync(user.Id, "Customer");



                if (result.Succeeded)
                {
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
                    // Send an email with this link
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    MailModelsController c         = new MailModelsController();
                    ActionResult         newresult = c.RegistrationConfirmed(model);

                    //return View();
                    return(RedirectToAction("Index", "Home"));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Пример #2
0
        public ActionResult ShowTotal()
        {
            checkoutviewmodel vm                        = new checkoutviewmodel();
            decimal           total                     = vm.Total;
            Int32             maxID                     = db.Reservations.Max(x => x.ReservationID);
            Reservation       newestReservation         = db.Reservations.Find(maxID);
            List <Ticket>     ReservationWithNewTickets = db.Tickets.Where(x => x.Reservation.ReservationID == newestReservation.ReservationID).ToList();
            string            UserId                    = User.Identity.GetUserId();
            AppUser           LoggedIn                  = db.Users.Find(UserId);

            if (LoggedIn.EmpType == "Customer")
            {
                newestReservation.PrimaryTravelerID = LoggedIn;
                db.SaveChanges();
            }
            else if (newestReservation.PrimaryTravelerID == null && (LoggedIn.EmpType == "Agent" || LoggedIn.EmpType == "Manager"))
            {
                return(RedirectToAction("ChoosePrimaryTraveler"));
            }


            foreach (Ticket ThisTicket in ReservationWithNewTickets)
            {
                total += ThisTicket.ActualFare + ThisTicket.EarlyDiscount + ThisTicket.ChildDiscount + ThisTicket.SeniorDiscount + ThisTicket.InternetDiscount;
                ThisTicket.DiscountedFare = ThisTicket.ActualFare + ThisTicket.EarlyDiscount + ThisTicket.ChildDiscount + ThisTicket.SeniorDiscount + ThisTicket.InternetDiscount;
                db.SaveChanges();

                vm.Email           = ThisTicket.Customer.Email;
                vm.FirstName       = ThisTicket.Customer.FirstName;
                vm.LastName        = ThisTicket.Customer.LastName;
                vm.Flightnumber    = ThisTicket.Flight.FlightNumber.Number;
                vm.SeatName        = ThisTicket.Seat.SeatName;
                vm.AdvantageNumber = ThisTicket.Customer.AdvantageNumber;
                vm.DepartDateTime  = ThisTicket.Flight.DepartDateTime;
                vm.DiscountedFare  = ThisTicket.DiscountedFare;
                vm.PreTotal       += total;

                MailModelsController c         = new MailModelsController();
                ActionResult         newresult = c.ReservationConfirmed(vm);
            }
            vm.Tickets  = ReservationWithNewTickets;
            vm.PreTotal = total;

            vm.Total = total * 1.0775m;
            return(View(vm));
        }
Пример #3
0
        public ActionResult Edit([Bind(Include = "FlightNumberID,Number,DepartTime,BaseFare,BeenDisabled")] FlightNumber flightNumber, int[] DaysChosenList)
        {
            if (ModelState.IsValid)
            {
                checkoutviewmodel vm = new checkoutviewmodel();
                FlightNumber      flightNumbertochange = db.FlightNumbers.Find(flightNumber.FlightNumberID);
                List <Day>        newdeparturedaylist  = new List <Day>();
                foreach (int Dayofweek in DaysChosenList)
                {
                    newdeparturedaylist.Add(db.Days.Find(Dayofweek));
                }
                if (flightNumbertochange.DepartureDays.ToList() != newdeparturedaylist)
                {
                    flightNumbertochange.DepartureDays = newdeparturedaylist;
                }

                if (flightNumbertochange.DepartTime != flightNumber.DepartTime)
                {
                    flightNumbertochange.DepartTime = flightNumber.DepartTime;
                }

                if (flightNumbertochange.BaseFare != flightNumber.BaseFare)
                {
                    flightNumbertochange.BaseFare = flightNumber.BaseFare;
                }
                flightNumbertochange.BeenDisabled = flightNumber.BeenDisabled;
                Boolean safe = false;
                foreach (Flight flight in db.Flights.Where(c => c.FlightNumber.Number == flightNumbertochange.Number).Where(c => c.DepartDateTime > DateTime.Now).ToList())
                {
                    foreach (Day day in flightNumbertochange.DepartureDays)
                    {
                        if (flight.DepartDateTime.Day.ToString() == day.Name)
                        {
                            safe = true;
                        }
                    }
                    DateTime iterate = new DateTime(2017, 12, 8);
                    while (iterate < new DateTime(2017, 12, 26))
                    {
                        foreach (Day day in flightNumbertochange.DepartureDays)
                        {
                            if (day.Name == iterate.ToString())
                            {
                                if (db.Flights.Where(c => c.FlightNumber.FlightNumberID == flightNumbertochange.FlightNumberID && c.DepartDateTime.Date == iterate.Date).ToList().Count == 0)
                                {
                                    Flight newflight = new Flight(flightNumbertochange.BaseFare, db);
                                    newflight.Cancelled      = false;
                                    newflight.DepartDateTime = iterate + flightNumbertochange.DepartTime;
                                    newflight.Departed       = false;
                                    newflight.FlightNumber   = flightNumbertochange;
                                    db.Flights.Add(newflight);
                                    db.SaveChanges();
                                }
                            }
                        }
                        iterate += new TimeSpan(24, 0, 0);
                    }

                    if (safe)
                    {
                        //flight time might change
                        flight.DepartDateTime += (flightNumbertochange.DepartTime - flight.DepartDateTime.TimeOfDay);
                    }
                    else
                    {
                        flight.Cancelled = true;
                        Int32         maxID                     = db.Reservations.Max(x => x.ReservationID);
                        Reservation   newestReservation         = db.Reservations.Find(maxID);
                        List <Ticket> ReservationWithNewTickets = db.Tickets.Where(x => x.Reservation.ReservationID == newestReservation.ReservationID).ToList();
                        foreach (Ticket ThisTicket in ReservationWithNewTickets)
                        {
                            vm.Email          = ThisTicket.Customer.Email;
                            vm.FirstName      = ThisTicket.Customer.FirstName;
                            vm.LastName       = ThisTicket.Customer.LastName;
                            vm.Flightnumber   = ThisTicket.Flight.FlightNumber.Number;
                            vm.DepartDateTime = ThisTicket.Flight.DepartDateTime;
                        }
                        MailModelsController c         = new MailModelsController();
                        ActionResult         newresult = c.FlightCancelled(vm);
                    }

                    if (flightNumbertochange.BeenDisabled == true)
                    {
                        flight.Cancelled = true;
                        //TODO: DELETE THE FLIGHT BUT FIRST FIND OUT WHO ALL IS ON THE FLIGHT
                    }
                    flight.ActualFare = flightNumbertochange.BaseFare;
                    //TODO: EMAIL THE PEOPLE OF THE CHANGES MY DUDES
                }

                db.Entry(flightNumbertochange).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(flightNumber));
        }