Ejemplo n.º 1
0
        public async Task <IActionResult> Edit(int id, [Bind("TravelItemId,Name,IsDone")] TravelItem travelItem)
        {
            if (id != travelItem.TravelItemId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(travelItem);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TravelItemExists(travelItem.TravelItemId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(travelItem));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> CheckTravelItem(CheckItemDTO checkItem)
        {
            //Check if the user is authenticated
            if (User.Identity.IsAuthenticated)
            {
                var useraccount = await this._userManager.FindByNameAsync(User.Identity.Name);

                Traveler traveler = this._travelerRepository.getTraveler(useraccount);
                Travel   travel   = traveler.Travels.FirstOrDefault(e => e.Id == checkItem.TravelId);
                if (travel != null)
                {
                    TravelItem travelItem = this._travelItemRepository.getTravelItemOnTravelId(checkItem.TravelId).FirstOrDefault(e => e.Item.Id == checkItem.ItemId);
                    if (travelItem != null)
                    {
                        travelItem.Checked = checkItem.Completed;
                        this._travelItemRepository.updateItem(travelItem);
                        this._travelItemRepository.SaveChanges();
                        return(Ok());
                    }
                    return(NoContent());
                }
                return(NoContent());
            }
            return(Unauthorized());
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> RemoveTravelItem(int travelId, int itemId)
        {
            //Check if the user is authenticated
            if (User.Identity.IsAuthenticated)
            {
                var useraccount = await this._userManager.FindByNameAsync(User.Identity.Name);

                Traveler traveler = this._travelerRepository.getTraveler(useraccount);
                Item     item     = this._itemRepository.GetItemsOnUserId(traveler.Id).FirstOrDefault(e => e.Id == itemId);
                Travel   travel   = traveler.Travels.FirstOrDefault(e => e.Id == travelId);
                if (travel != null && item != null)
                {
                    TravelItem travelItem = this._travelItemRepository.getTravelItemOnTravelId(travelId).FirstOrDefault(e => e.Item.Id == itemId);
                    if (travelItem != null)
                    {
                        this._travelItemRepository.removeItem(travelItem);
                        this._travelItemRepository.SaveChanges();
                        return(Ok());
                    }
                    return(NoContent());
                }
                return(NoContent());
            }
            return(Unauthorized());
        }
Ejemplo n.º 4
0
        public async void OnNewClicked(string newname, int newAmount, string newCategory)
        {
            if (!ShowNewItemFields)
            {
                ShowNewItemFields = true;
            }
            else
            {
                if (string.IsNullOrEmpty(newname))
                {
                    Message = "A name is required, try again.";
                    return;
                }

                IsLoading = true;
                Message   = "Processing, please wait.";
                int        newAmountRef   = newAmount < 1 ? 1 : newAmount;
                string     newCategoryRef = string.IsNullOrEmpty(newCategory) ? "No Category" : newCategory;
                TravelItem newItem        = new TravelItem(newname, newAmountRef, newCategoryRef);

                //Restcall
                try
                {
                    HttpClient httpClient = new HttpClient();
                    Uri        uri        = new Uri(BASE_URL + "User/addTravelItem/" + UserName + "/" + TravelPlan.Name);

                    HttpStringContent content = new HttpStringContent(
                        JsonConvert.SerializeObject(newItem),
                        UnicodeEncoding.Utf8,
                        "application/json");

                    HttpResponseMessage httpResponseMessage = await httpClient.PostAsync(
                        uri,
                        content);

                    httpResponseMessage.EnsureSuccessStatusCode();
                    var httpResponseBody = await httpResponseMessage.Content.ReadAsStringAsync();

                    Message = httpResponseBody;

                    if (httpResponseBody.Split(" ")[0] != "Error:")
                    {
                        TravelPlan.AddTravelItem(newItem);
                        RaisePropertyChanged("ItemList");
                    }
                }
                catch (Exception ex)
                {
                    Message = ex.Message;
                }

                ShowNewItemFields = false;
                IsLoading         = false;
            }
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> Create([Bind("TravelItemId,Name,IsDone")] TravelItem travelItem)
        {
            if (ModelState.IsValid)
            {
                _context.Add(travelItem);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(travelItem));
        }
Ejemplo n.º 6
0
        public ActionResult <TravelItem> Create(CreateItemsViewModel vm)
        {
            TravelItem item = new TravelItem();

            item.CreatedDate = DateTime.Now;
            item.UpdatedDate = DateTime.Now;
            item.UserId      = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value;
            item.UserName    = User.Identity.Name;
            item.ListTypeId  = vm.ListTypeId;
            item.ItemTitle   = vm.ItemTitle;
            item.IsCompleted = false;

            if (ModelState.IsValid)
            {
                _itemSvc.Create(item);
            }
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 7
0
        public ActionResult Edit(CreateItemsViewModel vm)
        {
            TravelItem item = new TravelItem();

            item.UpdatedDate = DateTime.Now;
            item.ListTypeId  = vm.ListTypeId;
            item.ItemTitle   = vm.ItemTitle;
            item.UserId      = vm.UserId;
            item.UserName    = vm.UserName;
            item.Id          = vm.Id;
            item.IsCompleted = vm.IsCompleted;
            if (ModelState.IsValid)
            {
                if (User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value != item.UserId)
                {
                    return(Unauthorized());
                }
                _itemSvc.Update(item);
                return(RedirectToAction("Index"));
            }
            return(View(item));
        }
Ejemplo n.º 8
0
 public string PostNewTravelItem(string username, string travelplan, [FromBody] JsonElement value)
 {
     if (_userRepository.GetAllUsersShort().Where(u => u.UserName == username).Count() < 1)
     {
         return("Error: Unknown user");
     }
     else
     {
         User user = _userRepository.GetByName(username);
         if (user.Travelplans.Where(t => t.Name == travelplan).Count() < 1)
         {
             return("Error: Unknown travelplan");
         }
         TravelItem response = JsonConvert.DeserializeObject <TravelItem>(value.GetRawText());
         if (user.Travelplans.Where(t => t.Name == travelplan).First().ItemList.Where(i => i.Name == response.Name && i.Category == response.Category).Count() > 0)
         {
             return("Error: TravelItem already exists");
         }
         user.Travelplans.Where(t => t.Name == travelplan).First().AddTravelItem(response);
         _userRepository.Update(user);
         _userRepository.SaveChanges();
         return(response.Name + " succesfully added to " + username + "'s TravelPlan \"" + travelplan + "\"");
     }
 }
Ejemplo n.º 9
0
        private void GetAllTrackableDataThreadMethod()
        {
            try
            {
                using (Utils.ProgressBlock progr = new Utils.ProgressBlock(this.OwnerPlugin as Utils.BasePlugin.Plugin, "Get trackable data...", "Fetching data from geocaching.com...", _tbList.Count, 0, true))
                {
                    bool cancel = false;
                    using (var api = new Utils.API.GeocachingLiveV6(Core))
                    {
                        for (int i = 0; i < _tbList.Count; i++)
                        {
                            if (_tbList[i].ToUpper().StartsWith("TB"))
                            {
                                Core.DebugLog(Framework.Data.DebugLogLevel.Info, OwnerPlugin, null, string.Format("{0} - GetTrackablesByTBCode - ", DateTime.Now.ToString("HH:mm:ss.fff")));
                                var resp = api.Client.GetTrackablesByTBCode(api.Token, _tbList[i].ToUpper(), 0);
                                if (resp.Status.StatusCode == 0)
                                {
                                    if (resp.Trackables != null)
                                    {
                                        foreach (var t in resp.Trackables)
                                        {
                                            TrackableItem trk = GetTrackableItemFromLiveAPI(t);
                                            AddTrackableToDatabase(trk);

                                            Core.DebugLog(Framework.Data.DebugLogLevel.Info, OwnerPlugin, null, string.Format("{0} - GetTrackableTravelList - ", DateTime.Now.ToString("HH:mm:ss.fff")));
                                            var resp2 = api.Client.GetTrackableTravelList(api.Token, trk.Code);
                                            if (resp2.Status.StatusCode == 0)
                                            {
                                                if (resp2.TrackableTravels != null)
                                                {
                                                    List<TravelItem> travelList = new List<TravelItem>();
                                                    foreach (var tt in resp2.TrackableTravels)
                                                    {
                                                        if (tt.Latitude != null && tt.Longitude != null)
                                                        {
                                                            TravelItem ti = new TravelItem();
                                                            ti.TrackableCode = trk.Code;
                                                            if (tt.CacheID != null)
                                                            {
                                                                ti.GeocacheCode = Utils.Conversion.GetCacheCodeFromCacheID((int)tt.CacheID);
                                                            }
                                                            else
                                                            {
                                                                ti.GeocacheCode = "";
                                                            }
                                                            ti.DateLogged = tt.DateLogged;
                                                            ti.Lat = (double)tt.Latitude;
                                                            ti.Lon = (double)tt.Longitude;
                                                            travelList.Add(ti);
                                                        }
                                                    }
                                                    AddTravelListToDatabase(trk.Code, travelList);
                                                }

                                                //get all logs
                                                List<LogItem> logs = new List<LogItem>();
                                                int maxPageSize = 30;
                                                while (true)
                                                {
                                                    Core.DebugLog(Framework.Data.DebugLogLevel.Info, OwnerPlugin, null, string.Format("{0} - GetTrackableLogsByTBCode - ", DateTime.Now.ToString("HH:mm:ss.fff")));
                                                    var resp3 = api.Client.GetTrackableLogsByTBCode(api.Token, trk.Code, logs.Count, maxPageSize);
                                                    if (resp3.Status.StatusCode == 0)
                                                    {
                                                        if (resp3.TrackableLogs != null)
                                                        {
                                                            foreach (var tl in resp3.TrackableLogs)
                                                            {
                                                                LogItem li = new LogItem();
                                                                li.TrackableCode = trk.Code;
                                                                if (tl.CacheID != null)
                                                                {
                                                                    li.GeocacheCode = Utils.Conversion.GetCacheCodeFromCacheID((int)tl.CacheID);
                                                                }
                                                                else
                                                                {
                                                                    li.GeocacheCode = "";
                                                                }
                                                                li.LogCode = tl.Code;
                                                                li.ID = tl.ID;
                                                                li.IsArchived = tl.IsArchived;
                                                                li.LoggedBy = tl.LoggedBy==null?"":tl.LoggedBy.UserName;
                                                                li.LogGuid = tl.LogGuid.ToString();
                                                                li.LogIsEncoded = tl.LogIsEncoded;
                                                                li.LogText = tl.LogText;
                                                                li.WptLogTypeId = tl.LogType == null ? -1 : (int)tl.LogType.WptLogTypeId;
                                                                li.Url = tl.Url;
                                                                li.UTCCreateDate = tl.UTCCreateDate;
                                                                li.VisitDate = tl.VisitDate;
                                                                logs.Add(li);
                                                            }
                                                            if (resp3.TrackableLogs.Count() < maxPageSize)
                                                            {
                                                                break;
                                                            }
                                                            Thread.Sleep(2000 + PluginSettings.Instance.TimeBetweenTrackableUpdates);
                                                        }
                                                        else
                                                        {
                                                            break;
                                                        }
                                                    }
                                                    else
                                                    {
                                                        _errormessage = resp3.Status.StatusMessage;
                                                        break;
                                                    }
                                                }
                                                if (string.IsNullOrEmpty(_errormessage))
                                                {
                                                    AddLogListToDatabase(trk.Code, logs);
                                                }
                                            }
                                            else
                                            {
                                                _errormessage = resp2.Status.StatusMessage;
                                                break;
                                            }
                                            if (!progr.UpdateProgress("Get trackable data...", "Fetching data from geocaching.com...", _tbList.Count, i))
                                            {
                                                cancel = true;
                                                break;
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    _errormessage = resp.Status.StatusMessage;
                                }
                            }
                            if (cancel || !string.IsNullOrEmpty(_errormessage))
                            {
                                break;
                            }
                            if (PluginSettings.Instance.TimeBetweenTrackableUpdates > 0)
                            {
                                System.Threading.Thread.Sleep(PluginSettings.Instance.TimeBetweenTrackableUpdates);
                            }
                        }
                    }
                }
            }
            catch
            {
            }
        }
Ejemplo n.º 10
0
        private void ShowRouteOnMap(TrackableItem tb)
        {
            if (tb != null)
            {
                try
                {
                    Assembly assembly = Assembly.GetExecutingAssembly();
                    using (StreamReader textStreamReader = new StreamReader(assembly.GetManifestResourceStream("GlobalcachingApplication.Plugins.TrkGroup.trackablesmap.html")))
                    {
                        string htmlcontent = textStreamReader.ReadToEnd();
                        StringBuilder sb = new StringBuilder();
                        List<TravelItem> til = new List<TravelItem>();
                        DbDataReader dr = _dbcon.ExecuteReader(string.Format("select GeocacheCode, lat, lon, DateLogged from travels where TrackableCode='{0}' order by pos", tb.Code));
                        while (dr.Read())
                        {
                            TravelItem ti = new TravelItem();
                            ti.DateLogged = DateTime.Parse((string)dr["DateLogged"]);
                            ti.GeocacheCode = (string)dr["GeocacheCode"];
                            ti.Lat = (double)dr["lat"];
                            ti.Lon = (double)dr["lon"];
                            til.Add(ti);
                        }
                        for (int i=0; i<til.Count; i++)
                        {
                            StringBuilder bln = new StringBuilder();
                            bln.AppendFormat("{0}: {1}", Utils.LanguageSupport.Instance.GetTranslation(STR_STEP), i + 1);
                            bln.AppendFormat("<br />{0}: {1}", Utils.LanguageSupport.Instance.GetTranslation(STR_DATE), til[i].DateLogged.ToLongDateString());
                            bln.AppendFormat("<br />{0}: <a href=\"http://coord.info/{1}\" target=\"_blank\">{1}</a>", Utils.LanguageSupport.Instance.GetTranslation(STR_GEOCACHE), til[i].GeocacheCode);

                            string iconColor;
                            if (i == 0)
                            {
                                iconColor = "yellowIcon";
                            }
                            else if (i == til.Count - 1)
                            {
                                iconColor = "redIcon";
                            }
                            else
                            {
                                iconColor = "blueIcon";
                            }
                            sb.AppendFormat("createMarker('{5}-{0}', new google.maps.LatLng({1}, {2}), {3}, '{4}');", til[i].GeocacheCode, til[i].Lat.ToString().Replace(',', '.'), til[i].Lon.ToString().Replace(',', '.'), iconColor, bln.ToString().Replace("'", ""), i+1);
                        }

                        if (til.Count > 1)
                        {
                            sb.AppendLine();
                            sb.Append("var polylineA = new google.maps.Polyline({map: map, path: [");
                            for (int i = 0; i < til.Count; i++)
                            {
                                if (i > 0)
                                {
                                    sb.Append(",");
                                }
                                sb.AppendFormat("new google.maps.LatLng({0}, {1})", til[i].Lat.ToString().Replace(',', '.'), til[i].Lon.ToString().Replace(',', '.'));
                            }
                            sb.Append("], strokeColor: '#8A2BE2', strokeWeight: 4, strokeOpacity: .9});");
                        }
                        string html = htmlcontent.Replace("//patchwork", sb.ToString());
                        string fn = System.IO.Path.Combine(Core.PluginDataPath, "trackablesmap.html" );
                        File.WriteAllText(fn, html);
                        System.Diagnostics.Process.Start(fn);
                    }
                }
                catch
                {
                }
            }
        }
Ejemplo n.º 11
0
 public TravelItem Create(TravelItem item)
 {
     _items.InsertOne(item);
     return(item);
 }
Ejemplo n.º 12
0
        public async System.Threading.Tasks.Task InitializeData()
        {
            _context.Database.EnsureDeleted();
            if (_context.Database.EnsureCreated())
            {
                await CreateUsers();

                ApplicationUser user = this._context.Users.FirstOrDefault(e => e.UserName == "Clark_Kent");

                Traveler traveler = new Traveler(user);
                //Clothes
                Item pet                = new Item("Pet", traveler);
                Item Tshirt             = new Item("Nike", traveler);
                Item Chanel_jeans       = new Item("Chanel jeans", traveler);
                Item Piergiorgio_Armani = new Item("Piergiorgio Armani", traveler);
                Item IAndI              = new Item("Inigo && Inigo Jacket ", traveler);
                //Toys
                Item teddybear = new Item("Teddybear", traveler);
                Item cardgame  = new Item("Cardgame", traveler);
                Item football  = new Item("Football", traveler);
                Item bumerang  = new Item("Bumerang", traveler);
                Item dinamite  = new Item("Dinamite", traveler);

                //Shoes
                Item nike           = new Item("Nike", traveler);
                Item addis          = new Item("Addis", traveler);
                Item jordans        = new Item("Jordans", traveler);
                Item blacklifemater = new Item("Blacklifemater", traveler);

                //Wap toy
                Item Wap = new Item("Wap-CardiB-CD", traveler);

                Category toys = new Category("Toys")
                {
                    Items = new List <Item> {
                        teddybear, cardgame, football, bumerang, dinamite
                    }
                };
                Category shoes = new Category("Shoes")
                {
                    Items = new List <Item> {
                        nike, addis, jordans, blacklifemater
                    }
                };
                Category clothes = new Category("Clothes")
                {
                    Items = new List <Item> {
                        pet, Tshirt, Chanel_jeans, Piergiorgio_Armani, IAndI
                    }
                };
                Category randomitems = new Category("Randome stuff")
                {
                    Items = new List <Item> {
                        Wap
                    }
                };


                Activity    activity = new Activity("Go to Airport", DateTime.Today.AddDays(1));
                Models.Task task1    = new Models.Task("Pack my bag");
                traveler.Tasks.Add(task1);

                Travel travel = new Travel("Summer travel to Giorgio")
                {
                    Start = DateTime.Today, End = DateTime.Today.AddDays(90)
                };
                travel.Iternary.Add(activity);
                travel.Categories.Add(toys);
                travel.Categories.Add(shoes);
                travel.Categories.Add(clothes);
                travel.Categories.Add(randomitems);

                TravelItem travelItem1 = new TravelItem(travel, football, 2);
                TravelItem travelItem2 = new TravelItem(travel, bumerang, 3);
                TravelItem travelItem3 = new TravelItem(travel, dinamite, 4);

                this._context.TravelTasks.Add(new TravelTask(travel, task1));
                this._context.TravelItems.AddRange(new TravelItem[] { travelItem1, travelItem2, travelItem3 });


                traveler.Categories.Add(toys);
                traveler.Categories.Add(shoes);
                traveler.Categories.Add(clothes);
                traveler.Categories.Add(randomitems);
                traveler.Travels.Add(travel);
                this._context.Travelers.Add(traveler);

                this._context.SaveChanges();
            }
        }
 public void updateItem(TravelItem item)
 {
     this._travelItems.Update(item);
 }
 public void removeItem(TravelItem item)
 {
     this._travelItems.Remove(item);
 }
 public void addTravelItem(TravelItem item)
 {
     this._travelItems.Add(item);
 }
Ejemplo n.º 16
0
 public void Update(TravelItem item) =>
 _items.ReplaceOne(i => i.Id == item.Id, item);
Ejemplo n.º 17
0
        public void InitializeData()
        {
            _dbContext.Database.EnsureDeleted();
            if (_dbContext.Database.EnsureCreated())
            {
                #region <Rome>
                List <TravelItem> rome = new List <TravelItem>();
                TravelItem        ti1  = new TravelItem("Kousen");
                rome.Add(ti1);
                TravelItem ti2 = new TravelItem("T-Shirts");
                rome.Add(ti2);
                TravelItem ti3 = new TravelItem("Sweater");
                rome.Add(ti3);
                TravelItem ti4 = new TravelItem("Broek");
                rome.Add(ti4);
                TravelItem ti5 = new TravelItem("Loopschoenen");
                rome.Add(ti5);
                TravelItem ti6 = new TravelItem("Sneakers");
                rome.Add(ti6);

                Category c1 = new Category("Sport", "SportIcon");
                Category c2 = new Category("Kledij", "KledijIcon");
                Category c3 = new Category("Schoenen", "SchoenenIcon");

                ti1.Category = c2;
                ti2.Category = c2;
                ti3.Category = c2;
                ti4.Category = c2;
                ti5.Category = c3;
                ti6.Category = c3;

                float[] coords = { (float)3.0230, (float)51.012312 };

                TravelList tl1 = new TravelList("Lijst Rome", DateTime.Now, "Joepiee!!!!!!!", DateTime.Now, new Location("Rome", coords[0], coords[1], "https://images.unsplash.com/photo-1473496169904-658ba7c44d8a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1650&q=80"), "*****@*****.**");
                tl1.AddItems(rome);
                #endregion

                List <TravelItem> parijs = new List <TravelItem>();
                TravelItem        t1     = new TravelItem("Kousen");
                t1.Completed = true;
                parijs.Add(t1);
                TravelItem t2 = new TravelItem("T-Shirts");
                t2.Completed = true;
                parijs.Add(t2);
                TravelItem t3 = new TravelItem("Sweater");
                t3.Completed = true;
                parijs.Add(t3);
                TravelItem t4 = new TravelItem("Broek");
                t4.Completed = true;
                parijs.Add(t4);
                TravelItem t5 = new TravelItem("Loopschoenen");
                t5.Completed = true;
                parijs.Add(t5);
                TravelItem t6 = new TravelItem("Sneakers");
                t6.Completed = true;
                parijs.Add(t6);

                t1.Category = c1;
                t2.Category = c2;
                t3.Category = c3;
                t4.Category = c1;
                t5.Category = c2;
                t6.Category = c3;

                float[] coord = { (float)2.349014, (float)48.864716 };
                User    user  = new User("Dieter", "*****@*****.**", "test");

                TravelList tlp = new TravelList("Lijst Parijs", DateTime.Now, "Joepiee!!!!!!!", DateTime.Now, new Location("Parijs", coord[0], coord[1], "https://images.unsplash.com/photo-1440778303588-435521a205bc?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1650&q=80"), "*****@*****.**");
                tlp.AddItems(parijs);

                user.AddList(tlp);
                user.AddList(tl1);
                user.AddCategory(c1);
                user.AddCategory(c2);
                user.AddCategory(c3);


                _dbContext.Users.Add(user);
                _dbContext.SaveChanges();
            }
        }
Ejemplo n.º 18
0
        private void GenerateTravelDialogue()
        {
            string QUERY_TAG_6 = "<Q6>";

            Boolean isAlwaysAvailable              = true;
            double  inputTimeoutInterval           = double.MaxValue; // No reason to have a timeout here, since the dialogue is _activated_ upon receiving matching input.
            int     inputMaximumRepetitionCount    = int.MaxValue;    // No reason to have a repetition count here, for the reason just mentioned.
            int     maxSecondsWaitingForCompletion = 12;


            Dialogue travelDialogue = new Dialogue("TravelDialogue", isAlwaysAvailable);

            // The user asks a question of the form "What is a <Q>"?
            List <string> queries = new List <string>()
            {
                AgentConstants.QUERY_TAG_1, AgentConstants.QUERY_TAG_2, AgentConstants.QUERY_TAG_3, AgentConstants.QUERY_TAG_4, AgentConstants.QUERY_TAG_5, QUERY_TAG_6
            };
            FriendlyInputItem inputItemTravel  = new FriendlyInputItem("TrvlD1", queries, inputTimeoutInterval, inputMaximumRepetitionCount);
            InputAction       actionItemTravel = new InputAction(travelDialogue.Context, "TrvlD2");

            actionItemTravel.PatternList.Add(new Pattern("[get take] me " + (string)AgentConstants.QUERY_TAG_1 + " " + (string)AgentConstants.QUERY_TAG_2 + " " + (string)AgentConstants.QUERY_TAG_3 + " " + (string)AgentConstants.QUERY_TAG_4 + " " + (string)AgentConstants.QUERY_TAG_5 + " " + (string)QUERY_TAG_6));
            actionItemTravel.PatternList.Add(new Pattern("travel " + (string)AgentConstants.QUERY_TAG_1 + " " + (string)AgentConstants.QUERY_TAG_2 + " " + (string)AgentConstants.QUERY_TAG_3 + " " + (string)AgentConstants.QUERY_TAG_4 + " " + (string)AgentConstants.QUERY_TAG_5 + " " + (string)QUERY_TAG_6));
            actionItemTravel.PatternList.Add(new Pattern("[get take] me " + (string)AgentConstants.QUERY_TAG_1 + " " + (string)AgentConstants.QUERY_TAG_2 + " " + (string)AgentConstants.QUERY_TAG_3 + " " + (string)AgentConstants.QUERY_TAG_4));
            actionItemTravel.PatternList.Add(new Pattern("travel " + (string)AgentConstants.QUERY_TAG_1 + " " + (string)AgentConstants.QUERY_TAG_2 + " " + (string)AgentConstants.QUERY_TAG_3 + " " + (string)AgentConstants.QUERY_TAG_4));
            actionItemTravel.PatternList.Add(new Pattern("travel " + (string)AgentConstants.QUERY_TAG_1 + " " + (string)AgentConstants.QUERY_TAG_2));
            actionItemTravel.PatternList.Add(new Pattern("[get take] me " + (string)AgentConstants.QUERY_TAG_1 + " " + (string)AgentConstants.QUERY_TAG_2));

            inputItemTravel.InputAction = actionItemTravel;
            travelDialogue.DialogueItemList.Add(inputItemTravel);


            // The agent searches its long-term memory for (the description of) an object (tag = object) with the required name

            // If the information cannot be found in long-term memory
            TravelItem travelItem = new TravelItem("TrvlD2", queries, "TravelPartialFail1", "");

            //OutputItem itemTrvlD = new OutputItem("TrvlD2", AgentConstants.SPEECH_OUTPUT_TAG, null, false, 1);
            travelItem.OutputAction = new OutputAction(travelDialogue.Context, "TravelPlanningComplete1");
            travelItem.OutputAction.PatternList.Add(new Pattern("Serching "));
            travelItem.OutputAction.PatternList.Add(new Pattern("Checking "));
            travelDialogue.DialogueItemList.Add(travelItem);

            FriendlyInputItem inputItemTravelClarify = new FriendlyInputItem("TravelPartialFail1", new List <string> {
                AgentConstants.QUERY_TAG_1, AgentConstants.QUERY_TAG_2
            }, inputTimeoutInterval, inputMaximumRepetitionCount);
            InputAction actionItemTravelClarify = new InputAction(travelDialogue.Context, "TravelPartialFail2");

            actionItemTravelClarify.PatternList.Add(new Pattern("from " + AgentConstants.QUERY_TAG_1));
            actionItemTravelClarify.PatternList.Add(new Pattern("to " + AgentConstants.QUERY_TAG_2)); //Q2 handles destinations
            actionItemTravelClarify.PatternList.Add(new Pattern("no"));
            inputItemTravelClarify.InputAction = actionItemTravelClarify;
            travelDialogue.DialogueItemList.Add(inputItemTravelClarify);


            TravelFilterItem inputFilterItem = new TravelFilterItem("TravelPartialFail2", "TravelPartialFail1", "", "");

            inputFilterItem.OutputAction = new OutputAction(travelDialogue.Context, "TravelPlanningComplete1"); //abandon when dune
            inputFilterItem.OutputAction.PatternList.Add(new Pattern("I found a destination "));
            inputFilterItem.OutputAction.PatternList.Add(new Pattern("I would recommend the "));

            travelDialogue.DialogueItemList.Add(inputFilterItem);

            TravelPlanningComplete inputCompleteItem = new TravelPlanningComplete("TravelPlanningComplete1", "TravelComplete1", "TravelInterestComplete1", "", mapControl1);

            inputCompleteItem.OutputAction = new OutputAction(travelDialogue.Context, "TravelComplete1");
            travelDialogue.DialogueItemList.Add(inputCompleteItem);

            TravelSearchingCompleteItem waitTravelItem = new TravelSearchingCompleteItem("TravelComplete1", "", maxSecondsWaitingForCompletion, mapControl1);

            waitTravelItem.OutputAction = new OutputAction("", "");
            travelDialogue.DialogueItemList.Add(waitTravelItem);

            agent.DialogueList.Add(travelDialogue);
        }