public List <User> LoadUsers()
        {
            var registerNewUser = new RegisterNewUser();
            var johnDoe         = new User("John", "Secret", "Receptionist");
            var janeDoe         = new User("Jane", "Secret", "Vetrinarian");
            var admin           = new User("Admin", "Admin", "Admin");
            var users           = new List <User>();

            users.Add(johnDoe);
            users.Add(janeDoe);
            users.Add(admin);

            return(users);

            //var doc = XDocument.Load("Users.xml");

            //var root = doc.Root;

            //foreach (var element in root.Elements())
            //{
            //    var username = element.Attribute("username").Value;
            //    var password = element.Attribute("password").Value;
            //    var role = element.Attribute("role").Value;

            //    users.Add(new User(username, password, role));
            //}
            //return users;
        }
Beispiel #2
0
        public NewUserController(RequestUserData requestUserData, RegisterNewUser registerNewUser, RequestNewCards requestNewCards, PortalContext portalContext)
        {
            _requestUserData = requestUserData;
            _registerNewUser = registerNewUser;
            _requestNewCards = requestNewCards;

            _context = portalContext;
        }
        public void ShouldReturnHealthCheckWithGet()
        {
            var request    = PrepareRequest(null, HttpMethod.Get);
            var testObject = new RegisterNewUser();
            var response   = testObject.AddNewUser(request, lambdaMock.Object);

            Assert.NotNull(response);
            Assert.Equal((int)HttpStatusCode.OK, response.StatusCode);
            Assert.Contains(RegisterNewUser.HealthCheckResponse, response.Body);
        }
        public void ShouldRegisterNewUserWithJson(string inputString)
        {
            var request    = PrepareRequest(inputString, HttpMethod.Post);
            var testObject = new RegisterNewUser();

            var response = testObject.AddNewUser(request, lambdaMock.Object);

            Assert.NotNull(response);
            Assert.Equal((int)HttpStatusCode.OK, response.StatusCode);
            Assert.Equal(RegisterNewUser.SuccesfullyResponseMessage, response.Body);
        }
        public void ShouldThrowErrorForIncorrectJsonModelSchema(string inputString)
        {
            var request    = PrepareRequest(inputString, HttpMethod.Post);
            var testObject = new RegisterNewUser();

            var response = testObject.AddNewUser(request, lambdaMock.Object);

            Assert.NotNull(response);
            Assert.Equal((int)HttpStatusCode.BadRequest, response.StatusCode);
            Assert.Contains(RegisterNewUser.JsonParseErrorResponseMessage, response.Body);
        }
Beispiel #6
0
        private static Task RegisterNewUser(string name)
        {
            var command = new RegisterNewUser
            {
                UserId       = Guid.NewGuid(),
                Name         = name,
                EmailAddress = $"{name}@particular.net"
            };

            Console.WriteLine($"\tAsked to register {name}");

            return(endpointInstance.Send(command));
        }
Beispiel #7
0
 public bool RegisterUser(UserDTO userObject)
 {
     try
     {
         RegisterNewUser newUserObject = new RegisterNewUser();
         newUserObject.User = userObject;
         return(newUserObject.Register());
     }
     catch
     {
         throw;
     }
 }
        public async Task RegisterNewUser([FromBody] RegisterNewUser registerNewUser)
        {
            var result = await this._identityUserManager.CreateAsync(new IdentityUser()
            {
                UserName = registerNewUser.UserName,
                Email    = registerNewUser.Email
            }, registerNewUser.Password);

            if (!result.Succeeded)
            {
                var errors = string.Join(" , ", result.Errors.Select(x => x.Description));
                throw new Exception($"Error : { errors }");
            }
        }
        public IActionResult Register(RegisterNewUser registerNewUser)
        {
            if (!ModelState.IsValid)
            {
                return(View(registerNewUser));
            }

            // Register them as a new user (and set default role)
            // When a user registers they need to be given a role. If you don't need anything special
            // just give them "User".
            authProvider.Register(registerNewUser.Email, registerNewUser.Password, role: "User");

            // Redirect the user where you want them to go after registering
            return(RedirectToAction("Index", "Account"));
        }
        public async Task Handle(RegisterNewUser message, IMessageHandlerContext context)
        {
            log.Info($"Received registration intent for user with email: {message.Email}. Yes, no GDPR here ;)");

            Data.VerificationCode = Guid.NewGuid().ToString("D").Substring(0, 4);

            await context.SendLocal(new SendVerificationCode
            {
                Email            = message.Email,
                VerificationCode = Data.VerificationCode
            });

            await RequestTimeout <ReminderAfter24Hours>(context, TimeSpan.FromSeconds(5));

            await RequestTimeout <ReminderAfter48Hours>(context, TimeSpan.FromSeconds(10));
        }
