public async Task <IActionResult> CreateQ(CreateQViewModel model) { if (ModelState.IsValid) { QueueDbModel Queue = new QueueDbModel { Name = model.Name, Priority = model.Priority, About = model.About, Id = model.Id, TeacherName = model.TeacherName, OuthorName = User.Identity.Name, UsersName = new List <string>(), UsersPriority = new List <int>(), }; await _db.Queues.AddAsync(Queue); _userManager.FindByNameAsync(User.Identity.Name).Result.QueuesAsOuthor.Add(Queue.Id); _userManager.FindByNameAsync(model.TeacherName).Result.QueuesAsTeacher.Add(Queue.Id); await _db.SaveChangesAsync(); return(RedirectToAction("QView", "Queue", new { Queue.Id })); } return(View(model)); }
private bool AddToQueue(int Id, int Priority, string Name) { Compare compare; QueueDbModel Queue = _db.Queues.Find(Id); compare = InitializateCompare(Queue.Priority); if (User.Identity.IsAuthenticated && !Queue.UsersName.Contains(Name)) { int i = Queue.UsersPriority.Count - 1; Queue.UsersName.Add(Name); Queue.UsersPriority.Add(Priority); while (i >= 0 && !compare(Queue.UsersPriority[i], Priority)) { Queue.UsersName[i + 1] = Queue.UsersName[i]; Queue.UsersPriority[i + 1] = Queue.UsersPriority[i]; --i; } Queue.UsersName[i + 1] = Name; Queue.UsersPriority[i + 1] = Priority; _userManager.FindByNameAsync(Name).Result.QueuesAsMember.Add(Id); _db.SaveChanges(); return(true); } return(false); }
public IActionResult AjaxShowQueueInfo(int Id) { if (Request.Headers["X-Requested-With"] == "XMLHttpRequest") { QueueDbModel Queue = _db.Queues.Find(Id); return(PartialView(Queue)); } return(RedirectToAction("Index", "Home")); }
public IActionResult QView(int Id) { QueueDbModel Queue = _db.Queues.Find(Id); if (Queue == null) { return(RedirectToAction("index", "Home")); } return(View(Queue)); }
public bool AjaxDeleteFromQueue(int Id, string Name) { QueueDbModel Queue = _db.Queues.Find(Id); if (Request.Headers["X-Requested-With"] == "XMLHttpRequest" && Queue.UsersName.Contains(Name)) { _userManager.FindByNameAsync(User.Identity.Name).Result.QueuesAsMember.Remove(Queue.Id); Queue.UsersPriority.RemoveAt(Queue.UsersName.FindIndex(U => U == Name)); Queue.UsersName.Remove(Name); _db.SaveChanges(); return(true); } return(false); }
public string Index(int Id) { QueueDbModel Queue = _db.Queues.Find(Id); string content = ""; content += "<ul>"; content += "<li>Teacher - " + Queue.TeacherName + "</li>" + "<li>Outhor - " + Queue.OuthorName + "</li>"; foreach (string U in Queue.UsersName) { content += "<li>" + U + "</li>"; } content += "</ul>"; return(content); }
public bool AjaxChangePriority(int Id, string Name, int Priority) { if (Request.Headers["X-Requested-With"] == "XMLHttpRequest") { QueueDbModel Queue = _db.Queues.Find(Id); int index = Queue.UsersName.FindIndex(U => U == Name); if (Queue.UsersPriority[index] == Priority) { return(false); } AjaxDeleteFromQueue(Id, Name); AddToQueue(Id, Priority, Name); _db.SaveChanges(); return(true); } return(false); }