示例#1
0
 public static void Init()
 {
     using (DbModelContainer DbContext = new DbModelContainer())
     {
         //初始化管理员用户
         var adminUser = new User();
         var users     = from m in DbContext.User where m.Name == "admin" select m;
         if (users.Count() == 0)
         {
             User user = new User()
             {
                 Id         = Guid.NewGuid().ToString(),
                 Name       = "admin",
                 Password   = Encrypt.Md5("123456"),
                 CreateTime = DateTime.Now,
                 Remarks    = "系统生成超级管理员"
             };
             DbContext.User.Add(user);
             adminUser = user;
         }
         else
         {
             adminUser = users.First();
         }
         var ids      = from m in DbContext.UserProperty where m.UserId == adminUser.Id select m.MenuId;
         var newMenus = (from m in DbContext.Menu where !ids.Contains(m.Id) select m).ToList().Select(m => new UserProperty {
             Id = Guid.NewGuid().ToString(), MenuId = m.Id, UserId = adminUser.Id, CreateTime = DateTime.Now, CreateUser = "******"
         });
         DbContext.UserProperty.AddRange(newMenus);
         DbContext.SaveChanges();
     }
 }
        /// <summary>
        /// Creates the initial user record necessary to log in as
        /// sys admin and create subsequent records.  Only here as
        /// a convenience to be called with VS immediate window.
        /// </summary>
        /// <param name="username">The username for the new user</param>
        /// <param name="password">Password for the new user</param>
        /// <param name="firstname">First name of the new user</param>
        /// <param name="lastname">Last name of the new user</param>
        private static void CreateInitialUserRecord
            (string username, string password, string firstname,
            string lastname)
        {
            using (DbModelContainer db = new DbModelContainer())
            {
                User user = new User()
                {
                    Firstname      = firstname,
                    Surname        = lastname,
                    Login          = username,
                    IsSysAdmin     = true,
                    Salt           = "salt",
                    Hash           = "hash",
                    NewPasswordDue = true
                };

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

                user.ChangePassword(password);

                user.NewPasswordDue = true;
                db.SaveChanges();
            }
        }
示例#3
0
        protected override void FetchExisting()
        {
            if (_Mode == DataEntryMode.Edit)
            {
                using (DbModelContainer db = new DbModelContainer())
                {
                    User user = db.Users.Find(_User.Id);
                    Firstname   = user.Firstname;
                    Surname     = user.Surname;
                    Login       = user.Login;
                    SysAdmin    = user.IsSysAdmin;
                    NewPassword = false;

                    ObservableCollection <Index> indices =
                        new ObservableCollection <Index>(db.Indices);

                    foreach (Index index in indices)
                    {
                        if (user.Indices.Where(i => i.Id == index.Id).Count() != 0)
                        {
                            index.IsSelected = true;
                        }
                    }

                    AvailableIndices = indices;
                }
            }
            else
            {
                using (DbModelContainer db = new DbModelContainer())
                {
                    AvailableIndices = new ObservableCollection <Index>(db.Indices);
                }
            }
        }
示例#4
0
        protected override void SaveNew()
        {
            using (DbModelContainer db = new DbModelContainer())
            {
                User user = new User()
                {
                    Firstname  = this.Firstname,
                    Surname    = this.Surname,
                    Login      = this.Login,
                    IsSysAdmin = this.SysAdmin,
                    Salt       = "salt",
                    Hash       = "hash"
                };

                db.Users.Add(user);

                db.SaveChanges();

                user.ChangePassword(TempPassword);

                user.NewPasswordDue = true;

                db.SaveChanges();

                //access rights
                foreach (Index index in AvailableIndices.Where(i => i.IsSelected))
                {
                    Index chosenIndex = db.Indices.Find(index.Id);
                    user.Indices.Add(chosenIndex);
                }

                db.SaveChanges();
            }
        }
示例#5
0
 private void Refresh()
 {
     using (DbModelContainer db = new DbModelContainer())
     {
         Users = new ObservableCollection <User>
                     (db.Users.Include(i => i.Indices));
     }
 }
