Exemplo n.º 1
0
        public string FareDetail(JObject entities)
        {
            List <CustomFlightDetailModel> pricedItineraries = new EmptyBot().GetIteneraries();
            string alcode = entities.GetValue("FlightNumber").FirstOrDefault().ToString().Substring(0, 2);
            string fn     = entities.GetValue("FlightNumber").FirstOrDefault().ToString().Substring(2);
            var    result = (from s in pricedItineraries
                             where s.FlightNumber == fn
                             select s).FirstOrDefault();

            return("Total fare : " + result.FlightFare);
        }
Exemplo n.º 2
0
        public string GetFlightDetails(JObject entities)
        {
            List <CustomFlightDetailModel> pricedItineraries = new EmptyBot().GetIteneraries();
            string alcode = entities.GetValue("FlightNumber").FirstOrDefault().ToString().Substring(0, 2);
            string fn     = entities.GetValue("FlightNumber").FirstOrDefault().ToString().Substring(2);
            //FlightNumber
            StringBuilder Result = new StringBuilder("Showing flight details of : ");

            Result.Append(entities.GetValue("FlightNumber").FirstOrDefault().ToString());
            var result = (from s in pricedItineraries
                          where s.FlightNumber == fn
                          select s).FirstOrDefault();

            if (result != null)
            {
                //var sum = result.Duration;
                Result.Append(Environment.NewLine);
                Result.Append("From : ").

                Append(result.DepAirport).
                Append(Environment.NewLine)
                .Append("\nTo : ")
                .Append(result.ArrivalAirport)
                .Append(Environment.NewLine)
                .Append("\nArrival date : ").
                Append(result.ArrivalDate)
                .Append(Environment.NewLine)
                .Append("\nIntermediate Stops : ")
                .Append("\n" + result.InterMediateStops)
                .Append(Environment.NewLine)
                .Append("\nArrivalTime")
                .Append(result.ArrivalTime)
                .Append(Environment.NewLine)
                .Append("\nDeparture time : ")
                .Append(result.DepartureTime)
                .Append(Environment.NewLine)
                .Append("\n Duration : ")
                .Append(result.Duration + " minutes")
                //.Append("\n available seats : ")
                //.Append(z.SeatAvailable)
                .Append(Environment.NewLine)
                .Append("\n Baggage Allowance : ")
                .Append(result.Baggage)
                .Append(Environment.NewLine)
                .Append("\nTotal fare : " + result.Currency + " ")
                .Append(result.FlightFare);
            }

            return(Result.ToString());
        }
Exemplo n.º 3
0
        public Attachment Customflights(JObject entities)
        {
            List <CustomFlightDetailModel> pricedItineraries = new EmptyBot().GetIteneraries();

            if (entities.GetValue("Meridian") != null)
            {
                if (entities.GetValue("Meridian").FirstOrDefault().ToString().ToLower() == "morning")
                {
                    pricedItineraries = (from itenarary in pricedItineraries

                                         where Convert.ToInt32(itenarary.DepartureTime.Remove(2, 1)) < 1200
                                         select itenarary).Take(10).ToList();
                }
                else if (entities.GetValue("Meridian").FirstOrDefault().ToString().ToLower() == "evening")
                {
                    pricedItineraries = (from itenarary in pricedItineraries

                                         where Convert.ToInt32(itenarary.DepartureTime.Remove(2, 1)) > 1800
                                         select itenarary).Take(10).ToList();
                }
                else if (entities.GetValue("Meridian").FirstOrDefault().ToString().ToLower() == "afternoon")
                {
                    pricedItineraries = (from itenarary in pricedItineraries

                                         where Convert.ToInt32(itenarary.DepartureTime.Remove(2, 1)) > 1200 && Convert.ToInt32(itenarary.DepartureTime.Remove(2, 1)) <= 1800
                                         select itenarary).Take(10).ToList();
                }

                return(new Attachment
                {
                    ContentType = AdaptiveCard.ContentType,
                    Content = AdaptiveCard.FromJson(GiveJson.GetJson(pricedItineraries)).Card
                });
            }
            else
            {
                return(new Attachment
                {
                    ContentType = AdaptiveCard.ContentType,
                    Content = AdaptiveCard.FromJson(GiveJson.GetJson(pricedItineraries)).Card
                });
            }
        }
