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())); }
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); }
public ActionResult ForgotPassword() { if (SessionUtility.GetLoggedUser() != null) { return(RedirectToAction("Index", "Home")); } return(View()); }
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); }
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); }
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); }
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); }
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)); }
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" }); }