예제 #1
0
        public UIElement GetRegisterElement()
        {
            BookmakerRegisterViewModel viewModel = new BookmakerRegisterViewModel(new BookmakerRegisterModel());
            RegisterBookmakerControl   control   = new RegisterBookmakerControl(viewModel);

            viewModel.BookmakerCreated += (s, ea) =>
            {
                BookmakerRegisterModel bookmaker    = ea.Bookmaker;
                BookmakerRegisterDTO   bookmakerDTO = Mapper.Map <BookmakerRegisterModel, BookmakerRegisterDTO>(bookmaker);

                using (IAccountService service = factory.CreateAccountService())
                {
                    ServiceMessage serviceMessage = service.Register(bookmakerDTO);
                    RaiseReceivedMessageEvent(serviceMessage.IsSuccessful, serviceMessage.Message);

                    if (serviceMessage.IsSuccessful)
                    {
                        viewModel.FirstName       = String.Empty;
                        viewModel.LastName        = String.Empty;
                        viewModel.PhoneNumber     = String.Empty;
                        viewModel.Login           = String.Empty;
                        viewModel.Password        = String.Empty;
                        viewModel.ConfirmPassword = String.Empty;
                        Notify();
                    }
                }
            };

            return(control);
        }
        private bool Validate(BookmakerRegisterDTO bookmakerRegisterDTO, ref string message)
        {
            bool isValid = true;

            if (String.IsNullOrEmpty(bookmakerRegisterDTO.LastName))
            {
                message = "Last name must not be empty";
                isValid = false;
            }
            else if (String.IsNullOrEmpty(bookmakerRegisterDTO.FirstName))
            {
                message = "First name must not be empty";
                isValid = false;
            }
            else if (String.IsNullOrEmpty(bookmakerRegisterDTO.PhoneNumber))
            {
                message = "Phone number name must not be empty";
                isValid = false;
            }

            return(isValid);
        }
        public override ServiceMessage Register(BookmakerRegisterDTO bookmakerRegisterDTO)
        {
            string message = "";
            bool   success = true;

            if (!Validate(bookmakerRegisterDTO, ref message))
            {
                success = false;
            }
            else if (!registerValidator.Validate(bookmakerRegisterDTO, ref message))
            {
                success = false;
            }
            else
            {
                string hashedPassword = encryptor.Encrypt(bookmakerRegisterDTO.Password);

                try
                {
                    IEnumerable <string> logins = unitOfWork.Users.GetAll().Select(user => user.Login);
                    if (!logins.Contains(bookmakerRegisterDTO.Login))
                    {
                        bool phoneNumberExists = unitOfWork.Bookmakers.GetAll().Any(b => b.PhoneNumber == bookmakerRegisterDTO.PhoneNumber);
                        if (!phoneNumberExists)
                        {
                            unitOfWork.Accounts.RegisterBookmakerRole(bookmakerRegisterDTO.Login, hashedPassword);

                            UserEntity userEntity = new UserEntity
                            {
                                Login = bookmakerRegisterDTO.Login,
                                Role  = unitOfWork.Roles.Get(RolesCodes.BookmakerRole)
                            };
                            unitOfWork.Users.Add(userEntity);
                            unitOfWork.Commit();

                            BookmakerEntity bookmakerEntity = new BookmakerEntity
                            {
                                Id          = userEntity.Id,
                                FirstName   = bookmakerRegisterDTO.FirstName,
                                LastName    = bookmakerRegisterDTO.LastName,
                                PhoneNumber = bookmakerRegisterDTO.PhoneNumber
                            };
                            unitOfWork.Bookmakers.Add(bookmakerEntity);

                            unitOfWork.Commit();
                            message = "Registered new bookmaker";
                        }
                        else
                        {
                            success = false;
                            message = "Such phone number already exists. Try another one";
                        }
                    }
                    else
                    {
                        success = false;
                        message = "Such login already exists. Try another one";
                    }
                }
                catch (Exception ex)
                {
                    message = ExceptionMessageBuilder.BuildMessage(ex);
                    success = false;
                }
            }

            return(new ServiceMessage(message, success));
        }
예제 #4
0
 public virtual ServiceMessage Register(BookmakerRegisterDTO bookmakerRegisterDTO)
 {
     return(new ServiceMessage("No permissions to register bookmaker", false));
 }