示例#6
0
 public void ResetCode()
 {
     using (var DbModelContainer = new DbModelContainer())
     {
         DbModelContainer.SalleEntityJeu.Find(this.ID).Code = null;
         DbModelContainer.SaveChanges();
     }
 }
示例#7
0
        public DatabaseManager(DbModelContainer dbContext, Encryption encryption, PartyService partyService, VoterService voterService, CandidateService candidateService, StatisticService statisticService)
        {
            _dbContext = dbContext;

            Party     = partyService;
            Voter     = voterService;
            Candidate = candidateService;
            Statistic = statisticService;
        }
示例#8
0
        private bool CheckUnique()
        {
            using (DbModelContainer db = new DbModelContainer())
            {
                int currentUserId = (_User == null ? 0 : _User.Id);

                return(db.Users
                       .Where(u => u.Login == Login &&
                              u.Id != currentUserId).Count() == 0);
            }
        }
示例#9
0
        private static IEnumerable <FilesDueForHash_Result> GetNextFiles()
        {
            IEnumerable <FilesDueForHash_Result> filesToHash;

            using (DbModelContainer db = new DbModelContainer())
            {
                db.Database.CommandTimeout = 600;
                filesToHash = db.FilesDueForHash().ToList();
            }

            return(filesToHash);
        }
        public MainWindowViewModel(Action listRefresh)
        {
            _ctx = new DbModelContainer();
            var personalEFRepository = new PersonalEFRepository(_ctx);
            var postsEFRepository    = new PostsEFRepository(_ctx);

            Personal            = new LocalPersonalCollection();
            LoadPersonalCommand = new LoadPersonalCommand(personalEFRepository, Personal);
            AddEngineerCommand  = new AddPersonCommand(new PersonFactoryWPF(new AddEngineerDialogFactory(postsEFRepository)), personalEFRepository, Personal);
            AddWorkerCommand    = new AddPersonCommand(new PersonFactoryWPF(new AddWorkerDialogFactory(postsEFRepository)), personalEFRepository, Personal);
            EditPersonCommand   = new EditPersonCommand(personalEFRepository, Personal, postsEFRepository);
            LoadPersonalCommand.Execute();
        }
示例#11
0
        private static IEnumerable <TrackedFile> GetFilesToTrack()
        {
            using (DbModelContainer db = new DbModelContainer())
            {
                db.Database.CommandTimeout = 1800;

                IEnumerable <TrackedFile> filesToTrack =
                    db.TrackedFiles.Where(f => f.TrackForUpdates == true)
                    .ToList();

                return(filesToTrack);
            }
        }
示例#12
0
        public LoginViewModelTests()
        {
            var dbcontainer      = new DbModelContainer();
            var encryption       = new Encryption();
            var logmanager       = new LogManager();
            var voterService     = new VoterService(dbcontainer, encryption, logmanager);
            var statisticService = new StatisticService(dbcontainer, logmanager);
            var partyService     = new PartyService(dbcontainer, logmanager);
            var candidateService = new CandidateService(dbcontainer, logmanager);


            databaseManager       = new DatabaseManager(dbcontainer, new Data.Helpers.Encryption(), partyService, voterService, candidateService, statisticService);
            currentSessionManager = new CurrentSessionManager(new ViewManager(new IoCManager(new UnityContainer())), databaseManager, logmanager);
        }
        public static bool Authenticate(string login, string password)
        {
            using (DbModelContainer db = new DbModelContainer())
            {
                User user = db.Users
                            .Where(u => u.Login == login)
                            .FirstOrDefault();

                if (user == null)
                {
                    return(false);
                }

                if (user.Authenticate(password))
                {
                    CurrentUser = user;
                    return(true);
                }

                return(false);
            }
        }
