コード例 #1
0
ファイル: Program.cs プロジェクト: jmwenzel/Patterns
        static void Main(string[] args)
        {
            IMediator mediator = new Mediator();

            IUser jackson = new FreeUser(mediator, "Jackson");
            IUser jose    = new PaidUser(mediator, "Jose");
            IUser cesar   = new FreeUser(mediator, "Cesar");

            mediator.Register(jackson);
            mediator.Register(jose);
            mediator.Register(cesar);

            jackson.SendMessage("Good morning");
            Console.WriteLine();
            jose.SendMessage("Welcome!");
            Console.WriteLine();
            jose.SendMessage("Have a nice day!");

            Console.ReadKey();
        }
コード例 #2
0
        public void CreateUserAndAccount(string userName, string password, bool isPaid)
        {
            User user;

            if (!isPaid)
            {
                user = new FreeUser {
                    Name = userName
                };
            }
            else
            {
                user = new PaidUser {
                    Name = userName
                };
            }
            if (_unitOfWork.UserRoles.GetOne(role => role.RoleName.Equals("User")) == null)
            {
                _unitOfWork.UserRoles.Add(new UserRoles {
                    RoleName = "User"
                });
                _unitOfWork.Commit();
            }
            user.Roles.Add(_unitOfWork.UserRoles.GetOne(role => role.RoleName.Equals("User")));
            _unitOfWork.UserRoles.GetOne(role => role.RoleName.Equals("User"), u => u.User).User.Add(user);
            _unitOfWork.Users.Add(user);
            _unitOfWork.Commit();
            int    userId         = _unitOfWork.Users.GetOne(u => u.Name.Equals(userName)).ID;
            string salt           = Crypto.GenerateSalt();
            string hashedPassword = Crypto.HashPassword(password + salt);

            _unitOfWork.UserMembership.Add(new UserMembership {
                ID = userId, Password = hashedPassword, PasswordSalt = salt
            });
            _unitOfWork.Commit();
        }