Exemplo n.º 4
0
        public List <CustomFlightDetailModel> AvailableFlights(JObject entities)
        {
            string Result;

            string[] AirportCodes = new string[2];
            // dynamic date1 = entities.GetValue("datetime") != null ? entities.GetValue("datetime") : "x";
            DateTime date = DateTime.Today;
            string   days = entities.GetValue("days") != null?entities.GetValue("days").FirstOrDefault().ToString() : "";

            days = days != "" ? days.Substring(0, 1) : "";
            if (entities.GetValue("datetime") != null)
            {
                foreach (var i in entities.GetValue("datetime"))
                {
                    if (i["type"].ToString() == "date")
                    {
                        date = Convert.ToDateTime(i["timex"].First.ToString().Replace("XXXX", DateTime.Now.Year.ToString()));
                    }
                    else if (i["type"].ToString() == "duration")
                    {
                        days = i["timex"].First.ToString().Substring(1, 1);
                    }
                }
            }
            else
            {
                date = DateTime.Today.AddDays(1);
            }

            date = date.Month < DateTime.Now.Month ? date.AddYears(1) : date;

            DateTime resdate = date;

            if (entities.GetValue("City") != null)
            {
                var AirportCityList = entities.GetValue("City");
                int i = 0;
                foreach (var x in AirportCityList)
                {
                    if (x.ToString().Length > 2)
                    {
                        AirportCodes[i] = ACode.GetAirPortCodeByCity(x.ToString());
                        i += 1;
                    }
                }
            }
            else
            {
                Result = "0";
            }
            meridian = entities.GetValue("Meridian") != null?entities.GetValue("Meridian").FirstOrDefault().ToString() : "";

            if (entities.GetValue("AirportCode") != null)
            {
                var AirportCodeList = entities.GetValue("AirportCode");
                int i = 0;
                foreach (var x in AirportCodeList)
                {
                    if (x.ToString().Length > 2)
                    {
                        AirportCodes[i] = x.ToString();
                        i += 1;
                    }
                }
                Result = "1";
            }

            string q = entities.GetValue("quantity") != null?entities.GetValue("quantity").FirstOrDefault().ToString() : "1";


            var myitem = new UtteranceLog();

            myitem.query          = new Query();
            myitem.query.Dest     = ACode.GetCityByAirPortCode(AirportCodes[1]);
            myitem.query.Origin   = ACode.GetCityByAirPortCode(AirportCodes[0]);
            myitem.query.Quantity = Convert.ToInt32(q ?? "1");

            IDictionary <string, object> changes = new Dictionary <string, object>();

            {
                changes.Add(EmptyBot.DeviceId + "query", myitem);
            }
            System.Threading.CancellationToken s;
            EmptyBot._myStorage.WriteAsync(changes, s);

            //----------------------------------------------------------
            //  EmployeeModel em = new EmptyBot().GiveEmployee();

            // new LoginIntent().Login(entities);
            EmployeeModel em = new EmptyBot().GiveEmployee();

            string pref = new LoginIntent().TripHistory(em.CustId, AirportCodes[0], AirportCodes[1], em.TokenID);
            //pref = em.ALLOW_PREFERRED_FL.ToLower() == "false" ? "" : pref;
            string uniqueid = Guid.NewGuid().ToString();


            // List<LexResponse.LexGenericAttachments> attachments = new List<LexResponse.LexGenericAttachments>();
            List <SBT.Request.Response.PricedItinerary> iteneraries = ApiRes(resdate, days, q ?? "1", AirportCodes[0], AirportCodes[1], uniqueid, em.TokenID, "AI");
            List <CustomFlightDetailModel> customFlights            = new List <CustomFlightDetailModel>();


            //session["iter"] = JsonConvert.SerializeObject(Result.Take(5));

            int iGroup = 0;

            foreach (var iter in iteneraries)
            {
                //var z = iter.Flights.FirstOrDefault();

                List <SBT.Request.Response.Flight> flights = iter.Flights;
                iGroup = iGroup + 1;

                int iSegment = 0;

                foreach (SBT.Request.Response.Flight z in flights)
                {
                    iSegment++;
                    customFlights.Add(new CustomFlightDetailModel
                    {
                        FlightNumber      = z.FlightNumber,
                        ArrivalAirport    = z.ArrivalAirportName,
                        DepAirport        = z.DepartureAirportName,
                        ArrivalDate       = z.ArrivalDate,// DateTime.ParseExact(l.ArrivalDate, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture).ToShortDateString(),
                        ArrivalTime       = z.ArrivalTime.Insert(2, ":"),
                        DepartureTime     = z.DepartureTime.Insert(2, ":"),
                        Currency          = iter.PaxFares.CurrencyCode,
                        FlightFare        = Convert.ToDecimal(iter.TotalLowestFare),
                        Baggage           = z.Baggage,
                        Duration          = z.Duration,
                        InterMediateStops = GetInterstops(iter),
                        AirLineCode       = z.AirlineCode,
                        DepartureDate     = z.DepartureDate,
                        OLocCode          = z.DepartureLocationCode,
                        ALocCode          = z.ArrivalLocationCode,
                        Return            = days,
                        UniqueId          = uniqueid,
                        ImageUrl          = z.AirlineLogo,
                        Group             = iGroup,
                        Direction         = z.DirectionInd,
                        AirlineName       = z.AirlineName,
                        Layover           = z.LayoverTime
                    });
                }
            }
            new PIT(customFlights.Take(20).ToList());


            return(customFlights.Take(20).ToList());
        }