示例#14
0
        private static void LogFileChange(TrackedFile file, long newLength, DateTime newModifiedDate)
        {
            using (DbModelContainer db = new DbModelContainer())
            {
                db.Database.CommandTimeout = 1800;

                db.TrackedFiles.Attach(file);

                file.Length   = newLength;
                file.LastSeen = newModifiedDate;

                if (file.UpdatesSeen == null || file.UpdatesSeen == 0)
                {
                    file.UpdatesSeen = 1;
                }
                else
                {
                    file.UpdatesSeen = file.UpdatesSeen + 1;
                }

                db.SaveChanges();
            }
        }
示例#15
0
        private static void SearchJobLoop()
        {
            IEnumerable <SearchJob> searchJobs;

            using (DbModelContainer db = new DbModelContainer())
            {
                searchJobs = db.SearchJobs
                             .Where(s => s.Status == SearchStatus.Paused ||
                                    s.Status == SearchStatus.Pending)
                             .ToList();
            }

            foreach (SearchJob job in searchJobs)
            {
                int threadCount = Properties.Settings.Default.SearchThreadCount;

                job.Start(threadCount);

                do
                {
                    Thread.Sleep(1000);
                } while (job.Status == SearchStatus.Running);
            }
        }
 public PostsEFRepository(DbModelContainer ctx)
 {
     _ctx = ctx;
 }
示例#17
0
 public PartyService(DbModelContainer db, LogManager logger)
 {
     _dbContext = db;
     _logger    = logger;
 }
示例#18
0
 public VoterService(DbModelContainer db, Encryption encryption, LogManager logger)
 {
     _dbContext  = db;
     _encryption = encryption;
     _logger     = logger;
 }
示例#19
0
 public CustomerService(DbModelContainer db, LogManager logger)
 {
     _dbContext = db;
     _logger    = logger;
 }
示例#20
0
 protected EntityRepository()
 {
     DbEntities = new DbModelContainer();
 }
示例#21
0
        static void Main(string[] args)
        {
            int totalProcessed = 0;
            int totalHashed    = 0;
            int totalFailed    = 0;


            IEnumerable <FilesDueForHash_Result> filesToHash = GetNextFiles();

            do
            {
                Parallel.ForEach(filesToHash, fileToHash =>
                {
                    Console.WriteLine("Processing: " + fileToHash.FullPath);

                    try
                    {
                        if (File.Exists(fileToHash.FullPath) &&
                            fileToHash.Length > 0)
                        {
                            Stream fileStream = File.OpenRead(fileToHash.FullPath);

                            IHashMaker hasher = new HashMaker();

                            string preHash = hasher.GetPreHash(fileToHash.FullPath);
                            string md5     = hasher.GetMD5(fileStream);
                            string sha1    = hasher.GetSHA1(fileStream);

                            using (DbModelContainer db = new DbModelContainer())
                            {
                                db.Database.CommandTimeout = 60;

                                TrackedFile fileToUpdate = db.TrackedFiles.Find(fileToHash.Id);
                                fileToUpdate.PreHash     = preHash;
                                fileToUpdate.MD5         = md5;
                                fileToUpdate.SHA1        = sha1;

                                db.SaveChanges();
                            }

                            Interlocked.Increment(ref totalHashed);
                        }
                    }
                    catch (Exception)
                    {
                        //mark it as failed
                        Interlocked.Increment(ref totalFailed);
                    }
                    finally
                    {
                        Interlocked.Increment(ref totalProcessed);

                        using (DbModelContainer db = new DbModelContainer())
                        {
                            db.Database.CommandTimeout = 60;
                            TrackedFile file           = db.TrackedFiles.Find(fileToHash.Id);
                            file.HashAttempted         = DateTime.Now;
                            db.SaveChanges();
                        }
                    }
                });

                filesToHash = GetNextFiles();
            } while (filesToHash.Count() > 0);
        }
示例#22
0
 public CandidateService(DbModelContainer db, LogManager logger)
 {
     _dbContext = db;
     _logger    = logger;
 }
示例#23
0
 public StatisticService(DbModelContainer db, LogManager logger)
 {
     _dbContext = db;
     _logger    = logger;
 }
示例#24
0
 public PersonalEFRepository(DbModelContainer ctx)
 {
     _ctx = ctx;
 }