<Window x:Class="GestoreTrimestrale.MainWindow"
             xmlns:dc="clr-namespace:GestoreTrimestrale.Controls"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             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:GestoreTrimestrale"
             Title="Gestore Trimestrale"
             mc:Ignorable="d" Height="610" Width="565" Icon="Bulb.ico" Closing="Window_Closing">
    <Window.Resources>
    </Window.Resources>
    <Grid MinHeight="300" MinWidth="549">
        <Grid.RowDefinitions>
            <RowDefinition Height="528.2*"/>
            <RowDefinition Height="120*" />
        </Grid.RowDefinitions>
        <TabControl Grid.Row="0" x:Name="tabControl">
            <TabItem Header="Processing">
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition MinHeight="90" Height="*"/>
                        <RowDefinition MinHeight="90" Height="*"/>
                    </Grid.RowDefinitions>
                    <Grid VerticalAlignment="Center" Grid.Row="0">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="*"/>
                        </Grid.RowDefinitions>
                        <Grid Grid.Row="0">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="45*"/>
                                <ColumnDefinition Width="70*"/>
                            </Grid.ColumnDefinitions>
                            <Grid Grid.Column="0">
                                <Label Content="Number of concurrent processes:" Margin="5"/>
                            </Grid>
                            <Grid Grid.Column="1">
                                <TextBox x:Name="t_conProcesses" PreviewTextInput="t_PreviewTextInputInteger" Margin="5" VerticalContentAlignment="Center" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" Text="TextBox" Width="97" DataObject.Pasting="TextBoxPasting"/>
                            </Grid>
                        </Grid>
                        <Grid Grid.Row="1">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="45*"/>
                                <ColumnDefinition Width="70*"/>
                            </Grid.ColumnDefinitions>
                            <Grid Grid.Column="0">
                                <Label Content="Number of Client's per zip file:" Margin="5"/>
                            </Grid>
                            <Grid Grid.Column="1">
                                <TextBox x:Name="t_cliPerZip" DataObject.Pasting="TextBoxPasting" PreviewTextInput="t_PreviewTextInputInteger" Margin="5" VerticalContentAlignment="Center" HorizontalAlignment="Left" Height="23"  TextWrapping="Wrap" Text="TextBox" Width="97"/>
                            </Grid>
                        </Grid>
                        <Grid Grid.Row="2">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="45*"/>
                                <ColumnDefinition Width="70*"/>
                            </Grid.ColumnDefinitions>
                            <Grid Grid.Column="0">
                                <Label Content="Logging interval (minutes):" Margin="5"/>
                            </Grid>
                            <Grid Grid.Column="1">
                                <TextBox x:Name="t_logWaitTime" DataObject.Pasting="TextBoxPasting" PreviewTextInput="t_PreviewTextInputInteger" Margin="5" VerticalContentAlignment="Center" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" Text="TextBox" Width="98"/>

                            </Grid>
                        </Grid>
                        <Grid Grid.Row="3">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="45*"/>
                                <ColumnDefinition Width="70*"/>
                            </Grid.ColumnDefinitions>
                            <Grid Grid.Column="0">
                                <Label Content="Counters update interval (minutes):" Margin="5"/>
                            </Grid>
                            <Grid Grid.Column="1">
                                <TextBox x:Name="t_countersWaitTime" DataObject.Pasting="TextBoxPasting" PreviewTextInput="t_PreviewTextInputInteger" Margin="5" VerticalContentAlignment="Center" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" Text="TextBox" Width="98"/>
                            </Grid>
                        </Grid>
                        <Grid Grid.Row="4">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="45*"/>
                                <ColumnDefinition Width="70*"/>
                            </Grid.ColumnDefinitions>
                            <Grid Grid.Column="0">
                                <Label Content="Zip process &quot;wait&quot; interval (minutes):" Margin="5"/>
                            </Grid>
                            <Grid Grid.Column="1">
                                <TextBox x:Name="t_zipWaitTime" DataObject.Pasting="TextBoxPasting" PreviewTextInput="t_PreviewTextInputInteger" Margin="5" VerticalContentAlignment="Center" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" Text="TextBox" Width="98"/>
                            </Grid>
                        </Grid>
                        <Grid Grid.Row="5">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="48*"/>
                                <ColumnDefinition Width="55*"/>
                                <ColumnDefinition Width="70*"/>
                            </Grid.ColumnDefinitions>
                            <Grid Grid.Column="0">
                                <CheckBox x:Name="t_autoZip" Margin="5" VerticalContentAlignment="Center" Content="Auto pack documents" HorizontalAlignment="Left" Click="t_autoZip_Click" />
                            </Grid>
                            <Grid Grid.Column="1">
                                <StackPanel Margin="5" Orientation="Horizontal">
                                    <Button x:Name="button2" Content="Start Zipping" HorizontalAlignment="Left"  Grid.Row="4" VerticalAlignment="Top" Width="131" IsEnabled="False" Click="button2_Click"/>
                                    <Viewbox Name="SpinningCircleZip" Width="15" Visibility="Hidden" Height="15" Margin="7,0,0,0"
                                    HorizontalAlignment="Center"
                                    VerticalAlignment="Center">
                                        <dc:BusyIndicator />
                                    </Viewbox>
                                </StackPanel>
                            </Grid>
                            <Grid Grid.Column="2">
                                <Button x:Name="button" Click="button_Click" VerticalContentAlignment="Center" Content="Start Processing" HorizontalAlignment="Right" Margin="0,4,5.4,0" Width="97" Height="23" RenderTransformOrigin="1.485,-8.407" VerticalAlignment="Top"/>
                            </Grid>
                        </Grid>
                    </Grid>
                    <Grid Grid.Row="1">
                        <DataGrid Name="t_log" IsReadOnly="True" SelectionUnit="Cell"  Margin="5">
                            <DataGrid.Columns>
                                <DataGridTextColumn Header="Time" Binding="{Binding Time}" />
                                <DataGridTextColumn Header="Status" Binding="{Binding Status}" />
                                <DataGridTextColumn Header="Fiscal Code" Binding="{Binding FiscalCode}" />
                                <DataGridTextColumn Header="Rete" Binding="{Binding Rete}" />
                                <DataGridTextColumn Header="Contract Type" Binding="{Binding ContractType}" />
                                <DataGridTextColumn Header="Report Type" Binding="{Binding ReportType}" />
                                <DataGridTextColumn Header="Message" Binding="{Binding Message}" Width="*" />
                            </DataGrid.Columns>
                        </DataGrid>
                    </Grid>
                    <Grid Grid.Row="2">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="2*"/>
                            <ColumnDefinition Width="2*" />
                            <ColumnDefinition  Width="2*"/>
                        </Grid.ColumnDefinitions>
                        <Grid Grid.Column="0">
                            <DataGrid Name="t_counters_elab" AutoGenerateColumns="False" IsReadOnly="True" Margin="5">
                                <DataGrid.Columns>
                                    <DataGridTextColumn Header="Elab" Binding="{Binding Elab}" />
                                    <DataGridTextColumn Header="Rete" Binding="{Binding Rete}" />
                                    <DataGridTextColumn Header="Count" Width ="*" Binding="{Binding Count}" />
                                </DataGrid.Columns>
                            </DataGrid>
                        </Grid>
                        <Grid Grid.Column="1">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="53*"/>
                                <RowDefinition Height="108*"/>
                            </Grid.RowDefinitions>
                            <DataGrid Name="t_counters_stato" AutoGenerateColumns="False" IsReadOnly="True" Margin="5" Grid.RowSpan="2">
                                <DataGrid.Columns>
                                    <DataGridTextColumn Header="Stato Report" Binding="{Binding StatoReport}" />
                                    <DataGridTextColumn Header="Rete" Binding="{Binding Rete}" />
                                    <DataGridTextColumn Header="Count" Width ="*" Binding="{Binding Count}" />
                                </DataGrid.Columns>
                            </DataGrid>
                        </Grid>
                        <Grid Grid.Column="2" VerticalAlignment="Top">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="auto"/>
                                <RowDefinition Height="auto"/>
                            </Grid.RowDefinitions>
                            <Grid Grid.Row="0" Margin="5">
                                <ProgressBar Name="statisticsProgressBar" Height="20" Minimum="0" Maximum="100" Value="0" />
                                <Label Name="progressBarPercentage" HorizontalAlignment="Center" Content="0%"/>
                            </Grid>
                            <Grid Grid.Row="1" Margin="5">
                                <Viewbox Name="SpinningCircle" Width="50" Visibility="Hidden" Height="50" 
                                    HorizontalAlignment="Center"
                                    VerticalAlignment="Center">
                                    <dc:BusyIndicator />
                                </Viewbox>

                            </Grid>
                        </Grid>
                    </Grid>
                </Grid>
            </TabItem>
            <TabItem Header="FTP Transfer">
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition MinHeight="170px" Height="*"/>
                    </Grid.RowDefinitions>
                    <Grid VerticalAlignment="Center" Grid.Row="0">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="2*"/>
                            <ColumnDefinition Width="7*"/>
                        </Grid.ColumnDefinitions>
                        <Grid Grid.Column="0">
                            <Label Content="Ftp server location:" Margin="5"/>
                        </Grid>
                        <Grid Grid.Column="1">
                            <TextBox x:Name="t_ftpServer" PreviewTextInput="t_PreviewTextInputString" VerticalContentAlignment="Center" HorizontalAlignment="Stretch" Height="23" TextWrapping="Wrap" Text="TextBox" Margin="5" Width="410"/>
                        </Grid>
                    </Grid>
                    <Grid VerticalAlignment="Center" Grid.Row="1">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="7*"/>
                            <ColumnDefinition Width="20*"/>
                            <ColumnDefinition Width="10*"/>
                            <ColumnDefinition Width="20*"/>
                            <ColumnDefinition Width="15*"/>
                        </Grid.ColumnDefinitions>
                        <Grid Grid.Column="0">
                            <Label Content="Login:" Margin="5"/>
                        </Grid>
                        <Grid Grid.Column="1">
                            <TextBox x:Name="t_ftpUser" PreviewTextInput="t_PreviewTextInputString" VerticalContentAlignment="Center" HorizontalAlignment="Stretch" Height="23" Margin="5"/>
                        </Grid>
                        <Grid Grid.Column="2">
                            <Label Content="Password:" Margin="5"/>
                        </Grid>
                        <Grid Grid.Column="3">
                            <PasswordBox x:Name="t_ftpPassword" PreviewTextInput="t_PreviewTextInputString" VerticalContentAlignment="Center" Margin="5"  Height="23"/>
                        </Grid>
                        <Grid Grid.Column="4">
                            <Button x:Name="button1" VerticalContentAlignment="Center" Content="Start sending" HorizontalAlignment="Right" Margin="0,6,5.4,0" Width="97" Height="23" Click="button1_Click" VerticalAlignment="Top"/>
                        </Grid>
                    </Grid>
                    <Grid VerticalAlignment="Center" Grid.Row="2"/>
                    <Grid Grid.Row="3">
                        <Border BorderThickness="1" BorderBrush="Black" Margin="5">
                            <TextBlock x:Name="t_ftpLog" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Padding="5" TextWrapping="Wrap" Text="sftp log" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/>
                        </Border>
                    </Grid>
                </Grid>
            </TabItem>
            <TabItem Header="Advanced Settings">                   
                    <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="35*"/>
                        <ColumnDefinition Width="70*"/>
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>                   
                    <Grid Grid.Column="0" Grid.Row="0">
                        <Label Content="Database for processing:" Margin="5"/>
                    </Grid>
                    <Grid Grid.Column="1" Grid.Row="0">
                        <TextBox x:Name="t_connectionString" PreviewTextInput="t_PreviewTextInputString" VerticalContentAlignment="Center" HorizontalAlignment="Stretch"  Margin="5" VerticalAlignment="Top"  Height="23"/>
                    </Grid>
                    <Grid Grid.Column="0" Grid.Row="1">
                        <Label Content="Database for report manager:" Margin="5"/>
                    </Grid>
                    <Grid Grid.Column="1" Grid.Row="1">
                        <TextBox x:Name="t_connectionString_reportManager" PreviewTextInput="t_PreviewTextInputString" VerticalContentAlignment="Center" HorizontalAlignment="Stretch"  Margin="5" VerticalAlignment="Top"  Height="23"/>
                    </Grid>
                    <Grid Grid.Column="0" Grid.Row="2">
                        <Label Content="Query Contratti:" Margin="5"/>
                    </Grid>
                    <Grid Grid.Column="1" Grid.Row="2">
                        <TextBox x:Name="t_qContratti" PreviewTextInput="t_PreviewTextInputString" VerticalContentAlignment="Center" HorizontalAlignment="Stretch" Height="23" Margin="5" Text="TextBox"/>
                    </Grid>
                    <Grid Grid.Column="0" Grid.Row="3">
                        <Label Content="Save PDF to DISK:" Margin="5"/>
                    </Grid>
                    <Grid Grid.Column="1" Grid.Row="3">
                        <ComboBox x:Name="t_saveToDisk" VerticalContentAlignment="Center" HorizontalAlignment="Left" Margin="5" Height="23" Width="55" SelectionChanged="t_saveToDisk_SelectionChanged_1"/>
                    </Grid>
                    <Grid Grid.Column="0" Grid.Row="4">
                        <Label Content="PDF Process Folder:" Margin="5"/>
                    </Grid>
                    <Grid Grid.Column="1" Grid.Row="4">
                        <TextBox x:Name="t_pdfProcessFolder" PreviewTextInput="t_PreviewTextInputString" VerticalContentAlignment="Center" HorizontalAlignment="Stretch" Height="23" Margin="5" TextWrapping="Wrap" Text="TextBox" />
                    </Grid>
                    <Grid Grid.Column="0" Grid.Row="5">
                        <Label Content="PDF Output Folder:" Margin="5"/>
                    </Grid>
                    <Grid Grid.Column="1" Grid.Row="5">
                        <TextBox x:Name="t_pdfOutputFolder" PreviewTextInput="t_PreviewTextInputString" VerticalContentAlignment="Center" HorizontalAlignment="Stretch" Height="23" Margin="5" TextWrapping="Wrap" Text="TextBox"/>
                    </Grid>
                    <Grid Grid.Column="0" Grid.Row="6">
                        <Label Content="Zip Folder:" Margin="5"/>
                    </Grid>
                    <Grid Grid.Column="1" Grid.Row="6">
                        <TextBox x:Name="t_zipFolder" PreviewTextInput="t_PreviewTextInputString" VerticalContentAlignment="Center" HorizontalAlignment="Stretch" Height="23" Margin="5" TextWrapping="Wrap" Text="TextBox"/>
                    </Grid>
                    <Grid Grid.Column="0" Grid.Row="7">
                        <Label Content="Zip Backup Folder:" Margin="5"/>
                    </Grid>
                    <Grid Grid.Column="1" Grid.Row="7">
                        <TextBox x:Name="t_zipBackupFolder" PreviewTextInput="t_PreviewTextInputString" VerticalContentAlignment="Center" HorizontalAlignment="Stretch" Height="23" Margin="5" TextWrapping="Wrap" Text="TextBox"/>
                    </Grid>                    
                    <Grid Grid.Column="0" Grid.Row="8">
                        <Label Content="Sql commands timeout (s):" Margin="5"/>
                    </Grid>
                    <Grid Grid.Column="1" Grid.Row="8">
                        <TextBox x:Name="t_sqlCommandTimeout" DataObject.Pasting="TextBoxPasting" PreviewTextInput="t_PreviewTextInputInteger" VerticalContentAlignment="Center" HorizontalAlignment="Stretch" Height="23" Margin="5" TextWrapping="Wrap" Text="TextBox"/>
                    </Grid>
                </Grid>
            </TabItem>
        </TabControl>
        <Grid Grid.Row="1">
            <Grid.RowDefinitions>
                <RowDefinition Height="28"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <Grid Grid.Row="0"  Height="28" HorizontalAlignment="Center" VerticalAlignment="Top">
                <Label Foreground="Red" Content="You must save the config in order for any change to take place."/>
            </Grid>
            <Grid Grid.Row="1" >
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="240"/>
                </Grid.ColumnDefinitions>
                <Grid Grid.Column="0">
                    <TextBlock Margin="5" Name="ConfigPathLabel" VerticalAlignment="Center" TextWrapping="Wrap"/>
                </Grid>
                <StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Right">
                    <Button x:Name="buttonLoadConfig" Content="Load configuration" HorizontalAlignment="Right" Height="23"  VerticalAlignment="Center" Width="111" Margin="5" Click="buttonLoadConfig_Click"/>
                    <Button x:Name="buttonSaveConfig" Content="Save configuration" HorizontalAlignment="Right" Height="23"  VerticalAlignment="Center" Width="111" Margin="5" Click="buttonSaveConfig_Click"/>
                </StackPanel>
            </Grid>
        </Grid>
    </Grid>
</Window>