Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Сетка с полями авторизации
- <Grid FocusManager.FocusedElement="{Binding ElementName=UsernameTxtBox}">
- <materialDesign:Card VerticalAlignment="Center" HorizontalAlignment="Center" Width="200" Height="200">
- <Grid>
- <Border Background="#3A404D"
- BorderThickness="0,1,0,0">
- <StackPanel Grid.Row="1" Orientation="Vertical" HorizontalAlignment="Center"
- VerticalAlignment="Top" Margin="0,10,0,0">
- <TextBox x:Name="UsernameTxtBox" Width="150" Margin="0,5"
- materialDesign:HintAssist.Hint="Username"
- Text="{Binding UserName, UpdateSourceTrigger=PropertyChanged}">
- <TextBox.InputBindings>
- <KeyBinding Command="{Binding LoginCommand}" Key="Return"/>
- </TextBox.InputBindings>
- </TextBox>
- <PasswordBox x:Name="Password" Width="150" Margin="0,5"
- materialDesign:HintAssist.Hint="Password"
- local:PasswordBoxAssistant.BoundPassword="{Binding Path=Password, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
- local:PasswordBoxAssistant.BindPassword="true">
- <PasswordBox.InputBindings>
- <KeyBinding Command="{Binding LoginCommand}" Key="Return"/>
- </PasswordBox.InputBindings>
- </PasswordBox>
- <Button Content="Login" Margin="0,10,0,0"
- Command="{Binding LoginCommand}"/>
- <Button Content="Create an account" Margin="0,10,0,0"
- Style="{StaticResource AccountButton}"
- Command="{Binding RegisterPageCommand}"/>
- </StackPanel>
- </Border>
- </Grid>
- </materialDesign:Card>
- </Grid>
- // авторизация
- private async Task<bool> Login()
- {
- try
- {
- var user = new UserModel();
- var users = new List<User>();
- var chats = new List<ChatModel>();
- using (var database = new MessengerContext())
- {
- chats = database.Chats.ToList();
- user = await database.Users.FirstOrDefaultAsync(u => u.Name == UserName && u.Passhash == Password);
- user.LastLogin = DateTime.Now.ToString();
- user.LastIP = IPGetter.GetLocalIPAddress();
- database.Entry(user).State = EntityState.Modified;
- Email = user.Email;
- if (user.ProfilePicture != null)
- {
- BitmapImage image = new BitmapImage();
- image.BeginInit();
- image.StreamSource = new MemoryStream(user.ProfilePicture);
- image.EndInit();
- ImagePhoto = image;
- }
- await database.SaveChangesAsync();
- }
- if (users != null && user != null)
- {
- var names = chats.Select(c => c.Name);
- users = await chatService.LoginAsync(user.Name, Avatar());
- users.ForEach(u =>
- {
- if (names.Contains(u.Name))
- {
- Participants.Add(new Participant
- {
- Name = u.Name,
- Photo = user.ProfilePicture
- });
- }
- });
- UserMode = UserModes.Chat;
- IsLoggedIn = true;
- }
- return true;
- }
- catch
- {
- dialogService.ShowNotification("Correct your input!");
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement