コード例 #1
0
ファイル: Users.cs プロジェクト: guozanhua/phmi
 public void UpdateUser(User user, Action<UpdateUserResult> callback)
 {
     _usersRunTarget.UpdateUser(_identity, user, callback);
 }
コード例 #2
0
ファイル: Service.cs プロジェクト: guozanhua/phmi
 public InsertUserResult InsertUser(Identity identity, User user)
 {
     if (NotValid())
         return InsertUserResult.Fail;
     return _project.UsersRunner.InsertUser(identity, user);
 }
コード例 #3
0
ファイル: Users.cs プロジェクト: guozanhua/phmi
 public void LogOn(string name, string password, Action<bool> callback)
 {
     var p = PasswordConverter.ConvertBack(password);
     _usersRunTarget.LogOn(name, p, user =>
         {
             if (user != null)
             {
                 Current = user;
                 _identity = new Identity(user.Id, user.Name, p);
             }
             callback.Invoke(user != null);
         });
 }
コード例 #4
0
ファイル: SetPasswordDialog.cs プロジェクト: guozanhua/phmi
 public SetPasswordDialog(IUsers users, User user)
 {
     _users = users;
     _user = user;
 }
コード例 #5
0
ファイル: Service.cs プロジェクト: guozanhua/phmi
 public UpdateUserResult UpdateUser(Identity identity, User user)
 {
     if (NotValid())
         return UpdateUserResult.Fail;
     return _project.UsersRunner.UpdateUser(identity, user);
 }
コード例 #6
0
ファイル: UsersRunner.cs プロジェクト: guozanhua/phmi
 public InsertUserResult InsertUser(Identity identity, User user)
 {
     if (!IsUserEditor(identity))
         return InsertUserResult.Fail;
     using (var connection = _connectionFactory.Create())
     {
         return _repository.InsertUser(connection, user);
     }
 }
コード例 #7
0
ファイル: UsersRunTargetTests.cs プロジェクト: guozanhua/phmi
 protected override void EstablishContext()
 {
     base.EstablishContext();
     Service = new Mock<IService>();
     User = new User();
     Service.Setup(s => s.LogOn(Name, Password)).Returns(User);
 }
コード例 #8
0
ファイル: ServiceTests.cs プロジェクト: guozanhua/phmi
 protected override void EstablishContext()
 {
     base.EstablishContext();
     Name = "Name";
     Password = "******";
     User = new User();
     UsersRunner.Setup(r => r.LogOn(Name, Password)).Returns(User);
 }
コード例 #9
0
ファイル: UsersRepository.cs プロジェクト: guozanhua/phmi
 public void Insert(NpgsqlConnection connection, User[] users, string[] passwords)
 {
     var columns = new[]
         {
             DbStr.Id,
             DbStr.Name,
             DbStr.Description,
             DbStr.Photo,
             DbStr.Password,
             DbStr.Enabled,
             DbStr.CanChange,
             DbStr.Privilege
         };
     var values = users.Select((u, i) => new object[]
         {
             u.Id,
             u.Name,
             u.Description,
             u.Photo,
             passwords[i],
             u.Enabled,
             u.CanChange,
             u.Privilege
         }).ToArray();
     _npgHelper.ExecuteNonQuery(connection, _npgQueryHelper.Insert(DbStr.Users, columns, values));
 }
コード例 #10
0
ファイル: UsersRunTarget.cs プロジェクト: guozanhua/phmi
 public void UpdateUser(Identity identity, User user, Action<UpdateUserResult> callback)
 {
     _queue.Enqueue(service => callback(service.UpdateUser(identity, user)));
 }
コード例 #11
0
ファイル: EditUserDialog.cs プロジェクト: guozanhua/phmi
 public EditUserDialog(IUsers users, User user)
 {
     _users = users;
     _user = new User();
     _user.UpdateFrom(user);
 }
