public SaveResult <UserEntryModel> Save(UserDTO userDTO, DateTime dateStamp)
        {
            ModelValidationResult validationResult = userValidator.Validate(userDTO);
            bool           success = false;
            UserEntryModel model   = null;

            if (validationResult.IsValid)
            {
                UserDetailCreateHandler userDetailCreateHandler =
                    new UserDetailCreateHandler(Db, User, new UserDetailValidator(), new UserDetailFactory(Db, User), new UserDetailQuery(), accessControl);

                var userDetailSaveResult = userDetailCreateHandler.Save(userDTO, dateStamp);
                if (userDetailSaveResult.Success)
                {
                    userDTO.UserDetail_FK = userDetailSaveResult.Model.Model.UserDetail_PK;
                    tblM_User user = Insert(userDTO, dateStamp);
                    Db.SaveChanges();
                    success = true;
                    model   = userEntryDataProvider.Get(user.User_PK);
                }
            }

            return(new SaveResult <UserEntryModel>
            {
                Success = success,
                Message = validationResult.IsValid ? "Data successfully created." : "Validation error occured.",
                Model = model,
                ValidationResult = validationResult
            });
        }
        public SaveResult <UserEntryModel> Save(UserDTO userDTO, DateTime dateStamp)
        {
            if (userDTO.Status_FK == 0)
            {
                userDTO.Status_FK = 1;
            }


            ModelValidationResult validationResult = userValidator.Validate(userDTO);
            bool           success = false;
            UserEntryModel model   = null;

            if (validationResult.IsValid)
            {
                userDTO.Username = userDTO.UserCode = new UserCodeGenerator(this.Db).GetNextUserCode();

                UserDetailCreateHandler userDetailCreateHandler =
                    new UserDetailCreateHandler(Db, User, new UserDetailValidator(), new UserDetailFactory(Db, User), new UserDetailQuery(), accessControl);

                var userDetailSaveResult = userDetailCreateHandler.Save(userDTO, dateStamp);

                if (userDetailSaveResult.Success)
                {
                    userDTO.UserDetail_FK = userDetailSaveResult.Model.Model.UserDetail_PK;
                    tblM_User user = Insert(userDTO, dateStamp);
                    Db.SaveChanges();
                    userDTO.User_PK = user.User_PK;
                    CreateRoleGroupIfJabatanIsAssignable(userDTO, dateStamp);
                    success = true;
                    model   = userEntryDataProvider.Get(user.User_PK);
                }
            }

            return(new SaveResult <UserEntryModel>
            {
                Success = success,
                Message = validationResult.IsValid ? "Data successfully created." : "Validation error occured.",
                Model = model,
                ValidationResult = validationResult
            });
        }
예제 #3
0
        public tblM_User AddUser(UserDTO userDTO, DateTime dateStamp)
        {
            if (userDTO == null)
            {
                throw new ArgumentNullException("User model is null.");
            }

            UserDetailCreateHandler userDetailCreateHandler =
                new UserDetailCreateHandler(Db, User, new UserDetailValidator(), new UserDetailFactory(Db, User), new UserDetailQuery(), new AccessControl(User));
            var userDetailSaveResult = userDetailCreateHandler.Save(userDTO, dateStamp);

            if (userDetailSaveResult.Success)
            {
                userDTO.UserDetail_FK = userDetailSaveResult.Model.Model.UserDetail_PK;
            }

            tblM_User user = userFactory.CreateFromDTO(userDTO, dateStamp);

            user = Db.tblM_User.Add(user);
            Db.SaveChanges();
            userDTO.User_PK = user.User_PK;
            return(user);
        }