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)); }
public virtual ServiceMessage Register(AnalyticRegisterDTO analyticRegisterDTO) { return(new ServiceMessage("No permissions to register analytic", false)); }