Przeglądaj źródła

Страница клиентов

Mubarakshin Bulat 6 miesięcy temu
rodzic
commit
d26e5b89ad

+ 5 - 1
src/DontHarmDesktop/Dictionaries/Buttons.xaml

@@ -15,5 +15,9 @@
         <Setter Property="Background" Value="{StaticResource DestructiveAction}"/>
         <Setter Property="Foreground" Value="White"/>
     </Style>
-    
+
+    <Style x:Key="BackButton" BasedOn="{StaticResource TextButton}" TargetType="{x:Type Button}">
+        <Setter Property="Content" Value="&lt;- Назад"/>
+    </Style>
+
 </ResourceDictionary>

+ 1 - 0
src/DontHarmDesktop/DontHarmDesktop.csproj

@@ -86,6 +86,7 @@
       <SubType>Designer</SubType>
     </ApplicationDefinition>
     <Compile Include="AuthState.cs" />
+    <Compile Include="Models\clientsext.cs" />
     <Compile Include="Navigation.cs" />
     <Compile Include="Pages\Clients.xaml.cs">
       <DependentUpon>Clients.xaml</DependentUpon>

+ 35 - 0
src/DontHarmDesktop/Models/clientsext.cs

@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DontHarmDesktop.Models
+{
+    partial class clients
+    {
+        public string HumanName 
+        {
+            get
+            {
+                return this.surname + " " + this.name[0] + ". " + this.patronymic[0] + ".";
+            }
+        }
+
+        public string HumanPassport
+        {
+            get
+            {
+                return this.passport_series + " " + this.passport_number;
+            }
+        }
+
+        public string HumanBirthday
+        {
+            get
+            {
+                return this.birthdate?.ToString("D");
+            }
+        }
+    }
+}

+ 9 - 1
src/DontHarmDesktop/Navigation.cs

@@ -1,4 +1,5 @@
-using System;
+using Prism.Commands;
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
@@ -9,6 +10,8 @@ namespace DontHarmDesktop
 {
     public static class Navigation
     {
+        public static DelegateCommand GoBack { get; set; } = new DelegateCommand(GoBackExecuted);
+
         private static Frame getMainFrame()
         {
             return (App.Current.MainWindow as MainWindow).MainFrame;
@@ -32,5 +35,10 @@ namespace DontHarmDesktop
         {
             getMainFrame().Navigate(new Pages.Services());
         }
+
+        public static void GoBackExecuted()
+        {
+            getMainFrame().GoBack();
+        }
     }
 }

+ 96 - 3
src/DontHarmDesktop/Pages/Clients.xaml

@@ -3,7 +3,8 @@
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
       xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
-      xmlns:local="clr-namespace:DontHarmDesktop.Pages"
+      xmlns:root="clr-namespace:DontHarmDesktop"
+      xmlns:local="clr-namespace:DontHarmDesktop.Pages" xmlns:viewmodels="clr-namespace:DontHarmDesktop.ViewModels" d:DataContext="{d:DesignInstance Type=viewmodels:ClientsViewModel}"
       mc:Ignorable="d" 
       d:DesignHeight="450" d:DesignWidth="800"
       Title="Clients">
@@ -11,10 +12,102 @@
     <StackPanel Style="{StaticResource FormContainer}">
         <TextBlock Text="Список клиентов" Style="{StaticResource H2}"/>
         <Grid Style="{StaticResource FormBody}">
-            <ListView ItemsSource="{Binding}">
+            <Grid.RowDefinitions>
+                <RowDefinition/>
+                <RowDefinition/>
+                <RowDefinition/>
+            </Grid.RowDefinitions>
+
+            <Grid.ColumnDefinitions>
+                <ColumnDefinition Width="128"/>
+                <ColumnDefinition/>
+            </Grid.ColumnDefinitions>
+            
+            <Button 
+                Grid.Row="0"
+                Style="{StaticResource BackButton}"
+                Command="{Binding Source={x:Static root:Navigation.GoBack}}"/>
+
+            <Grid Grid.Row="1" Grid.ColumnSpan="2" Margin="0,8,0,0">
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition/>
+                    <ColumnDefinition/>
+                    <ColumnDefinition/>
+                </Grid.ColumnDefinitions>
+
+                <Grid.RowDefinitions>
+                    <RowDefinition/>
+                    <RowDefinition/>
+                </Grid.RowDefinitions>
+
+                <TextBlock 
+                    Text="Поиск по имени"
+                    Grid.Column="0"
+                    Grid.Row="0"/>
+                <TextBox
+                    Grid.Column="0"
+                    Grid.Row="1"/>
+
+                <TextBlock 
+                    Text="Поиск по домену почты"
+                    Grid.Column="1"
+                    Grid.Row="0"/>
+                <ComboBox
+                    Grid.Column="1"
+                    Grid.Row="1"
+                    />
+
+
+                <CheckBox
+                    Grid.Column="2"
+                    Content="Отображать скрытые"/>
+
+            </Grid>
+
+            <ListView 
+                Margin="0,8,0,0"
+                Grid.Row="2" 
+                Grid.ColumnSpan="2"
+                ScrollViewer.HorizontalScrollBarVisibility="Disabled"
+                ItemsSource="{Binding Clients}">
+
+                <ListView.ItemsPanel>
+                    <ItemsPanelTemplate>
+                        <WrapPanel Orientation="Horizontal"/>
+                    </ItemsPanelTemplate>
+                </ListView.ItemsPanel>
+                
                 <ListView.ItemTemplate>
                     <DataTemplate>
-                        
+                        <Grid>
+                            <Grid.RowDefinitions>
+                                <RowDefinition/>
+                                <RowDefinition/>
+                                <RowDefinition/>
+                                <RowDefinition/>
+                                <RowDefinition/>
+                            </Grid.RowDefinitions>
+
+                            <Grid.ColumnDefinitions>
+                                <ColumnDefinition Width="128"/>
+                                <ColumnDefinition/>
+                            </Grid.ColumnDefinitions>
+                            
+                            <TextBlock FontSize="18" Grid.ColumnSpan="2" Grid.Row="0" Text="{Binding HumanName}"/>
+
+                            <TextBlock FontWeight="Bold" Grid.Column="0" Grid.Row="1" Text="Паспортные данные"/>
+                            <TextBlock Grid.Column="1" Grid.Row="1" Text="{Binding HumanPassport}"/>
+
+                            <TextBlock FontWeight="Bold" Grid.Column="0" Grid.Row="2" Text="Телефон"/>
+                            <TextBlock Grid.Column="2" Grid.Row="2" Text="{Binding phone}"/>
+
+                            <TextBlock FontWeight="Bold" Grid.Column="0" Grid.Row="3" Text="Адрес почты"/>
+                            <TextBlock Grid.Column="2" Grid.Row="3" Text="{Binding email}"/>
+                                
+                            <TextBlock FontWeight="Bold" Grid.Column="0" Grid.Row="4" Text="День варенья"/>
+                            <TextBlock Grid.Column="2" Grid.Row="4" Text="{Binding HumanBirthday}"/>
+                            
+                        </Grid>
                     </DataTemplate>
                 </ListView.ItemTemplate>
             </ListView>

+ 1 - 0
src/DontHarmDesktop/Pages/Clients.xaml.cs

@@ -23,6 +23,7 @@ namespace DontHarmDesktop.Pages
         public Clients()
         {
             InitializeComponent();
+            DataContext = new ViewModels.ClientsViewModel();
         }
     }
 }

