Exemplo n.º 1
0
        public ActionResult Index()
        {
            var loggedUser = SessionUtility.GetLoggedUser();

            if (loggedUser == null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            var ticketList = this.TicketService.FindByAccount(loggedUser.ID);
            var model      = new List <TicketHistoryModel>();

            foreach (var ticket in ticketList)
            {
                var departFlight      = this.FlightService.FindByTicket(ticket.ID).ToList();
                var returnFlight      = this.FlightService.FindByTicket(ticket.ID, true).ToList();
                var passengers        = this.PassengerTicketService.FindByTicket(ticket.ID).ToList();
                var firstTicketFlight = this.TicketFlightService.FindByTicket(ticket.ID).First();

                model.Add(new TicketHistoryModel
                {
                    Ticket           = ticket,
                    From             = this.AirportService.Find(departFlight.First().Departure.ID),
                    To               = this.AirportService.Find(departFlight.Last().Arrival.ID),
                    SeatClass        = this.SeatMapService.FindBySeatCode(firstTicketFlight.SeatCode.Split(',').First(), firstTicketFlight.Flight.PlaneID.Value),
                    DepartFlight     = departFlight,
                    ReturnFlight     = returnFlight,
                    Passengers       = passengers,
                    TicketFlightList = this.TicketFlightService.FindByTicket(ticket.ID).ToList()
                });
            }

            return(View(model.OrderByDescending(m => m.Ticket.ID).ToList()));
        }
Exemplo n.º 2
0
        public JsonResult GetInformation()
        {
            var result = new JsonResult {
                ContentType = "text"
            };
            var loggedUser = SessionUtility.GetLoggedUser();

            if (loggedUser != null)
            {
                var currentUser = JsonConvert.SerializeObject(new {
                    loggedUser.LastName,
                    loggedUser.FirstName,
                    loggedUser.Email,
                    loggedUser.Address,
                    loggedUser.IDCardOrPassport,
                    loggedUser.Phone,
                    loggedUser.PlaceIssue,
                    Gender   = loggedUser.Gender != null? loggedUser.Gender.Value?"1":"0":"",
                    Birthday = loggedUser.Birthday != null? loggedUser.Birthday.Value.ToString("dd/MM/yyyy"): "",
                    Expire   = loggedUser.DateIssueOrExpiry != null? loggedUser.DateIssueOrExpiry.Value.ToString("dd/MM/yyyy"):""
                });

                result.Data = new { msg = "success", info = currentUser };
            }

            return(result);
        }
Exemplo n.º 3
0
        public ActionResult ForgotPassword()
        {
            if (SessionUtility.GetLoggedUser() != null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            return(View());
        }
Exemplo n.º 4
0
        public JsonResult Update(FormCollection collection)
        {
            var result = new JsonResult {
                ContentType = "text"
            };
            var loggedUser = this.AccountService.Find(SessionUtility.GetLoggedUser().ID);

            foreach (var key in collection.AllKeys)
            {
                switch (key)
                {
                case "FirstName":
                    loggedUser.FirstName = collection.Get("FirstName"); break;

                case "LastName":
                    loggedUser.LastName = collection.Get("LastName"); break;

                case "Address":
                    loggedUser.Address = collection.Get("Address"); break;

                case "Phone":
                    loggedUser.Phone = collection.Get("Phone"); break;

                case "Gender":
                    loggedUser.Gender = collection.Get("Gender").Equals("1") ? true : false; break;

                case "Birthday":
                    loggedUser.Birthday = DateTime.ParseExact(collection.Get("Birthday"), "dd/MM/yyyy", CultureInfo.InvariantCulture); break;

                case "IDCardOrPassport":
                    loggedUser.IDCardOrPassport = collection.Get("IDCardOrPassport"); break;

                case "Nationality":
                case "City":
                    loggedUser.PlaceIssue = string.Concat(collection.Get("Nationality"), string.IsNullOrEmpty(collection.Get("City")) ? "" : ", " + collection.Get("City"));
                    break;

                case "DateIssueOrExpiry":
                    if (string.IsNullOrEmpty(collection.Get("DateIssueOrExpiry")))
                    {
                        loggedUser.DateIssueOrExpiry = null;
                    }
                    else
                    {
                        loggedUser.DateIssueOrExpiry = DateTime.ParseExact(collection.Get("DateIssueOrExpiry"), "dd/MM/yyyy", CultureInfo.InvariantCulture);
                    }
                    break;
                }
            }

            this.AccountService.Update(loggedUser);
            SessionUtility.SetAuthenticationToken(loggedUser, 60);

            return(result);
        }
Exemplo n.º 5
0
        public ActionResult MyProfile()
        {
            var loggedUser = SessionUtility.GetLoggedUser();

            if (loggedUser == null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            return(View(loggedUser));
        }
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            var authorized = true;

            if (SessionUtility.IsSessionAlive()) //Only check authorize with user logged
            {
                if (string.IsNullOrEmpty(this.Roles) == false)
                {
                    var roles            = this.Roles.Split(' ');
                    var currentUserRoles = SessionUtility.GetLoggedUser().AccountType.Roles;
                    var rolesList        = currentUserRoles.Split(' ');

                    authorized = roles.Intersect(rolesList).Count() > 0;
                }
            }

            return(authorized);
        }
Exemplo n.º 7
0
        public JsonResult ChangePhoto()
        {
            var result = new JsonResult {
                ContentType = "text"
            };
            var loggedUser = this.AccountService.Find(SessionUtility.GetLoggedUser().ID);
            var file       = Request.Files["file"];
            var fileName   = loggedUser.ID.ToString() + "." + file.FileName.Split('.').Last();
            var path       = CommonMethods.ServerMapPath("Content/images/avatar/" + fileName);
            var avatarPath = "/Content/images/avatar/" + fileName;

            file.SaveAs(path);
            result.Data = new { path = avatarPath, type = "success" };

            //Update user
            loggedUser.Photo = avatarPath;
            this.AccountService.Update(loggedUser);
            SessionUtility.SetAuthenticationToken(loggedUser, 60);

            return(result);
        }
Exemplo n.º 8
0
        public JsonResult ChangePassword(FormCollection collection)
        {
            var result = new JsonResult {
                ContentType = "text"
            };
            var loggedUser = this.AccountService.Find(SessionUtility.GetLoggedUser().ID);

            if (EncryptionUtility.BcryptCheckPassword(collection.Get("CurrentPassword"), loggedUser.Password))
            {
                loggedUser.Password = EncryptionUtility.BcryptHashPassword(collection.Get("NewPassword"));
                this.AccountService.Update(loggedUser);
                SessionUtility.SetAuthenticationToken(loggedUser, 60);

                result.Data = new { type = "success" };
            }
            else
            {
                result.Data = new { type = "error" }
            };

            return(result);
        }
Exemplo n.º 9
0
        public ActionResult BookingSuccess()
        {
            var loggedUser      = SessionUtility.GetLoggedUser();
            var booking         = SessionUtility.GetBookingSession();
            var passengerList   = SessionUtility.GetPassengerSession();
            var seatCodeSuccess = new List <string>();

            if (booking == null || passengerList == null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            var percent     = booking.PassengerType.Where(type => type.Name.Equals(Constant.CONST_DB_NAME_INFANT)).Select(type => type.Discount.Value).FirstOrDefault();
            var priceInfant = Math.Round(booking.Price - (booking.Price / 100) * percent, 2);
            var percent2    = booking.PassengerType.Where(type => type.Name.Equals(Constant.CONST_DB_NAME_CHILD)).Select(type => type.Discount.Value).FirstOrDefault();
            var priceChild  = Math.Round(booking.Price - (booking.Price / 100) * percent2, 2);
            var totalPrice  = (booking.Price * booking.Adult) + (booking.Child > 0 ? priceChild * booking.Child : 0) + (booking.Infant > 0 ? priceInfant * booking.Infant : 0);

            //Save Ticket
            var ticket = new TicketModel
            {
                AccountID  = loggedUser.ID,
                Price      = totalPrice,
                CreateDate = DateTime.Now,
                PaymentID  = booking.PaymentID,
                Status     = Constant.CONST_DB_TICKET_STATUS_SUCCESS
            };

            var ticketId = this.TicketService.Insert(ticket);

            //Save Passenger Ticket
            foreach (var passenger in passengerList)
            {
                passenger.TicketID = ticketId;
                this.PassengerTicketService.Insert(passenger);
            }

            //Save Ticket Flight
            var order = 1;

            foreach (var flight in booking.DepartFlight)
            {
                var seatCode = this.SeatMapService.GenerateSeatCodeTicket(flight.PlaneID.Value, booking.SeatClass.ID
                                                                          , flight.ID, booking.Adult + booking.Child);

                if (order == 1)
                {
                    seatCodeSuccess = seatCode;
                }

                var ticketFlight = new TicketFlightModel
                {
                    TicketID  = ticketId,
                    FlightID  = flight.ID,
                    SeatCode  = string.Join(",", seatCode),
                    RoundTrip = false,
                    Order     = order++
                };

                this.TicketFlightService.Insert(ticketFlight);
            }

            //Return flight
            if (booking.ReturnFlight.Count() != 0)
            {
                order = 1;
                foreach (var flight in booking.ReturnFlight)
                {
                    var seatCode = this.SeatMapService.GenerateSeatCodeTicket(flight.PlaneID.Value, booking.SeatClass.ID
                                                                              , flight.ID, booking.Adult + booking.Child);
                    var ticketFlight = new TicketFlightModel
                    {
                        TicketID  = ticketId,
                        FlightID  = flight.ID,
                        SeatCode  = string.Join(",", seatCode),
                        RoundTrip = true,
                        Order     = order++
                    };

                    this.TicketFlightService.Insert(ticketFlight);
                }
            }

            SessionUtility.RemoveBookingSession();
            SessionUtility.RemovePassengerSession();

            var model = new BookingSuccessModel
            {
                TicketId   = ticketId,
                PaymentId  = ticket.PaymentID.Split('-')[1],
                Customer   = loggedUser.FirstName + " " + loggedUser.LastName,
                DepartDate = booking.DepartFlight.First().DepartureDate.Value,
                Flight     = booking.Departure.City + " to " + booking.Arrival.City
                             + (booking.ReturnFlight.Count() > 0 ? " (Round trip)" : string.Empty),
                Passenger = booking.Adult + " Adult, " + booking.Child + " Child, " + booking.Infant + " Infant",
                SeatCode  = string.Join(", ", seatCodeSuccess),
                Price     = totalPrice
            };

            var baseUrl     = Request.Url.Scheme + "://" + Request.Url.Authority + Request.ApplicationPath.TrimEnd('/') + "/";
            var currentUser = this.AccountService.Find(loggedUser.ID);

            EmailSender.SendMailBookingSuccess(currentUser.Email, baseUrl + "Ticket", model.PaymentId,
                                               model.DepartDate.ToString("dd/MM/yyyy hh:mm tt"), model.Flight, model.Passenger, model.SeatCode, model.Price.ToString(), ticketId);
            SessionUtility.SetAuthenticationToken(currentUser, 60);

            return(View(model));
        }
Exemplo n.º 10
0
        public JsonResult SavePassenger(string json)
        {
            var passengerJsonObject = JsonConvert.DeserializeObject <JObject>(json);
            var passengerList       = passengerJsonObject.Properties().Select(p => p.Value).ToList();
            var modelList           = new List <PassengerTicketModel>();
            var itsYou = true;

            foreach (var passenger in passengerList)
            {
                var passport      = GetValueFromJson(passenger, "IDCardOrPassport");
                var passengerType = GetValueFromJson(passenger, "id");

                if (passengerType.Equals("UpdateAccount"))
                {
                    continue;
                }

                var passengerModel = new PassengerTicketModel
                {
                    FirstName = GetValueFromJson(passenger, "FirstName"),
                    LastName  = GetValueFromJson(passenger, "LastName"),
                    Gender    = !GetValueFromJson(passenger, "Gender").Equals("0"),
                    Birthday  = DateTime.ParseExact(GetValueFromJson(passenger, "Birthday"), "dd/MM/yyyy", CultureInfo.InvariantCulture)
                };

                if (!string.IsNullOrEmpty(passport))
                {
                    passengerModel.IDCardOrPassport  = passport;
                    passengerModel.DateIssueOrExpiry = DateTime.ParseExact(GetValueFromJson(passenger, "DateIssueOrExpiry"), "dd/MM/yyyy", CultureInfo.InvariantCulture);
                    passengerModel.PlaceIssue        = string.Concat(GetValueFromJson(passenger, "Nationality"), string.IsNullOrEmpty(GetValueFromJson(passenger, "City"))?"": ", " + GetValueFromJson(passenger, "City"));
                }

                if (passengerType.Contains("Adult"))
                {
                    passengerModel.PassengerTypeID = this.PassengerTypeService.FindByName(Constant.CONST_DB_NAME_ADULT).ID;
                }
                else if (passengerType.Contains("Child"))
                {
                    passengerModel.PassengerTypeID = this.PassengerTypeService.FindByName(Constant.CONST_DB_NAME_CHILD).ID;
                }
                else if (passengerType.Contains("Infant"))
                {
                    passengerModel.PassengerTypeID = this.PassengerTypeService.FindByName(Constant.CONST_DB_NAME_INFANT).ID;
                }

                if (passengerType.Equals("Adult1")) //Check if not have account is a passenger
                {
                    itsYou = false;
                }

                modelList.Add(passengerModel);
            }

            if (itsYou)
            {
                var loggedUser = SessionUtility.GetLoggedUser();
                modelList.Add(new PassengerTicketModel()
                {
                    FirstName         = loggedUser.FirstName,
                    LastName          = loggedUser.LastName,
                    Gender            = loggedUser.Gender,
                    Birthday          = loggedUser.Birthday,
                    IDCardOrPassport  = loggedUser.IDCardOrPassport,
                    DateIssueOrExpiry = loggedUser.DateIssueOrExpiry,
                    PlaceIssue        = loggedUser.PlaceIssue,
                    PassengerTypeID   = this.PassengerTypeService.FindByName(Constant.CONST_DB_NAME_ADULT).ID
                });;
            }

            SessionUtility.SetPassengerSession(modelList);

            return(new JsonResult {
                ContentType = "text"
            });
        }