Exemplo n.º 5
0
        public dynamic QueriResult(JObject entities, Query query, string DeviceId)
        {
            dynamic qresult = "";

            //   Query custom= new Query();

            if (query != null)
            {
                var check = entities.GetValue("City") != null?entities.GetValue("City").FirstOrDefault().ToString() : "";

                //|| entities.GetValue("City").FirstOrDefault().ToString()!=query.Origin
                query.Quantity = 1;
                if (query.Origin == null || (check != query.Origin && check != ""))
                {
                    if (entities.GetValue("City") != null)
                    {
                        string x = "";
                        if (entities.GetValue("fromto") != null)
                        {
                            x = entities.GetValue("fromto").FirstOrDefault().ToString();
                            x = x.Length == 2 ? "to" : "from";
                        }
                        if (x.ToString() == "from" || x.ToString() == "")
                        {
                            query.Origin = entities.GetValue("City").FirstOrDefault().ToString();
                            qresult      = Mesg(query);
                        }
                        else
                        {
                            qresult = Mesg(query);
                        }
                    }
                }
                //|| entities.GetValue("City").LastOrDefault().ToString()!=query.Dest
                if (query.Dest == null || (check != query.Dest && check != ""))
                {
                    if (entities.GetValue("City") != null)
                    {
                        dynamic x = "";
                        if (entities.GetValue("fromto") != null)
                        {
                            x = entities.GetValue("fromto").LastOrDefault().ToString();
                        }

                        if ((x == "to" || x == "") && entities.GetValue("City").LastOrDefault().ToString() != query.Origin)
                        {
                            query.Dest = entities.GetValue("City").LastOrDefault().ToString();

                            qresult = Mesg(query);
                        }
                    }
                }
                if (query.Date == null)
                {
                    if (entities.GetValue("datetime") != null)
                    {
                        dynamic date1 = entities.GetValue("datetime").FirstOrDefault();
                        query.Date = Convert.ToDateTime(date1["timex"].First.ToString().Replace("XXXX", DateTime.Now.Year.ToString()));
                        query.Date = query.Date.GetValueOrDefault().Month < DateTime.Now.Month ? query.Date.GetValueOrDefault().AddYears(1) : query.Date;
                        qresult    = Mesg(query);
                    }
                }
                if (query.Quantity == null)
                {
                    if (entities.GetValue("quantity") != null)
                    {
                        query.Quantity = int.Parse(entities.GetValue("quantity").FirstOrDefault().ToString());
                        qresult        = Mesg(query);
                    }
                }
            }
            string days = entities.GetValue("days") != null?entities.GetValue("days").FirstOrDefault().ToString() : "";

            days = days != "" ? days.Substring(0, 1) : "";
            List <CustomFlightDetailModel> customFlights = new List <CustomFlightDetailModel>();
            List <BirdResAWSBot.SBT.Request.Response.PricedItinerary> iteneraries = new List <BirdResAWSBot.SBT.Request.Response.PricedItinerary>();
            string uniqueid = Guid.NewGuid().ToString();

            if (query.Origin != null && query.Dest != null && query.Date != null && query.Quantity != null)
            {
                EmployeeModel em = new EmptyBot().GiveEmployee();

                // List<LexResponse.LexGenericAttachments> attachments = new List<LexResponse.LexGenericAttachments>();
                iteneraries = new Flight_Availability().ApiRes(query.Date.GetValueOrDefault(), days, query.Quantity.ToString(), ACode.GetAirPortCodeByCity(query.Origin), ACode.GetAirPortCodeByCity(query.Dest), uniqueid, em.TokenID, "AI");
                //    qresult = FlightsInfo.ApiRes(query.Date.GetValueOrDefault(), false, false, query.Quantity.ToString(), ACode.GetAirPortCodeByCity(query.Origin), ACode.GetAirPortCodeByCity(query.Dest));
                int iGroup = 0;
                foreach (var iter in iteneraries)
                {
                    //var z = iter.Flights.FirstOrDefault();
                    //var l = iter.Flights.LastOrDefault();

                    //customFlights.Add(new CustomFlightDetailModel
                    //{
                    //    FlightNumber = z.FlightNumber,
                    //    ArrivalAirport = z.ArrivalAirportName,
                    //    DepAirport = z.DepartureAirportName,
                    //    ArrivalDate = z.ArrivalDate,// DateTime.ParseExact(l.ArrivalDate, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture).ToShortDateString(),
                    //    ArrivalTime = z.ArrivalTime.Insert(2, ":"),
                    //    DepartureTime = z.DepartureTime.Insert(2, ":"),
                    //    Currency = "INR",
                    //    FlightFare = Convert.ToDecimal(iter.TotalLowestFare),
                    //    Baggage = z.Baggage,
                    //    Duration = z.Duration,
                    //    InterMediateStops = new Flight_Availability().GetInterstops(iter),
                    //    AirLineCode = z.AirlineCode,
                    //    DepartureDate = z.DepartureDate,
                    //    OLocCode = z.DepartureLocationCode,
                    //    ALocCode = z.ArrivalLocationCode,
                    //    Return = days,
                    //    UniqueId = uniqueid,
                    //    ImageUrl = z.AirlineLogo

                    //});

                    List <BirdResAWSBot.SBT.Request.Response.Flight> flights = iter.Flights;
                    iGroup = iGroup + 1;

                    int iSegment = 0;

                    foreach (BirdResAWSBot.SBT.Request.Response.Flight z in flights)
                    {
                        iSegment++;
                        customFlights.Add(new CustomFlightDetailModel
                        {
                            FlightNumber      = z.FlightNumber,
                            ArrivalAirport    = z.ArrivalAirportName,
                            DepAirport        = z.DepartureAirportName,
                            ArrivalDate       = z.ArrivalDate,// DateTime.ParseExact(l.ArrivalDate, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture).ToShortDateString(),
                            ArrivalTime       = z.ArrivalTime.Insert(2, ":"),
                            DepartureTime     = z.DepartureTime.Insert(2, ":"),
                            Currency          = iter.PaxFares.CurrencyCode,
                            FlightFare        = Convert.ToDecimal(iter.TotalLowestFare),
                            Baggage           = z.Baggage,
                            Duration          = z.Duration,
                            InterMediateStops = new Flight_Availability().GetInterstops(iter),
                            AirLineCode       = z.AirlineCode,
                            DepartureDate     = z.DepartureDate,
                            OLocCode          = z.DepartureLocationCode,
                            ALocCode          = z.ArrivalLocationCode,
                            Return            = days,
                            UniqueId          = uniqueid,
                            ImageUrl          = z.AirlineLogo,
                            Group             = iGroup,
                            Direction         = z.DirectionInd,
                            AirlineName       = z.AirlineName,
                            Layover           = z.LayoverTime
                        });
                    }
                }



                qresult    = customFlights.Take(20).ToList();
                query.Date = null;
            }



            new PIT(customFlights.Take(20).ToList());



            var myitem = new UtteranceLog();

            myitem.query = query;


            IDictionary <string, object> changes = new Dictionary <string, object>();

            {
                changes.Add(DeviceId + "query", myitem);
            }
            System.Threading.CancellationToken s;
            EmptyBot._myStorage.WriteAsync(changes, s);

            return(qresult);
        }
