Exemplo n.º 1
0
        private void Assign(int userId)
        {
            var test = (from ru in db.RecursoUsuarios
                        where !ru.Estado
                        select ru.RecursoId);

            var recursos = (from r in db.Recursos
                            where !test.Contains(r.RecursoId)
                            select r).ToList();

            var queue = (from q in db.Queues
                         where !q.Estado
                         select q)
                         .OrderBy(q=>q.FechaEntrada);

            if (queue != null)
            {
                var lista = queue.ToList();

                foreach (var r in recursos)
                {
                    for (var i = 0; i < lista.Count(); i++)
                    {
                        var usuario = lista[i];

                        if ((usuario.RecursoId == r.RecursoId //Is the resource specified
                            || usuario.RecursoId == null) //Has not specified any particular resource
                            && (!usuario.Estado) //Has not yet be assigned
                            )
                        {
                            var recursoUsuario = new RecursoUsuario()
                            {
                                UserId = usuario.UserId,
                                RecursoId = r.RecursoId,
                                FechaEntrada = DateTime.Now,
                                Estado = false
                            };

                            db.RecursoUsuarios.Add(recursoUsuario);

                            usuario.Estado = true;
                            usuario.FechaSalida = DateTime.Now;
                            db.SaveChanges();

                            if (usuario.UserId != userId)
                                sendMail(usuario.User.UserName);
                        }

                    }
                }
                db.SaveChanges();
            }
        }
Exemplo n.º 2
0
        public ActionResult Usar(int RecursoId)
        {
            alreadyQueued = isQueue();

            if (!alreadyQueued)
            {
                var recursoUsuario = new RecursoUsuario()
                {
                    UserId = GetCurrentUser().UserId,
                    RecursoId = RecursoId,
                    FechaEntrada = DateTime.Now,
                    Estado = false
                };

                db.RecursoUsuarios.Add(recursoUsuario);
                db.SaveChanges();
            }

            Broadcast();
            return RedirectToAction("Index");
        }