+ 16 - 2
src/DontHarmDesktop/Pages/Services.xaml

@@ -3,6 +3,7 @@
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
       xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
+      xmlns:root="clr-namespace:DontHarmDesktop"
       xmlns:local="clr-namespace:DontHarmDesktop.Pages" xmlns:viewmodels="clr-namespace:DontHarmDesktop.ViewModels" d:DataContext="{d:DesignInstance Type=viewmodels:ServicesViewModel}"
       mc:Ignorable="d" 
       d:DesignHeight="450" d:DesignWidth="800"
@@ -12,11 +13,23 @@
         <TextBlock Text="Просмотр услуг" Style="{StaticResource H2}"/>
         <Grid Style="{StaticResource FormBody}">
             <Grid.RowDefinitions>
+                <RowDefinition Height="Auto"/>
                 <RowDefinition Height="Auto"/>
                 <RowDefinition Height="*"/>
             </Grid.RowDefinitions>
 
-            <StackPanel Grid.Row="0" Style="{StaticResource ButtonPanel}">
+            <Grid.ColumnDefinitions>
+                <ColumnDefinition Width="128"/>
+                <ColumnDefinition/>
+            </Grid.ColumnDefinitions>
+
+            <Button 
+                Grid.Row="0"
+                Grid.Column="0"
+                Style="{StaticResource BackButton}"
+                Command="{Binding Source={x:Static root:Navigation.GoBack}}"/>
+
+            <StackPanel Grid.Row="1" Grid.ColumnSpan="2" Style="{StaticResource ButtonPanel}">
 
                 <Button 
                     Style="{StaticResource Suggested}"
@@ -30,7 +43,8 @@
             </StackPanel>
 
             <DataGrid 
-                Grid.Row="1"
+                Grid.Row="2"
+                Grid.ColumnSpan="2"
                 ItemsSource="{Binding Services}"
                 AutoGenerateColumns="False"
                 IsReadOnly="True"

+ 13 - 2
src/DontHarmDesktop/ViewModels/ClientsViewModel.cs

@@ -1,12 +1,23 @@
 using System;
 using System.Collections.Generic;
+using System.Collections.ObjectModel;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using DontHarmDesktop.Models;
+using Prism.Mvvm;
 
 namespace DontHarmDesktop.ViewModels
 {
-    public class ClientsViewModel
+    public class ClientsViewModel : BindableBase
     {
+        public ObservableCollection<clients> Clients { get; set; }
+
+        public ClientsViewModel()
+        {
+            var db = new Models.Entities();
+            var clients = db.clients.Where(c => c.hidden == false);
+            Clients = new ObservableCollection<clients>(clients);
+        }
     }
-}
+}