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;
 }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 public FlightHistoryViewModel()
 {
     flightSegments = Enumerable.Empty <FlightSegmentReport>();
     flightDetails  = Enumerable.Empty <PFlightDetailsDto>();
     flight         = new PFlightDto();
 }