Ejemplo n.º 1
0
        /*registrate new user*/
        public static User Insert()
        {
            using (var context = new eQueueContext())
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        User user = new User {
                            PasswordHash = null, LastActivity = DateTime.Now, IsTemporary = true
                        };
                        user.Login = "******";
                        TokenManager.Insert(user);

                        context.Users.Add(user);
                        context.SaveChanges();

                        user.Login += user.Id;
                        context.SaveChanges();
                        transaction.Commit();
                        return(user);
                    }
                    catch (Exception e)
                    {
                        transaction.Rollback();
                        return(null);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public static bool SwapUsers(int userIdA, int userIdB, int queueId)
        {
            using (var context = new eQueueContext())
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        var orderA = context.QueueOrders
                                     .Where(a => a.QueueInfoId == queueId && a.UserId == userIdA)
                                     .FirstOrDefault();

                        var orderB = context.QueueOrders
                                     .Where(b => b.QueueInfoId == queueId && b.UserId == userIdB)
                                     .FirstOrDefault();

                        int tempNumber = orderA.Number;
                        orderA.Number = orderB.Number;
                        orderB.Number = tempNumber;

                        context.SaveChanges();
                        transaction.Commit();
                    }
                    catch (Exception e)
                    {
                        transaction.Rollback();
                        return(false);
                    }
                }
            }
            return(true);
        }
Ejemplo n.º 3
0
 public static void UpdatePassword(int id, string newPasswordHash)
 {
     using (var context = new eQueueContext())
     {
         User user = context.Users.Find(id);
         user.PasswordHash = newPasswordHash;
         context.SaveChanges();
     }
 }
Ejemplo n.º 4
0
 public static void UpdateTimer(int id, DateTime newTimer)
 {
     using (var context = new eQueueContext())
     {
         var queue = context.Queues.Find(id);
         queue.Timer = newTimer;
         context.SaveChanges();
     }
 }
Ejemplo n.º 5
0
 public static void UpdateName(int id, string newName)
 {
     using (var context = new eQueueContext())
     {
         var queue = context.Queues.Find(id);
         queue.Name = newName;
         context.SaveChanges();
     }
 }
Ejemplo n.º 6
0
 public static void UpdateActivity(int id)
 {
     using (var context = new eQueueContext())
     {
         User user = context.Users.Find(id);
         user.LastActivity = DateTime.Now;
         context.SaveChanges();
     }
 }
Ejemplo n.º 7
0
 public static void UpdateLogin(int id, string newLogin)
 {
     using (var context = new eQueueContext())
     {
         User user = context.Users.Find(id);
         user.Login = newLogin;
         context.SaveChanges();
     }
 }
Ejemplo n.º 8
0
 public static bool UpdateStatus(int id)
 {
     using (var context = new eQueueContext())
     {
         User user = context.Users.Find(id);
         user.IsTemporary = false;
         context.SaveChanges();
     }
     return(true);
 }
Ejemplo n.º 9
0
 public static void UpdateAccessType(int userId, int queueId, AccessType type)
 {
     using (var context = new eQueueContext())
     {
         var access = context.UserAccesses
                      .Where(a => a.QueueInfoId == queueId && a.UserId == userId)
                      .FirstOrDefault();
         access.AccessTypeName = type;
         context.SaveChanges();
     }
 }
Ejemplo n.º 10
0
 public static void Delete(int userId)
 {
     using (var context = new eQueueContext())
     {
         var token = context.Tokens
                     .Where(t => t.UserId == userId)
                     .FirstOrDefault();
         context.Tokens.Remove(token);
         context.SaveChanges();
     }
 }
Ejemplo n.º 11
0
 public static bool UpdateNumber(int userId, int queueId, int newNumber)
 {
     using (var context = new eQueueContext())
     {
         var order = context.QueueOrders
                     .Where(qo => qo.QueueInfoId == queueId && qo.UserId == userId)
                     .FirstOrDefault();
         order.Number = newNumber;
         context.SaveChanges();
     }
     return(true);
 }
Ejemplo n.º 12
0
        public static void UpdateNickname(int userId, int queueId, string newNickname)
        {
            using (var context = new eQueueContext())
            {
                var access = context.UserAccesses
                             .Where(a => a.QueueInfoId == queueId && a.UserId == userId)
                             .FirstOrDefault();

                access.Nickname = newNickname;
                context.SaveChanges();
            }
        }
Ejemplo n.º 13
0
 public static bool Delete(int id)
 {
     using (var context = new eQueueContext())
     {
         User user = context.Users.Find(id);
         if (user == null)
         {
             return(false);
         }
         context.Users.Remove(user);
         context.SaveChanges();
     }
     return(true);
 }
