Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 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"));
 }
Exemplo n.º 4
0
        public IActionResult QView(int Id)
        {
            QueueDbModel Queue = _db.Queues.Find(Id);

            if (Queue == null)
            {
                return(RedirectToAction("index", "Home"));
            }
            return(View(Queue));
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
 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);
 }