コード例 #12
0
ファイル: UsersRunTarget.cs プロジェクト: guozanhua/phmi
 public void InsertUser(Identity identity, User user, Action<InsertUserResult> callback)
 {
     _queue.Enqueue(service => callback(service.InsertUser(identity, user)));
 }
コード例 #13
0
ファイル: UsersTests.cs プロジェクト: guozanhua/phmi
 protected override void EstablishContext()
 {
     base.EstablishContext();
     User = new User {Name = Name};
     UserActions.Single().Invoke(User);
 }
コード例 #14
0
ファイル: UsersRunTargetTests.cs プロジェクト: guozanhua/phmi
 private void Callback(User result)
 {
     Result = result;
 }
コード例 #15
0
ファイル: Users.cs プロジェクト: guozanhua/phmi
 public void InsertUser(User user, Action<InsertUserResult> callback)
 {
     _usersRunTarget.InsertUser(_identity, user, callback);
 }
コード例 #16
0
ファイル: UsersRepository.cs プロジェクト: guozanhua/phmi
 public InsertUserResult InsertUser(NpgsqlConnection connection, User user)
 {
     try
     {
         var count = _npgHelper.ExecuteNonQuery(connection, _npgQueryHelper.Insert(
             DbStr.Users,
             new[]
                 {
                     DbStr.Id,
                     DbStr.Name,
                     DbStr.Description,
                     DbStr.Photo,
                     DbStr.Enabled,
                     DbStr.CanChange,
                     DbStr.Privilege
                 },
             new[]
                 {
                     new object[]
                         {
                             user.Id,
                             user.Name,
                             user.Description,
                             user.Photo,
                             user.Enabled,
                             user.CanChange,
                             user.Privilege
                         }
                 }));
         return count == 1 ? InsertUserResult.Success : InsertUserResult.Fail;
     }
     catch (NpgsqlException exception)
     {
         switch (exception.Code)
         {
             case "23505":
                 return exception.Detail.Contains(DbStr.Id) ? InsertUserResult.IdConflict : InsertUserResult.NameConflict;
             case "23502":
                 return InsertUserResult.NullValue;
             default:
                 return InsertUserResult.Fail;
         }
     }
 }
コード例 #17
0
ファイル: Users.cs プロジェクト: guozanhua/phmi
 public void LogOff()
 {
     _identity = null;
     Current = null;
 }
コード例 #18
0
ファイル: UsersRepository.cs プロジェクト: guozanhua/phmi
 public UpdateUserResult UpdateUser(NpgsqlConnection connection, User user)
 {
     try
     {
         var count = _npgHelper.ExecuteNonQuery(connection, _npgQueryHelper.UpdateWhere(
             DbStr.Users, new Eq(DbStr.Id, user.Id),
             new[]
                 {
                     DbStr.Name,
                     DbStr.Description,
                     DbStr.Photo,
                     DbStr.Enabled,
                     DbStr.CanChange,
                     DbStr.Privilege
                 },
             new object[]
                 {
                     user.Name,
                     user.Description,
                     user.Photo,
                     user.Enabled,
                     user.CanChange,
                     user.Privilege
                 }));
         return count == 1 ? UpdateUserResult.Success : UpdateUserResult.UserNotFound;
     }
     catch (NpgsqlException exception)
     {
         switch (exception.Code)
         {
             case "23505":
                 return UpdateUserResult.NameConflict;
             case "23502":
                 return UpdateUserResult.NullValue;
             default:
                 return UpdateUserResult.Fail;
         }
     }
 }
コード例 #19
0
ファイル: AddUserDialog.cs プロジェクト: guozanhua/phmi
 public AddUserDialog(IUsers users, long id)
 {
     _users = users;
     _user = new User { Id = id };
 }
コード例 #20
0
ファイル: User.cs プロジェクト: guozanhua/phmi
 public void UpdateFrom(User user)
 {
     Id = user.Id;
     Name = user.Name;
     Description = user.Description;
     Photo = user.Photo;
     Enabled = user.Enabled;
     CanChange = user.CanChange;
     Privilege = user.Privilege;
 }