Beispiel #11
0
        public async Task Handle(RegisterNewUser message, IMessageHandlerContext context)
        {
            logger.Info($"Received {message.UserId} - {message.EmailAddress}");

            Data.Name             = message.Name;
            Data.EmailAddress     = message.EmailAddress;
            Data.VerificationCode = Guid.NewGuid().ToString("n").Substring(0, 4);

            // Publish fact that we've started, so anyone interested can have the data available.
            var @event = Mapper.Map <UserVerificationStarted>(message);
            await context.Publish(@event).ConfigureAwait(false);

            // Send command to send an email
            var command = new SendVerificationEmail(message.UserId, message.Name, message.EmailAddress, Data.VerificationCode);
            await context.Send(command).ConfigureAwait(false);

            // Create timeout to make user aware to _really_ click that link.
            await RequestTimeout <EmailReminderTimeout>(context, TimeSpan.FromSeconds(5)).ConfigureAwait(false);
        }
Beispiel #12
0
        public async Task <TokenResult> Post(RegisterNewUser request)
        {
            var login = request.Login.ToLowerInvariant();

            var user = await GetUserByLogin(login);

            if (user != null)
            {
                throw new HttpError(HttpStatusCode.BadRequest, "Пользователь с таким логином уже существует");
            }
            if (string.IsNullOrWhiteSpace(request.Password))
            {
                throw new HttpError(HttpStatusCode.BadRequest, "Пароль не может быть пустым");
            }

            user = await CreateUser(login, request.UserName, request.Password);
            await AddMemberInDefaultChat(user);

            var tokenResult = await GenerateToken(user);

            return(tokenResult);
        }
        public void NotifyNewAccount(User user, bool async = false)
        {
            var mailMessage = new RegisterNewUser().Generate(user);

            new GmailClient().Send(mailMessage);
        }
