public UserInformation Authenticate(string username, string password)
        {
            var userInformation     = new UserInformation();
            var repository          = new UserRepository();
            var user                = repository.FindBy(u => u.Username == username).FirstOrDefault();
            var userGroupRepository = new UserGroupRepository();
            var groups              = userGroupRepository.FindBy(u => u.UserID == user.UserID);

            if (user == null || !user.CheckPassword(password))
            {
                return(null);
            }
            userInformation.Username = user.Username;
            if (user.Permissions != null)
            {
                userInformation.Permissions = user.Permissions.ToDictionary(permission => permission.Operation.Name, permission => permission.Allow);
            }
            if (groups != null)
            {
                userInformation.Groups = groups.ToDictionary(usergroup => usergroup.GroupID,
                                                             usergroup => usergroup.Group.Name);
            }
            if (user.StoreUsers != null)
            {
                userInformation.Stores = user.StoreUsers.ToDictionary(store => store.StoreID, store => store.Store.Name);
            }
            if (user.AccountUsers != null)
            {
                userInformation.Accounts = user.AccountUsers.ToDictionary(account => account.AccountID,
                                                                          account => account.Account.Name);
            }
            return(userInformation);
        }
 public UserInformation Authenticate(string username, string password)
 {
     var userInformation = new UserInformation();
     var repository = new UserRepository();
     var user = repository.FindBy(u => u.Username == username).FirstOrDefault();
     var userGroupRepository = new UserGroupRepository();
     var groups = userGroupRepository.FindBy(u => u.UserID == user.UserID);
     if (user == null || !user.CheckPassword(password))
         return null;
     userInformation.Username = user.Username;
     if (user.Permissions != null)
         userInformation.Permissions = user.Permissions.ToDictionary(permission => permission.Operation.Name, permission => permission.Allow);
     if (groups != null)
         userInformation.Groups = groups.ToDictionary(usergroup => usergroup.GroupID,
                                                               usergroup => usergroup.Group.Name);
     if (user.StoreUsers != null)
         userInformation.Stores = user.StoreUsers.ToDictionary(store => store.StoreID, store => store.Store.Name);
     if (user.AccountUsers != null)
         userInformation.Accounts = user.AccountUsers.ToDictionary(account => account.AccountID,
                                                                   account => account.Account.Name);
     return userInformation;
 }