Exemplo n.º 6
0
        public string Mail(JObject entities)
        {
            List <CustomFlightDetailModel> pricedItineraries = new EmptyBot().GetIteneraries();
            string alcode = entities.GetValue("FlightNumber").FirstOrDefault().ToString().Substring(0, 2);
            string fn     = entities.GetValue("FlightNumber").FirstOrDefault().ToString().Substring(2);
            //FlightNumber
            StringBuilder Result = new StringBuilder("flight Details of flight number : ");

            Result.Append(entities.GetValue("FlightNumber").FirstOrDefault().ToString());
            var result = (from s in pricedItineraries
                          where s.FlightNumber == fn
                          select s).FirstOrDefault();

            if (result != null)
            {
                //var sum = result.Duration;
                Result.Append(Environment.NewLine)
                .Append("\nFrom : ")
                .Append(result.DepAirport)
                .Append(Environment.NewLine)
                .Append("\nTo : ")
                .Append(result.ArrivalAirport)
                .Append(Environment.NewLine)
                .Append("\nArrival date : ").
                Append(result.ArrivalDate)
                .Append(Environment.NewLine)
                .Append("\nIntermediate Stops : ")
                .Append("\n" + result.InterMediateStops)
                .Append(Environment.NewLine)
                .Append("\nArrivalTime")
                .Append(result.ArrivalTime)
                .Append(Environment.NewLine)
                .Append("\nDeparture datetime : ")
                .Append(result.DepartureTime)
                .Append(Environment.NewLine)
                .Append("\n Duration : ")
                .Append(result.Duration + " minutes")
                //.Append("\n available seats : ")
                //.Append(z.SeatAvailable)
                .Append(Environment.NewLine)
                .Append("\n Baggage Allowance : ")
                .Append(result.Baggage + " KG")
                .Append(Environment.NewLine)
                .Append("\nTotal fare : " + result.Currency + " ")
                .Append(result.FlightFare);
            }


            MailMessage message = new MailMessage();
            SmtpClient  smtp    = new SmtpClient();

            message.From = new MailAddress("*****@*****.**");
            message.To.Add(new MailAddress(entities.GetValue("email").FirstOrDefault().ToString()));
            message.Subject            = "Flight Details";
            message.IsBodyHtml         = true; //to make message body as html
            message.Body               = Result.ToString();
            smtp.Port                  = 587;
            smtp.Host                  = "smtp.gmail.com"; //for gmail hostSparrow@123
            smtp.EnableSsl             = true;
            smtp.UseDefaultCredentials = false;
            smtp.Credentials           = new NetworkCredential("*****@*****.**", "mukesh@328533");
            smtp.DeliveryMethod        = SmtpDeliveryMethod.Network;
            smtp.Send(message);



            return("Flight details mailed to you successfully");
        }
