Example #1
0
 /// <summary>
 /// Добавить выборы с опциями
 /// </summary>
 /// <param name="name">название голосования</param>
 /// <param name="start">дата начала голосования</param>
 /// <param name="end">дата окончания голосования</param>
 /// <param name="description">описание голосования</param>
 /// <param name="candidates">список опций</param>
 /// <returns>созданное голосование в случае успеха, иначе - null</returns>
 public static Election AddElectionWithCandidates(string name, DateTime start, DateTime end, string description, List <User> candidates)
 {
     if (GetElectionByName(name) != null)
     {
         return(null);
     }
     if (candidates == null || candidates.Count == 0)
     {
         return(null);
     }
     using (var db = new ElectionsDataBase())
     {
         using (var transaction = db.Database.BeginTransaction())
         {
             try
             {
                 Election elections = new Election()
                 {
                     Name           = name,
                     DateStart      = start,
                     DateEnd        = end,
                     Description    = description,
                     Voting_type_id = 2 //Election
                 };
                 db.Elections.Add(elections);
                 db.SaveChanges();
                 foreach (var candidate in candidates)
                 {
                     db.ElectionOptions.Add(new ElectionOption()
                     {
                         Election_id = elections.Id, Option_id = candidate.Id
                     });
                     db.SaveChanges();
                 }
                 db.SaveChanges();
                 db.Blocks.Add(new Block(elections));
                 db.SaveChanges();
                 transaction.Commit();
                 return(elections);
             }
             catch (Exception)
             {
                 transaction.Rollback();
                 return(null);
             }
         }
     }
 }
Example #2
0
 /// <summary>
 /// Добавить блок
 /// </summary>
 /// <param name="block">блок</param>
 /// <returns>true - успех, false - неудача</returns>
 public static bool AddBlock(Block block)
 {
     using (var db = new ElectionsDataBase())
     {
         db.Blocks.Add(block);
         var res = db.SaveChanges();
         return(res == 1);
     }
 }
Example #3
0
 /// <summary>
 /// Удалить пользователя
 /// </summary>
 /// <param name="id">id пользователя</param>
 /// <returns>true - успех, false - неудача</returns>
 public static bool DeleteUser(int id)
 {
     using (var db = new ElectionsDataBase())
     {
         User user = db.Users.Find(id);
         if (user == null)
         {
             return(false);
         }
         db.Users.Remove(user);
         db.SaveChanges();
         return(true);
     }
 }
Example #4
0
 /// <summary>
 /// Изменить роль пользователя
 /// </summary>
 /// <param name="userId">Id пользователя</param>
 /// <param name="roleId">Id роли</param>
 /// <returns>true - успех, false - неудача</returns>
 public static bool ChangeRole(int userId, int roleId)
 {
     using (var db = new ElectionsDataBase())
     {
         var user = db.Users.Find(userId);
         var role = db.Roles.Find(roleId);
         if (user == null || role == null)
         {
             return(false);                              //проверка на существование записей
         }
         user.Role_id = roleId;
         db.SaveChanges();
         return(true);
     }
 }
Example #5
0
        /// <summary>
        /// Добавить пользователя
        /// </summary>
        /// <param name="login">логин</param>
        /// <param name="password">пароль</param>
        /// <param name="passport">паспорт</param>
        /// <param name="firstName">фамилия</param>
        /// <param name="name">имя</param>
        /// <param name="lastName">отчество</param>
        /// <param name="email"><почта/param>
        /// <param name="phone">телефон</param>
        /// <param name="bith">дата рождения</param>
        /// <returns>User в случае успеха, иначе - null</returns>
        public static User AddUser(string login, string password, string passport, string firstName,
                                   string name, string lastName, string email, string phone, DateTime bith)
        {
            User users = new User()
            {
                Login      = login,
                Password   = GetHash(password),
                Passport   = passport,
                Name       = name,
                First_name = firstName,
                Last_name  = lastName == "" ? null : lastName,
                Email      = email,
                Phone      = phone == "" ? null : phone,
                Birthday   = bith.ToUniversalTime(),
                Role_id    = 2
            };

            using (var db = new ElectionsDataBase())
            {
                db.Users.Add(users);
                try
                {
                    if (db.SaveChanges() == 1)
                    {
                        return(users);
                    }
                    else
                    {
                        return(null);
                    }
                }
                catch (System.Data.Entity.Infrastructure.DbUpdateException)
                {
                    return(null);
                }
            }
        }
Example #6
0
        /// <summary>
        /// Добавить опрос с опциями
        /// </summary>
        /// <param name="name">название голосования</param>
        /// <param name="start">дата начала голосования</param>
        /// <param name="end">дата окончания голосования</param>
        /// <param name="description">описание</param>
        /// <param name="listOptions">список опций</param>
        /// <returns>созданное голосование в случае успеха, иначе - null</returns>
        public static Election AddInterviewWithOptions(string name, DateTime start, DateTime end, string description, List <string> listOptions)
        {
            if (GetElectionByName(name) != null)
            {
                return(null);
            }
            if (listOptions == null || listOptions.Count == 0)
            {
                return(null);
            }
            using (var db = new ElectionsDataBase())
            {
                using (var transaction = db.Database.BeginTransaction())
                {
                    try
                    {
                        Election elections = new Election()
                        {
                            Name           = name,
                            DateStart      = start,
                            DateEnd        = end,
                            Description    = description,
                            Voting_type_id = 1 //Interview
                        };
                        db.Elections.Add(elections);
                        db.SaveChanges();
                        foreach (var optionName in listOptions)
                        {
                            PoolOption option = DataBase.IfExistsOptionByName(optionName);
                            if (option == null)
                            {
                                option = new PoolOption()
                                {
                                    Name = optionName
                                };
                                db.PoolOptions.Add(option);
                                db.SaveChanges();
                            }

                            db.ElectionOptions.Add(new ElectionOption()
                            {
                                Election_id = elections.Id, Option_id = option.Id
                            });
                            db.SaveChanges();
                        }
                        db.SaveChanges();
                        db.Blocks.Add(new Block(elections));

                        db.SaveChanges();

                        transaction.Commit();
                        return(elections);
                    }
                    catch (Exception)
                    {
                        transaction.Rollback();
                        return(null);
                    }
                }
            }
        }