Exemple #1
0
        private static async Task BlockItems(InventoryInputDetails itemcount, Activity replyActivity)
        {
            var addItems = await DocumentDBRepository <Product> .GetItemsAsync(d => d.PrdouctId == Convert.ToInt32(itemcount.ProductId));

            if (addItems.Count() > 0)
            {
                try
                {
                    var list = addItems.FirstOrDefault();
                    foreach (var loc in list.locationList)
                    {
                        if (itemcount.Location.ToLower() == loc.Location.ToLower())
                        {
                            loc.Committed = Convert.ToInt32(loc.Committed) + Convert.ToInt32(itemcount.newItemCount);
                            if (loc.Quantity - loc.Committed > 0)
                            {
                                var itemsList = await DocumentDBRepository <Product> .UpdateItemAsync(list.Id, list);

                                var replyCard = O365CardHelper.GetAdativeCard(addItems.FirstOrDefault(), itemcount.ActionId);
                                replyActivity.Attachments.Add(replyCard);
                            }
                            else
                            {
                                replyActivity.Text = "Items are not availbile";
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                    replyActivity.Text = e.Message.ToString();
                }
            }
        }
Exemple #2
0
        public async Task MessageReceivedAsync(IDialogContext context, IAwaitable <IMessageActivity> argument)
        {
            var message = await argument;


            if (message.Text != null && message.Text.Contains("Show Passenger"))
            {
                // Show Passenger
                var PNRToSearch = System.Text.RegularExpressions.Regex.Match(message.Text, @"\(([^)]*)\)").Groups[1].Value;

                var passengers = await DocumentDBRepository <Passenger> .GetItemsAsync(d => d.PNR == PNRToSearch);

                var reply = context.MakeMessage();

                if (passengers.Count() == 0)
                {
                    reply.Text = $"Passenger with PNR {PNRToSearch} not found in system.";
                }
                else
                {
                    var replyCard = O365CardHelper.GetO365ConnectorCard(passengers.FirstOrDefault());
                    reply.Attachments.Add(replyCard.ToAttachment());
                }
                await context.PostAsync((reply));
            }
            else
            {
                var reply = context.MakeMessage();
                reply.Attachments.Add(GetFilter());

                await context.PostAsync((reply));

                context.Wait(MessageReceivedAsync);
            }
        }
        private async Task HandleMessage(IDialogContext context, IMessageActivity message)
        {
            if (message.Text != null && message.Text.Contains("Show aircraft by Id"))
            {
                //var reply = context.MakeMessage();
                var      reply         = (Activity)message;
                Activity replyActivity = reply.CreateReply();
                var      actionId      = Guid.NewGuid().ToString();
                var      flightnumber  = System.Text.RegularExpressions.Regex.Match(message.Text, @"\(([^)]*)\)").Groups[1].Value;
                var      list          = await DocumentDBRepository <AirCraftInfo> .GetItemsAsync(d => d.AircraftId == flightnumber);

                var aircraftInfoCard = O365CardHelper.GetO365ConnectorCardResult(list.FirstOrDefault(), actionId);

                replyActivity.Attachments.Add(aircraftInfoCard.ToAttachment());
                ConnectorClient connector   = new ConnectorClient(new Uri(message.ServiceUrl));
                var             msgToUpdate = await connector.Conversations.ReplyToActivityAsync(replyActivity);

                context.ConversationData.SetValue(actionId, msgToUpdate.Id);
                privateStorage.Add(actionId, msgToUpdate.Id);
                //await context.PostAsync((replyActivity));
            }
            else
            {
                var messageText = message.Text.ToLower();
                var reply       = context.MakeMessage();

                reply.Attachments.Add(GetCardsInformation());

                await context.PostAsync((reply));

                context.Wait(MessageReceivedAsync);
            }
        }
Exemple #4
0
        private async Task HandleMessage(IDialogContext context, IMessageActivity message)
        {
            if (message.Text != null && message.Text.Contains("Show Baggage by Name"))
            {
                var reply       = context.MakeMessage();
                var PNRToSearch = System.Text.RegularExpressions.Regex.Match(message.Text, @"\(([^)]*)\)").Groups[1].Value;
                var list        = await DocumentDBRepository <Baggage> .GetItemsAsync(d => d.PNR.ToLower() == PNRToSearch.ToLower());

                var BaggagebyPNR = O365CardHelper.GetO365ConnectorCard(list.FirstOrDefault());

                reply.Attachments.Add(BaggagebyPNR.ToAttachment());
                await context.PostAsync((reply));
            }
            else
            {
                var messageText = message.Text.ToLower();
                var reply       = context.MakeMessage();
                reply.Attachments.Add(GetCardsInformation());

                await context.PostAsync((reply));

                context.Wait(MessageReceivedAsync);
            }
            context.ConversationData.RemoveValue(LastMessageIdKey);
        }
        public async Task MessageReceivedAsync(IDialogContext context, IAwaitable <IMessageActivity> argument)
        {
            var message = await argument;

            if (message.Text != null && message.Text.Contains("Show details of flight"))
            {
                var reply        = context.MakeMessage();
                var flightnumber = System.Text.RegularExpressions.Regex.Match(message.Text, @"\(([^)]*)\)").Groups[1].Value;
                var list         = await DocumentDBRepository <FlightInfo> .GetItemsAsync(d => d.FlightNumber == flightnumber);

                var flightresultCard = O365CardHelper.GetO365ConnectorCardResult(list.FirstOrDefault());

                reply.Attachments.Add(flightresultCard.ToAttachment());
                await context.PostAsync((reply));
            }
            else
            {
                var           messageText = message.Text.ToLower();
                var           reply       = context.MakeMessage();
                List <Cities> lst         = new List <Cities>();
                Cities        obj         = new Cities();
                obj.CityName = "Seattle";
                obj.CityCode = "SEA";
                lst.Add(obj);
                Cities obj1 = new Cities();
                obj1.CityName = "Newark";
                obj1.CityCode = "EWR";
                lst.Add(obj1);
                Cities obj3 = new Cities();
                obj3.CityCode = "BWI";
                obj3.CityName = "Washington, DC";
                lst.Add(obj3);
                Cities obj4 = new Cities();
                obj4.CityCode = "BSZ";
                obj4.CityName = "Boston, MA";
                lst.Add(obj4);
                Cities obj5 = new Cities();
                obj5.CityCode = "JFK";
                obj5.CityName = "New York";
                lst.Add(obj5);
                Cities obj6 = new Cities();
                obj6.CityCode = "ORD";
                obj6.CityName = "Chicago";
                lst.Add(obj6);
                var citieslist = lst;
                reply.Attachments.Add(GetCardsInformation(citieslist));

                await context.PostAsync((reply));

                context.Wait(MessageReceivedAsync);
            }
        }
Exemple #6
0
        private static async Task AddListCardAttachment(Activity replyActivity, System.Collections.Generic.IEnumerable <Baggage> baggages)
        {
            var card = O365CardHelper.GetListCardAttachment(baggages);

            try
            {
                replyActivity.Attachments.Add(card);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
        private static async Task AddListCardAttachment(Activity replyActivity, System.Collections.Generic.IEnumerable <FlightInfo> flightinfo, DateTime Journetdate)
        {
            var card = O365CardHelper.GetListofFlights(flightinfo, Journetdate);

            try
            {
                replyActivity.Attachments.Add(card);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
        private static void AddPassengersInReply(Activity replyActivity, System.Collections.Generic.IEnumerable <Passenger> passengers, string title)
        {
            var card = O365CardHelper.GetListCardAttachment(passengers, title + $" - {passengers.Count()}");

            try
            {
                replyActivity.Attachments.Add(card);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
Exemple #9
0
        private static async Task AddListCardAttachment(Activity replyActivity, System.Collections.Generic.IEnumerable <AirCraftInfo> aircraftDetails)
        {
            var card = O365CardHelper.GetListofFlights(aircraftDetails);

            try
            {
                replyActivity.Attachments.Add(card);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
        private static async Task AttachPassengerOnSpecifiedSeat(string seatNo, Activity replyActivity)
        {
            var passengers = await DocumentDBRepository <Passenger> .GetItemsAsync(d => d.Seat == seatNo);

            if (passengers.Count() == 0)
            {
                replyActivity.Text = $"Passenger with seat number {seatNo} does not exist.";
            }
            else
            {
                var replyCard = O365CardHelper.GetO365ConnectorCard(passengers.FirstOrDefault());
                replyActivity.Attachments.Add(replyCard.ToAttachment());
            }
        }
Exemple #11
0
        private static async Task AttachBaggagebyPNR(string PNR, Activity replyActivity)
        {
            var list = await DocumentDBRepository <Baggage> .GetItemsAsync(d => d.PNR.ToLower() == PNR.ToLower());

            if (list.Count() == 0)
            {
                replyActivity.Text = "The passenger with PNR " + PNR + " does not have any checked baggage.";
            }
            else
            {
                var BaggagebyPNR = O365CardHelper.GetO365ConnectorCard(list.FirstOrDefault());
                replyActivity.Attachments.Add(BaggagebyPNR.ToAttachment());
            }
        }
Exemple #12
0
        private static async Task AttachBaggageInformation(string PNR, Activity replyActivity)
        {
            var list = await DocumentDBRepository <Baggage> .GetItemsAsync(d => d.PNR == PNR);

            if (list.Count() == 0)
            {
                replyActivity.Text = "Baggage with PNR " + PNR + " not found in the system.";
            }
            else
            {
                var replyCard = O365CardHelper.GetO365ConnectorCardResult(list.FirstOrDefault());
                replyActivity.Attachments.Add(replyCard.ToAttachment());
            }
        }
Exemple #13
0
        private static async Task AttachBaggageInformationTicket(string Ticket, Activity replyActivity)
        {
            var list = await DocumentDBRepository <Baggage> .GetItemsAsync(d => d.TicketNo.ToLower() == Ticket.ToLower());

            if (list.Count() == 0)
            {
                replyActivity.Text = "The passenger with ticket " + Ticket + " does not have any checked baggage.";
            }
            else
            {
                var replyCard = O365CardHelper.GetO365ConnectorCard(list.FirstOrDefault());
                replyActivity.Attachments.Add(replyCard.ToAttachment());
            }
        }
Exemple #14
0
        private static async Task AttachBaggageInformationName(string Name, Activity replyActivity)
        {
            var actionId = Guid.NewGuid().ToString();
            var list     = await DocumentDBRepository <Baggage> .GetItemsAsync(d => d.Name.ToLower().Contains(Name.ToLower()));

            int count = list.Count();

            if (list.Count() > 1)
            {
                var ListCard = AddListCardAttachment(replyActivity, list);
            }
            else if (list.Count() == 1)
            {
                var replyCard = O365CardHelper.GetO365ConnectorCard(list.FirstOrDefault());
                replyActivity.Attachments.Add(replyCard.ToAttachment());
            }
            else
            {
                replyActivity.Text = $"Passenger with Name {Name} does not exists.";
            }
        }
Exemple #15
0
        public async static Task <ComposeExtensionResponse> HandleMessageExtensionQuery(Activity activity)
        {
            var query = activity.GetComposeExtensionQueryData();

            if (query == null || query.CommandId != "search")
            {
                // We only process the 'getRandomText' queries with this message extension
                return(null);
            }

            var title      = "";
            var titleParam = query.Parameters?.FirstOrDefault(p => p.Name == "searchText");

            if (titleParam != null)
            {
                title = titleParam.Value.ToString().ToLower();
            }

            var attachments = new List <ComposeExtensionAttachment>();

            var passengers = await DocumentDBRepository <Passenger> .GetItemsAsync(d => d != null && (d.Name.ToLower().Contains(title) || d.Seat.ToLower().Contains(title)));


            foreach (var passenger in passengers)
            {
                var card    = O365CardHelper.GetO365ConnectorCard(passenger);
                var preview = O365CardHelper.GetPreviewCard(passenger);

                attachments.Add(card
                                .ToAttachment()
                                .ToComposeExtensionAttachment(preview.ToAttachment()));
            }

            var response = new ComposeExtensionResponse(new ComposeExtensionResult("list", "result"));

            response.ComposeExtension.Attachments = attachments.ToList();

            return(response);
        }
        private static async Task MarkFreeAirCraft(AirCraftDetails aircardInfo, Activity replyActivity)
        {
            var aircraftInfo = await DocumentDBRepository <AirCraftInfo> .GetItemsAsync(d => d.FlightNumber == aircardInfo.FlightNumber && d.AircraftId == aircardInfo.AircraftId);

            if (aircraftInfo.Count() > 0)
            {
                try
                {
                    var list = aircraftInfo.FirstOrDefault();

                    list.Status = Status.Available;
                    var aircraftDetails = await DocumentDBRepository <AirCraftInfo> .UpdateItemAsync(list.Id, list);

                    var replyCard = O365CardHelper.GetO365ConnectorCardResult(aircraftInfo.FirstOrDefault(), aircardInfo.ActionId);
                    replyActivity.Attachments.Add(replyCard.ToAttachment());
                    //replyActivity.Text = $"Aircraft {aircardInfo.AircraftId} is available";
                }
                catch (Exception e)
                {
                    replyActivity.Text = e.Message.ToString();
                }
            }
        }
Exemple #17
0
        private async Task HandleMessage(IDialogContext context, IMessageActivity message)
        {
            if (message.Text != null && message.Text.Contains("Show details of product"))
            {
                var      reply         = (Activity)message;
                Activity replyActivity = reply.CreateReply();
                var      actionId      = Guid.NewGuid().ToString();
                var      productid     = System.Text.RegularExpressions.Regex.Match(message.Text, @"\(([^)]*)\)").Groups[1].Value;
                var      list          = await DocumentDBRepository <Product> .GetItemsAsync(d => d.PrdouctId == Convert.ToInt32(productid));

                var productResultCard = O365CardHelper.GetAdativeCard(list.FirstOrDefault(), actionId);
                replyActivity.Attachments.Add(productResultCard);
                try
                {
                    ConnectorClient connector   = new ConnectorClient(new Uri(message.ServiceUrl));
                    var             msgToUpdate = await connector.Conversations.ReplyToActivityAsync(replyActivity);

                    context.ConversationData.SetValue(actionId, msgToUpdate.Id);
                    privateStorage.Add(actionId, msgToUpdate.Id);
                }
                catch (Exception e)
                {
                    await context.PostAsync((replyActivity));
                }
            }
            else if (message.Value != null)
            {
                var activity = (Activity)message;
                InventoryInputDetails itemCount = Newtonsoft.Json.JsonConvert.DeserializeObject <InventoryInputDetails>(activity.Value.ToString());

                var      connector     = new ConnectorClient(new Uri(activity.ServiceUrl));
                Activity replyActivity = activity.CreateReply();
                switch (itemCount.Type)
                {
                case Constants.newInventoryCount:
                    await AddItems(itemCount, replyActivity);


                    break;

                case Constants.BlockInventory:
                    await BlockItems(itemCount, replyActivity);

                    break;

                case Constants.RetireInventory:
                    await RetireItems(itemCount, replyActivity);

                    break;

                case Constants.RequestNewStock:
                    await AttachNewStock(replyActivity);

                    await connector.Conversations.ReplyToActivityAsync(replyActivity);

                    break;

                default:
                    break;
                }
                if (itemCount.Type != Constants.RequestNewStock)
                {
                    var lastMessageId = context.ConversationData.GetValueOrDefault <string>(itemCount.ActionId);
                    if (lastMessageId == null && privateStorage.ContainsKey(itemCount.ActionId))
                    {
                        lastMessageId = privateStorage[itemCount.ActionId];
                    }
                    if (!string.IsNullOrEmpty(lastMessageId))
                    {
                        // Update existing item.
                        await connector.Conversations.UpdateActivityAsync(replyActivity.Conversation.Id, lastMessageId, replyActivity);

                        context.ConversationData.RemoveValue(itemCount.ActionId);
                    }
                    else
                    {
                        await connector.Conversations.SendToConversationAsync(replyActivity);
                    }
                }
            }
            else
            {
                var             messageText = message.Text.ToLower();
                var             reply       = context.MakeMessage();
                List <Industry> lst         = new List <Industry>();
                Industry        obj         = new Industry();
                obj.IndsutryCode = "air";
                obj.IndustryName = "Airlines";
                lst.Add(obj);
                Industry obj1 = new Industry();
                obj1.IndsutryCode = "ret";
                obj1.IndustryName = "Retail";
                lst.Add(obj1);
                Industry obj2 = new Industry();
                obj2.IndsutryCode = "mft";
                obj2.IndustryName = "Manufacturing";
                lst.Add(obj2);
                var industryNames = lst;
                reply.Attachments.Add(GetCardsInformation(industryNames));

                await context.PostAsync((reply));

                context.Wait(MessageReceivedAsync);
            }
        }