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)); }
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()); }
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()); }
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; } }
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)); }
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")); }
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)); }
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 + "\""); } }
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 { } }
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 { } } }
public TravelItem Create(TravelItem item) { _items.InsertOne(item); return(item); }
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); }
public void Update(TravelItem item) => _items.ReplaceOne(i => i.Id == item.Id, item);
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(); } }
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); }