Ejemplo n.º 14
0
 public static bool Delete(int id)
 {
     using (var context = new eQueueContext())
     {
         QueueInfo queue = context.Queues.Find(id);
         if (queue == null)
         {
             return(false);
         }
         context.Queues.Remove(queue);
         context.SaveChanges();
     }
     return(true);
 }
Ejemplo n.º 15
0
        /*user join the queue*/
        public static void Insert(int userId)
        {
            using (var context = new eQueueContext())
            {
                UserToken token = new UserToken {
                    Token = Guid.NewGuid().ToString()
                };
                User user = context.Users.Find(userId);

                user.Tokens.Add(token);
                token.User = user;

                context.Tokens.Add(token);
                context.SaveChanges();
            }
        }
Ejemplo n.º 16
0
        public static bool MakeRegular(int id, string login, string passwordHash)
        {
            using (var context = new eQueueContext())
            {
                User user = context.Users.Find(id);
                if (!user.IsTemporary)
                {
                    return(false);
                }

                user.Login        = login;
                user.PasswordHash = passwordHash;
                user.IsTemporary  = false;

                context.SaveChanges();
                return(true);
            }
        }
Ejemplo n.º 17
0
        /*user join the queue*/
        public static void Insert(string nickname, int userId, int queueId)
        {
            using (var context = new eQueueContext())
            {
                UserAccess access = new UserAccess {
                    Nickname = nickname, AccessTypeName = AccessType.Default
                };
                User      user  = context.Users.Find(userId);
                QueueInfo queue = context.Queues.Find(queueId);

                user.UserAccesses.Add(access);
                queue.UserAccesses.Add(access);
                access.User      = user;
                access.QueueInfo = queue;

                context.UserAccesses.Add(access);
                context.SaveChanges();
            }
        }
Ejemplo n.º 18
0
        public static void Insert(int userId, int queueId)
        {
            using (var context = new eQueueContext())
            {
                QueueOrder order = new QueueOrder {
                };
                User      user   = context.Users.Find(userId);
                QueueInfo queue  = context.Queues.Find(queueId);

                user.QueueOrders.Add(order);
                queue.QueueOrders.Add(order);
                order.User      = user;
                order.QueueInfo = queue;

                order.Number = GetLastNumberInQueue(queue, context) + 1;

                context.QueueOrders.Add(order);
                context.SaveChanges();
            }
        }
Ejemplo n.º 19
0
        /*create new QueueInfo and UserAcces with info about queue's owner*/
        public static QueueInfo Insert(string queueName, string link, DateTime?timer, int ownerId)
        {
            using (var context = new eQueueContext())
            {
                var queue = new QueueInfo {
                    Name = queueName, Link = link, Timer = timer
                };
                var owner  = context.Users.Find(ownerId);
                var access = new UserAccess
                {
                    Nickname       = owner.Login,
                    AccessTypeName = AccessType.Owner,
                    User           = owner,
                    QueueInfo      = queue
                };

                context.Queues.Add(queue);
                context.UserAccesses.Add(access);
                context.SaveChanges();

                return(queue);
            }
        }
Ejemplo n.º 20
0
        public static bool Delete(int userId, int queueId)
        {
            using (var context = new eQueueContext())
            {
                var order = context.QueueOrders
                            .Where(a => a.QueueInfoId == queueId && a.UserId == userId)
                            .FirstOrDefault();
                if (order == null)
                {
                    return(false);
                }

                context.QueueOrders.Remove(order);

                foreach (var qo in context.QueueOrders.Where(qo => qo.QueueInfoId == queueId && qo.Number > order.Number))
                {
                    qo.Number--;
                }

                context.SaveChanges();
            }
            return(true);
        }
Ejemplo n.º 21
0
        public static bool GetNext(int queueId)
        {
            using (var context = new eQueueContext())
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        var order = context.QueueOrders
                                    .Where(a => a.QueueInfoId == queueId && a.Number == 1)
                                    .FirstOrDefault();
                        if (order == null)
                        {
                            return(false);
                        }

                        context.QueueOrders.Remove(order);
                        context.QueueOrders.Where(qo => qo.QueueInfoId == queueId)
                        .AsEnumerable()
                        .Select(qo =>
                        {
                            qo.Number--;
                            return(qo);
                        });
                        context.SaveChanges();
                        transaction.Commit();
                        return(true);
                    }
                    catch (Exception e)
                    {
                        transaction.Rollback();
                        return(false);
                    }
                }
            }
        }