public FlightReport(PFlightDto model) { Id = model.Id; CreatedDate = model.CreatedDate; Origin = model.Origin; Destination = model.Destination; Trip = model.Type; DOJ = model.DOJ; Status = ((StatusFlag)model.Status).ToString(); Markup = model.Markup; GrossAmount = model.GrossAmount; Commission = model.Commission; }
public FlightReport(PFlightDto model, PUserProfileDto user) { Id = model.Id; CreatedDate = model.CreatedDate; Origin = model.Origin; Destination = model.Destination; Trip = model.Type; DOJ = model.DOJ; Status = ((StatusFlag)model.Status).ToString(); Markup = model.Markup; GrossAmount = model.GrossAmount; Commission = model.Commission; Agency = user.Agency; ContactNo = user.PhoneNumber; Email = user.Email; Address = user.City + ", " + user.State; }
public async Task <ObjectDto <decimal> > GetDomesticBooking(FlightBookInput model) { ObjectDto <decimal> result = new ObjectDto <decimal>(); var UId = HttpContext.Current.User.Identity.GetUserId(); var basicAmt = model.OneWayTripBasicAmount; var amt = model.OneWayTripAmount; var markup = model.OneWayTripMarkup; var comm = model.OneWayTripCommission; var doj = model.DOJ.FirstOrDefault(); var fareType = model.FareType.FirstOrDefault(); decimal bal = 0; var segType = "O"; IFormatProvider culture = new System.Globalization.CultureInfo("fr-FR", true); using (var con = new ApplicationDbContext()) { var userObj = await con.PUserProfile.FindAsync(UId); var TraxId = 0; var totalAmt = Convert.ToDecimal(model.OneWayTripAmount + model.OneWayTripMarkup + model.RoundTripAmount + model.RoundTripMarkup); try { if (userObj.Balance > totalAmt) { userObj.Balance -= totalAmt; userObj.LastModifiedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")); con.Entry(userObj).State = EntityState.Modified; if (await con.SaveChangesAsync() > 0) { bal = userObj.Balance; } for (var i = 0; i < model.DOJ.Count(); i++) { var flight = new PFlightDto { Adult = model.AdultCount, Child = model.ChildCount, Infant = model.InfantCount, CreatedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")), LastModifiedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")), Origin = model.Origin, Destination = model.Destination, APIId = (int)APIId.Hermes, BasicAmount = Convert.ToDecimal(basicAmt), GrossAmount = Convert.ToDecimal(amt), Commission = Convert.ToDecimal(comm), Markup = Convert.ToDecimal(markup), ServiceType = (int)ServiceType.Flight_Domestic, Contact = model.customerDetails.ContactNumber, Status = (int)StatusFlag.Pending, Email = model.customerDetails.EmailId, UserId = UId, DOJ = Convert.ToDateTime(doj), FareType = fareType, Trip = model.Trip, Type = model.BookingType, }; con.PFlights.Add(flight); if (await con.SaveChangesAsync() > 0) { if (TraxId == 0) { TraxId = flight.Id; } foreach (var pax in model.paxItems) { var detail = new PFlightDetailsDto { PFlightId = flight.Id, Age = Convert.ToInt32(pax.Age), FrequentFlyerNumber = 0, Status = (int)StatusFlag.Pending, CreatedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")), LastModifiedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")), FirstName = pax.FirstName, LastName = pax.LastName, Title = pax.Title, Type = pax.PassengerType }; con.PFlightDetails.Add(detail); await con.SaveChangesAsync(); foreach (var seg in model.flightSegments.Where(s => s.SegmentType == segType)) { var segments = new PFlightSegmentsDto { PFlightDetailsId = detail.Id, CreatedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")), LastModifiedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")), AirlineCode = seg.AirlineCode, ArrivalDatetime = seg.ArrivalDatetime, ClassCode = seg.ClassCode, DepartureDateTime = seg.DepartureDateTime, Origin = seg.Origin, Destination = seg.Destination, FlightNumber = seg.FlightId }; con.PFlightSegments.Add(segments); } await con.SaveChangesAsync(); } } var it = model.Origin; model.Origin = model.Destination; model.Destination = it; basicAmt = model.RoundTripBasicAmount; amt = model.RoundTripAmount; markup = model.RoundTripMarkup; comm = model.RoundTripCommission; doj = model.DOJ.LastOrDefault(); fareType = model.FareType.LastOrDefault(); segType = "R"; } result.valid = true; var message = new Messages(); message.Message = "*Your booking is in progress. Please check after sometime."; message.Type = Toaster.SUCCESS.ToString(); result.Object = bal; result.messages.Add(message); var emailService = new EMail(); var flightEmails = Convert.ToString(ConfigurationManager.AppSettings.Get("FlightRequestEmails")); var Destination = flightEmails.Split(';')[0]; var BCC = flightEmails.Split(';')[1]; var subject = "Flight Booking Request -" + userObj.Agency + " - " + (ReferenceIdHelper.getRefId(ServiceType.Flight_Domestic) + TraxId); var body = "New request has been generated by " + userObj.Agency + " for ₹" + (model.OneWayTripAmount + model.RoundTripAmount) + "."; body += "<br/><br/><a href='" + model.Url + "'><b>View Request</b></a>"; await emailService.SendAsync(new IdentityMessage() { Body = body, Subject = subject, Destination = Destination }, "", BCC ); } else { result.valid = false; var message = new Messages(); message.Message = "*Your account balance is low"; result.Object = bal; result.messages.Add(message); } } catch (Exception e) { result.valid = false; var message = new Messages(); message.Message = e.InnerException + " " + e.Message; result.Object = bal; result.messages.Add(message); } } return(result); }
public FlightHistoryViewModel() { flightSegments = Enumerable.Empty <FlightSegmentReport>(); flightDetails = Enumerable.Empty <PFlightDetailsDto>(); flight = new PFlightDto(); }