Esempio n. 1
0
        public UIElement GetRegisterElement()
        {
            AnalyticRegisterViewModel viewModel = new AnalyticRegisterViewModel(new AnalyticRegisterModel());
            RegisterAnalyticControl   control   = new RegisterAnalyticControl(viewModel);

            viewModel.AnalyticCreated += (s, e) =>
            {
                AnalyticRegisterModel analytic    = e.Analytic;
                AnalyticRegisterDTO   analyticDTO = Mapper.Map <AnalyticRegisterModel, AnalyticRegisterDTO>(analytic);

                using (IAccountService service = factory.CreateAccountService())
                {
                    ServiceMessage serviceMessage = service.Register(analyticDTO);
                    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(AnalyticRegisterDTO analyticRegisterDTO, ref string message)
        {
            bool isValid = true;

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

            return(isValid);
        }
        public override ServiceMessage Register(AnalyticRegisterDTO analyticRegisterDTO)
        {
            string message = "";
            bool   success = true;
            IEnumerable <string> logins = null;

            try
            {
                logins = unitOfWork.Users.GetAll().Select(user => user.Login);
            }
            catch (Exception ex)
            {
                message = ex.Message;
                success = false;
            }

            if (success)
            {
                if (!Validate(analyticRegisterDTO, ref message))
                {
                    success = false;
                }
                else if (!registerValidator.Validate(analyticRegisterDTO, ref message))
                {
                    success = false;
                }
                else if (logins.Contains(analyticRegisterDTO.Login))
                {
                    success = false;
                    message = "Such login already exists. Try another one";
                }
                else
                {
                    string hashedPassword = encryptor.Encrypt(analyticRegisterDTO.Password);

                    try
                    {
                        unitOfWork.Accounts.RegisterAnalyticRole(analyticRegisterDTO.Login, hashedPassword);

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

                        AnalyticEntity analyticEntity = new AnalyticEntity
                        {
                            Id          = userEntity.Id,
                            FirstName   = analyticRegisterDTO.FirstName,
                            LastName    = analyticRegisterDTO.LastName,
                            PhoneNumber = analyticRegisterDTO.PhoneNumber
                        };
                        unitOfWork.Analytics.Add(analyticEntity);
                        unitOfWork.Commit();

                        message = "Registered new analytic";
                    }
                    catch (Exception ex)
                    {
                        message = ExceptionMessageBuilder.BuildMessage(ex);
                        success = false;
                    }
                }
            }

            return(new ServiceMessage(message, success));
        }
Esempio n. 4
0
 public virtual ServiceMessage Register(AnalyticRegisterDTO analyticRegisterDTO)
 {
     return(new ServiceMessage("No permissions to register analytic", false));
 }