Exemplo n.º 7
0
        public string BookFlight(JObject entities, string[] codes)
        {
            string         Result = "";
            SubmitResponse submitResponse;
            string         x = "";

            try
            {
                var bot = new EmptyBot();
                List <CustomFlightDetailModel> detail = bot.GetIteneraries();
                // new LoginIntent().Login(entities);
                List <CustomFlightDetailModel> iterlst = new List <CustomFlightDetailModel>();
                EmployeeModel employee = bot.GiveEmployee();
                if (entities.GetValue("FlightNumber") == null && codes.Length >= 1)
                {
                    foreach (var c in codes)
                    {
                        string code = c.Remove(0, 3);
                        iterlst.Add((from d in detail where d.FlightNumber == code select d).FirstOrDefault());
                    }
                }
                else
                {
                    string alcode = entities.GetValue("FlightNumber").FirstOrDefault().ToString().Substring(0, 2);
                    string fn     = entities.GetValue("FlightNumber").FirstOrDefault().ToString().Substring(2);
                    iterlst = (from d in detail where d.FlightNumber == fn select d).ToList();
                }

                WebRequest request = WebRequest.Create("http://online-corporate-traveller.amadeus.com/live/V17_2_0/webapi/api/SBTMobile/SubmitFlightRequest");
                request.Method      = "POST";
                request.ContentType = "application/json";
                Stream dataStream = request.GetRequestStream();

                // getJson(date, direct, type, quantity, origin, desti);
                // JObject abc = new SearchRequest().GetJson();
                x = new BookingJsons().GetSubmitBookRequest(iterlst, employee.FirstName, employee.OffId, employee.CustId, employee.TokenID, employee.DeviceId);
                byte[] byteArray = Encoding.UTF8.GetBytes(x);
                request.ContentLength = byteArray.Length;
                dataStream.Write(byteArray, 0, byteArray.Length);
                dataStream.Close();
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                using (Stream receiveStream = Flight_Availability.GetStreamForResponse(response))
                {
                    StreamReader sr = new StreamReader(receiveStream);
                    string       responseFromServer = sr.ReadToEnd();

                    submitResponse = JsonConvert.DeserializeObject <SubmitResponse>(responseFromServer);

                    if (employee.Approval_mail == "FALSE")
                    {
                        Result = GetBookResult(employee, iterlst.FirstOrDefault(), submitResponse.TripID);
                    }
                    else
                    {
                        //SendDetail("TripId : " + submitResponse.TripID, employee.Email);
                        //return "Flight Details / Booking Details sent with tripid :"
                        Result = "Flight Details/Booking Details sent with tripid : " + submitResponse.TripID + " successfully on " + employee.Email;
                        //  await _myStorage.DeleteAsync(new string[] { (DeviceId + "employee"), (DeviceId + "pricedIteneraries") },cancellationToken);
                    }
                }
                dataStream.Close();
                response.Close();
            }
            catch (Exception ex)
            {
                // Result = ex.StackTrace + " " + x;
            }


            return(Result);
        }