Beispiel #14
0
        public MainWindowViewModel()
        {
            Locator.CurrentMutable.RegisterConstant(this);
            User = new CurrentUserViewModel();
            Locator.CurrentMutable.RegisterConstant <ICurrentUser>(User);
            configuration = Locator.Current.GetService <IConfiguration>();
            settings      = configuration?.GetSection("ChatClientSettings")?.Get <ChatClientSettings>();

            var mapper = Locator.Current.GetService <IMapper>();

            if (settings == null)
            {
                settings = new ChatClientSettings();
            }

            if (settings.HostUrl.IsNullOrEmpty())
            {
                settings.HostUrl = "http://localhost:5000";
            }

            if (settings.AttachmentDefaultPath.IsNullOrEmpty())
            {
                settings.AttachmentDefaultPath = "\\Download";
            }

            serviceClient = new JsonServiceClient(settings.HostUrl);

            ProfileViewModel = new ProfileViewModel(serviceClient);
            Locator.CurrentMutable.RegisterConstant <IProfile>(ProfileViewModel);
            ProfileViewModel.IsOpenProfileEvent += () => WindowStates(WindowState.OpenProfile);

            AttachmentViewModel = new SendAttachmentsViewModel(serviceClient);

            SettingsViewModel = new SettingsViewModel(serviceClient);
            SettingsViewModel.OpenSettingsActiveEvent        += (e) => { WindowStates(WindowState.WindowSettings); };
            SettingsViewModel.TypeEnterEvent                 += (e) => { KeySendMessage = e; };
            SettingsViewModel.ContextMenuSettingsActiveEvent += (e) => { WindowStates(WindowState.HeaderMenuPopup); };
            SettingsViewModel.SetSelectedOnSettingsItemEvent += e => { TextHeaderMenuInSettings = SettingsViewModel.SettingsMenuActiveMain ? "Сообщения и чаты" : "Аудит входа"; };

            Width(false);
            User.UserName = settings.UserName;
            Tokens        = new TokenResult {
                AccessToken = settings.AccessToken, RefreshToken = settings.RefreshToken
            };

            Messages = new ObservableCollection <IMessagesContainerViewModel>();

            var bits            = Environment.Is64BitOperatingSystem ? "PC 64bit, " : "PC 32bit, ";
            var operatingSystem = bits + RuntimeInformation.OSDescription;

            string ipAddress = "";

            try
            {
                ipAddress = new WebClient().DownloadString("https://api.ipify.org");
            }
            catch (Exception e)
            {
                try
                {
                    IPHostEntry ipHost = Dns.GetHostEntry("localhost");
                    if (ipHost.AddressList.Length > 0)
                    {
                        ipAddress = ipHost.AddressList.Last().ToString();
                    }
                }
                catch (Exception exception) { }
            }
            var nameVersionClient = "SkillChat Avalonia Client 1.0";

            ConnectCommand = ReactiveCommand.CreateFromTask(async() =>
            {
                try
                {
                    _connection = new HubConnectionBuilder()
                                  .WithUrl(settings.HostUrl + "/ChatHub")
                                  .Build();

                    _hub = _connection.CreateHub <IChatHub>();
                    ProfileViewModel.SetChatHub(_hub);
                    AttachmentViewModel.SetChatHub(_hub);

                    if (Tokens == null || Tokens.AccessToken.IsNullOrEmpty())
                    {
                        Tokens = await serviceClient.PostAsync(new AuthViaPassword
                        {
                            Login = User.UserName, Password = User.Password
                        });
                        settings.AccessToken  = Tokens.AccessToken;
                        settings.RefreshToken = Tokens.RefreshToken;
                        settings.UserName     = User.UserName;
                        configuration.GetSection("ChatClientSettings").Set(settings);
                    }

                    serviceClient.BearerToken = Tokens.AccessToken;
                    this.ObservableForProperty(m => m.ExpireTime).Subscribe(change =>
                    {
                        if (change.Value != null)
                        {
                            //TODO запуск обновления токена
                        }
                    });

                    _connection.Subscribe <LogOn>(async data =>
                    {
                        if (data.Error)
                        {
                            IsSignedIn = false;
                            serviceClient.BearerToken = Tokens.RefreshToken;
                            try
                            {
                                Tokens = await serviceClient.PostAsync(new PostRefreshToken());
                                settings.AccessToken  = Tokens.AccessToken;
                                settings.RefreshToken = Tokens.RefreshToken;
                                configuration.GetSection("ChatClientSettings").Set(configuration);
                                await _hub.Login(Tokens.AccessToken, operatingSystem, ipAddress, nameVersionClient);
                            }
                            catch (Exception e)
                            {
                                Tokens = null;
                            }
                        }
                        else
                        {
                            IsSignedIn = true;
                            User.Id    = data.Id;
                            User.Login = data.UserLogin;
                            ExpireTime = data.ExpireTime;
                            var chats  = await serviceClient.GetAsync(new GetChatsList());
                            var chat   = chats.Chats.FirstOrDefault();
                            ChatId     = chat?.Id;
                            ChatName   = chat?.ChatName;
                            LoadMessageHistoryCommand.Execute(null);
                            //Получаем настройки
                            SettingsViewModel.ChatSettings = await serviceClient.GetAsync(new GetMySettings());
                            KeySendMessage = SettingsViewModel.ChatSettings.SendingMessageByEnterKey;
                        }
                    });

                    _connection.Subscribe <UpdateUserDisplayName>(async user =>
                    {
                        try
                        {
                            var updateMessages = Messages.Where(s => s is UserMessagesContainerViewModel);
                            foreach (var message in updateMessages)
                            {
                                foreach (var item in message.Messages.Where(s => s.UserId == user.Id))
                                {
                                    item.UserNickname = user.DisplayName;
                                }
                            }

                            ProfileViewModel.UpdateUserProfile(user.DisplayName, user.Id);
                        }
                        catch (Exception e)
                        {
                            SignOutCommand.Execute(null);
                        }
                    });

                    _connection.Subscribe <ReceiveMessage>(async data =>
                    {
                        var isMyMessage    = User.Id == data.UserId;
                        var hasAttachments = data.Attachments != null && data.Attachments.Count > 0;

                        MessageViewModel newMessage;

                        if (isMyMessage)
                        {
                            newMessage = hasAttachments ? new MyAttachmentViewModel() : new MyMessageViewModel();
                        }
                        else
                        {
                            newMessage = hasAttachments ? new UserAttachmentViewModel() : new UserMessageViewModel();
                        }

                        newMessage.Id           = data.Id;
                        newMessage.Text         = data.Message;
                        newMessage.PostTime     = data.PostTime;
                        newMessage.UserNickname = data.UserNickname ?? data.UserLogin;
                        newMessage.UserId       = data.UserId;

                        newMessage.Attachments = data.Attachments?
                                                 .Select(s =>
                        {
                            var attah = mapper?.Map <AttachmentMold>(s);
                            return(new AttachmentMessageViewModel(attah));
                        }).ToList();

                        var container = Messages.LastOrDefault();

                        if (isMyMessage)
                        {
                            if (!(container is MyMessagesContainerViewModel))
                            {
                                container = new MyMessagesContainerViewModel();
                                Messages.Add(container);
                            }
                        }
                        else
                        {
                            if (container is UserMessagesContainerViewModel)
                            {
                                var lastMessage = container.Messages.LastOrDefault();
                                if (lastMessage?.UserId != newMessage.UserId)
                                {
                                    container = new UserMessagesContainerViewModel();
                                    Messages.Add(container);
                                }
                            }
                            else
                            {
                                container = new UserMessagesContainerViewModel();
                                Messages.Add(container);
                            }

                            if (!windowIsFocused || SettingsViewModel.IsOpened)
                            {
                                Notify.NewMessage(newMessage.UserNickname, newMessage.Text.Replace("\r\n", " "));
                            }
                        }

                        container.Messages.Add(newMessage);
                        if (container.Messages.First() == newMessage)
                        {
                            newMessage.ShowNickname = true;
                        }

                        MessageReceived?.Invoke(new ReceivedMessageArgs(newMessage));
                    });

                    _connection.Closed += connectionOnClosed();
                    await _connection.StartAsync();
                    await _hub.Login(Tokens.AccessToken, operatingSystem, ipAddress, nameVersionClient);
                    //Messages.Add("Connection started");
                    IsShowingLoginPage    = false;
                    IsShowingRegisterPage = false;
                    ValidationError       = "";
                    IsConnected           = true;
                    User.Password         = "";
                }
                catch (Exception ex)
                {
                    //Изменение параеметров TextBox в случае ошибки
                    User.Error("неверный логин или пароль");
                    ErrorBe?.Invoke();
                    IsShowingLoginPage = _connection.State != HubConnectionState.Connected ? true : false;
                    //Messages.Add(ex.Message);
                }
            });

            if (Tokens.AccessToken.IsNullOrEmpty() == false)
            {
                ConnectCommand.Execute(null);
            }

            SendCommand = ReactiveCommand.CreateFromTask(async() =>
            {
                try
                {
                    await _hub.SendMessage(new HubMessage(ChatId, MessageText));
                    MessageText = null;
                }
                catch (Exception ex)
                {
                    SignOutCommand.Execute(null);
                }
            },
                                                         this.WhenAnyValue(m => m.IsConnected, m => m.MessageText,
                                                                           (b, m) => b == true && !string.IsNullOrEmpty(m)));

            LoadMessageHistoryCommand = ReactiveCommand.CreateFromTask(async() =>
            {
                try
                {
                    var first   = Messages.FirstOrDefault()?.Messages.FirstOrDefault();
                    var request = new GetMessages {
                        ChatId = ChatId, BeforePostTime = first?.PostTime
                    };

                    // Логика выбора сообщений по id чата
                    var result = await serviceClient.GetAsync(request);
                    foreach (var item in result.Messages)
                    {
                        var isMyMessage    = User.Id == item.UserId;
                        var hasAttachments = item.Attachments != null && item.Attachments.Count > 0;

                        MessageViewModel newMessage;

                        if (isMyMessage)
                        {
                            newMessage = hasAttachments ? new MyAttachmentViewModel() : new MyMessageViewModel();
                        }
                        else
                        {
                            newMessage = hasAttachments ? new UserAttachmentViewModel() : new UserMessageViewModel();
                        }

                        newMessage.Id           = item.Id;
                        newMessage.Text         = item.Text;
                        newMessage.PostTime     = item.PostTime;
                        newMessage.UserNickname = item.UserNickName;
                        newMessage.UserId       = item.UserId;

                        newMessage.Attachments = item.Attachments?.Select(s => new AttachmentMessageViewModel(s)).ToList();

                        var container = Messages.FirstOrDefault();

                        if (isMyMessage)
                        {
                            if (!(container is MyMessagesContainerViewModel))
                            {
                                container = new MyMessagesContainerViewModel();
                                Messages.Insert(0, container);
                            }
                        }
                        else
                        {
                            if (container is UserMessagesContainerViewModel)
                            {
                                var firstMessage = container.Messages.FirstOrDefault();
                                if (firstMessage?.UserId != newMessage.UserId)
                                {
                                    container = new UserMessagesContainerViewModel();
                                    Messages.Insert(0, container);
                                }
                            }
                            else
                            {
                                container = new UserMessagesContainerViewModel();
                                Messages.Insert(0, container);
                            }
                        }

                        container.Messages.Insert(0, newMessage);

                        var firstInBlock = container.Messages.First();
                        foreach (var message in container.Messages)
                        {
                            message.ShowNickname = firstInBlock == message;
                        }
                    }
                }
                catch (Exception e)
                {
                }
            });

            SignOutCommand = ReactiveCommand.CreateFromTask(async() =>
            {
                try
                {
                    Messages.Clear();
                    MessageText = null;
                    Tokens      = null;
                    IsSignedIn  = false;
                    IsConnected = false;
                    serviceClient.BearerToken = null;
                    if (_connection != null)
                    {
                        _connection.Closed -= connectionOnClosed();
                        await _connection.StopAsync();
                    }

                    _connection = null;
                    _hub        = null;

                    settings.AccessToken  = null;
                    settings.RefreshToken = null;
                    configuration.GetSection("ChatClientSettings").Set(settings);

                    WindowStates(WindowState.SignOut);
                }
                catch (Exception ex)
                {
                }
                finally
                {
                    IsShowingLoginPage = true;
                }
            });
            IsShowingLoginPage = true;

            // Скрывает окно регистрации
            IsShowingRegisterPage = false;
            IsShowingLoginPage    = true;
            GoToRegisterCommand   = ReactiveCommand.Create <object>(_ =>
            {
                IsShowingRegisterPage = true;
                IsShowingLoginPage    = false;
                RegisterUser.Login    = User.UserName;
                User.Password         = "";
            });

            RegisterUser = new RegisterUserViewModel();
            RegisterUser.GoToLoginCommand = ReactiveCommand.Create <object>(_ =>
            {
                IsShowingRegisterPage = false;
                IsShowingLoginPage    = true;
                RegisterUser.Password = "";
                User.UserName         = RegisterUser.Login;
            });
            IsConnected     = false; //Скрывает окно чата
            RegisterCommand = ReactiveCommand.CreateFromTask(async() =>
            {
                var request = new RegisterNewUser();
                try
                {
                    ValidationError = "";
                    if (string.IsNullOrWhiteSpace(RegisterUser.Login) ||
                        string.IsNullOrWhiteSpace(RegisterUser.Password))
                    {
                        throw new Exception("Не заполнены логин и/или пароль");
                    }
                    request.Login    = RegisterUser.Login;
                    request.Password = RegisterUser.Password;
                    request.UserName = RegisterUser.UserName;

                    Tokens = await serviceClient.PostAsync(request);

                    settings.AccessToken  = Tokens.AccessToken;
                    settings.RefreshToken = Tokens.RefreshToken;
                    settings.UserName     = RegisterUser.Login;
                    configuration.GetSection("ChatClientSettings").Set(settings);
                    ConnectCommand.Execute(null);
                }
                catch (Exception ex)
                {
                    Debug.WriteLine($"Ошибка регистрации {ex.Message}");
                    ValidationError = ex.Message;
                }
            });

            NotifyCommand = ReactiveCommand.Create <object>(obj =>
            {
                if (obj is IHaveIsActive win)
                {
                    windowIsFocused = win.IsActive;
                }
            });
            PointerPressedCommand = ReactiveCommand.Create <object>(obj =>
            {
                ProfileViewModel.ContextMenuClose();
                SettingsViewModel.CloseContextMenu();
            });

            ProfileViewModel.SignOutCommand            = SignOutCommand;
            ProfileViewModel.LoadMessageHistoryCommand = LoadMessageHistoryCommand;
        }
        public override MembershipUser CreateUser(String username, String password, String email,
            String passwordQuestion, String passwordAnswer, bool isApproved,
            object providerUserKey, out MembershipCreateStatus status)
        {
            // Make sure there is no user registered with this username.
            if (GetUser(username, false) != null)
            {
                status = MembershipCreateStatus.DuplicateUserName;
            }
                // Make sure there is no user registered with this email.
            else if (GetUserNameByEmail(email) != null)
            {
                status = MembershipCreateStatus.DuplicateEmail;
            }
            // Register user.
            else
            {
                // TODO: Wrap visitor logic.
                var visitorId = new Guid(HttpContext.Current.Request.Cookies["MyShopVisitorIdentifier"].Value);

                var hashedPassword = EncodePassword(password);
                var command = new RegisterNewUser(visitorId, username, email, hashedPassword);
                MyShopWebApplication.CommandService.Execute(command);

                status = MembershipCreateStatus.Success;
            }

            return GetUser(username, false);
        }
Beispiel #16
0
 protected void RegisterNewUserHandler(RegisterNewUser cmd)
 {
     _backendService.RegisterNewUser(cmd.Username, cmd.Password, cmd.Email);
 }
Beispiel #17
0
 protected void RegisterUser(object sender, EventArgs e)
 {
     RegisterNewUser register = new RegisterNewUser(txtUsername, txtPassword, txtEmail, "*****@*****.**", "123456!@#$%");
 }