[ValidateAntiForgeryToken] //with each post request, this token is added, passed along with the request and checked when request reaches the server public async Task <IActionResult> Create(StoryTypes storyTypes) { // check on the server side whether the state in the passed storyTypes meets the definition in StoryTypes Model if (ModelState.IsValid) { _db.Add(storyTypes); await _db.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(storyTypes)); }
private bool WorkerDoWork(WorkerTypes workerType, StoryTypes storyType) { var foundWork = false; var worker = _workers.GetIdleWorker(workerType); var work = _board.FindNextWork(storyType); if (worker != null && work != null) { worker.Select(); work.Select(); foundWork = true; } return(foundWork); }
public async Task <IActionResult> Edit(int id, StoryTypes storyTypes) { if (id != storyTypes.Id) { return(NotFound()); } if (ModelState.IsValid) { _db.Update(storyTypes); // auto update all properties but will be a waste when user only change several properties but the model has hundreds await _db.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(storyTypes)); }
public Story FindNextWork(StoryTypes type) { var story = _driver.CDriver.FindElementsByCssSelector($"span.story.{type}:not(.busy)").FirstOrDefault()?.GetAttribute("id") ?? ""; return(story != "" ? new Story(story, _driver) : null); }
public List <string> TotalStories(StoryTypes type) { return(_driver.GetIds(By.CssSelector($"span.story.{type}"))); }
public List <string> AvailableStories(StoryTypes type) { return(_driver.GetIds(By.CssSelector($"span.story.{type}:not(.busy)"))); }
public string GetStoryTypeName(int storyTypeId) { StoryTypes.TryGetValue(storyTypeId, out var storyTypeName); return(storyTypeName ?? ""); }