2018-11-18 18:49:40 +01:00
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using Windows.UI.Xaml;
|
|
|
|
|
using Windows.UI.Xaml.Controls;
|
|
|
|
|
using Windows.UI.Xaml.Navigation;
|
2018-12-22 15:52:17 +01:00
|
|
|
|
using HospitalServerManager.InterfacesAndEnums;
|
2018-12-29 11:58:25 +01:00
|
|
|
|
using HospitalServerManager.ViewModel;
|
2018-11-18 18:49:40 +01:00
|
|
|
|
|
|
|
|
|
//Szablon elementu Pusta strona jest udokumentowany na stronie https://go.microsoft.com/fwlink/?LinkId=234238
|
|
|
|
|
|
|
|
|
|
namespace HospitalServerManager.View
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Pusta strona, która może być używana samodzielnie lub do której można nawigować wewnątrz ramki.
|
|
|
|
|
/// </summary>
|
2018-12-29 11:58:25 +01:00
|
|
|
|
public sealed partial class PatientsPage : Page , IPageNavigateable
|
2018-11-18 18:49:40 +01:00
|
|
|
|
{
|
2018-12-22 15:52:17 +01:00
|
|
|
|
//public ObservableCollection<ISqlTableModelable> ModelCollection { get => RosterViewModel.ModelsCollection; }
|
|
|
|
|
private ViewModel.Controllers.DatabaseReader databaseReader;
|
2018-11-18 18:49:40 +01:00
|
|
|
|
public PatientsPage()
|
|
|
|
|
{
|
|
|
|
|
this.InitializeComponent();
|
2018-12-22 15:52:17 +01:00
|
|
|
|
}
|
|
|
|
|
|
2018-12-29 11:58:25 +01:00
|
|
|
|
private async void NewRecord()
|
|
|
|
|
{
|
|
|
|
|
Dictionary<int, string> typesOfColumnDictionary = (Dictionary<int,string>) RosterViewModel.ColumnTypes;
|
|
|
|
|
NewRecordDialog createDialog = new NewRecordDialog(RosterViewModel.ColumnNames, typesOfColumnDictionary,
|
|
|
|
|
RosterViewModel.EnumTypes);
|
2019-01-07 19:49:48 +01:00
|
|
|
|
createDialog.Width = Window.Current.Bounds.Width;
|
|
|
|
|
createDialog.Height = Window.Current.Bounds.Height;
|
2018-12-29 11:58:25 +01:00
|
|
|
|
ContentDialogResult dialogResult = await createDialog.ShowAsync();
|
|
|
|
|
if (dialogResult == ContentDialogResult.Primary && createDialog.ValuesOfNewObject.Any())
|
|
|
|
|
{
|
|
|
|
|
List<string> valuesList = createDialog.ValuesOfNewObject;
|
2019-01-11 22:32:18 +01:00
|
|
|
|
await RosterViewModel.CreateRecordAsync("Pacjenci", valuesList);
|
2018-12-29 11:58:25 +01:00
|
|
|
|
}
|
|
|
|
|
}
|
2019-01-07 19:49:48 +01:00
|
|
|
|
private async void EditRecord()
|
|
|
|
|
{
|
|
|
|
|
PatientViewModel patient = databaseView.SelectedItem as PatientViewModel;
|
|
|
|
|
string textToTitle = "Edytowany pacjent: " + patient.Name + " " + patient.Surname;
|
|
|
|
|
EditRecordDialog dialog = new EditRecordDialog(RosterViewModel.ColumnNames, RosterViewModel.ColumnTypes, textToTitle,
|
|
|
|
|
RosterViewModel.EnumTypes);
|
|
|
|
|
ContentDialogResult dialogResult = await dialog.ShowAsync();
|
|
|
|
|
if (dialogResult == ContentDialogResult.Primary && !string.IsNullOrEmpty(dialog.Result))
|
|
|
|
|
{
|
|
|
|
|
string result = dialog.Result;
|
|
|
|
|
string fieldToEdit = dialog.FieldToUpdate;
|
2019-01-11 22:32:18 +01:00
|
|
|
|
await RosterViewModel.UpdateRecordAsync("Pacjenci", patient, fieldToEdit, result);
|
2019-01-07 19:49:48 +01:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public void Sort(string orderBy, string criterium)
|
|
|
|
|
{
|
|
|
|
|
RosterViewModel.Sort(typeof(PatientViewModel), "Pacjenci", orderBy, criterium);
|
|
|
|
|
}
|
|
|
|
|
public void Search(string orderBy, string criterium, string searchIn, string searchValue)
|
|
|
|
|
{
|
|
|
|
|
RosterViewModel.Search(typeof(PatientViewModel), "Pacjenci", orderBy, criterium, searchIn, searchValue);
|
|
|
|
|
}
|
2018-12-29 11:58:25 +01:00
|
|
|
|
#region Events
|
|
|
|
|
|
|
|
|
|
private void SortComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
2018-12-22 15:52:17 +01:00
|
|
|
|
{
|
2019-01-07 19:49:48 +01:00
|
|
|
|
string criterium;
|
|
|
|
|
if ((bool)radioBtn1.IsChecked)
|
|
|
|
|
criterium = "asc";
|
|
|
|
|
else
|
|
|
|
|
criterium = "desc";
|
|
|
|
|
Sort(sortComboBox.SelectedItem.ToString(), criterium);
|
|
|
|
|
}
|
2018-12-22 15:52:17 +01:00
|
|
|
|
|
|
|
|
|
private void RadionBtn_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
2019-01-07 19:49:48 +01:00
|
|
|
|
string criterium;
|
|
|
|
|
if ((bool)radioBtn1.IsChecked)
|
|
|
|
|
criterium = "asc";
|
|
|
|
|
else
|
|
|
|
|
criterium = "desc";
|
|
|
|
|
Sort(sortComboBox.SelectedItem.ToString(), criterium);
|
|
|
|
|
}
|
2018-12-22 15:52:17 +01:00
|
|
|
|
|
|
|
|
|
private void SearchButton_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
2019-01-07 19:49:48 +01:00
|
|
|
|
if (searchBox.Text == string.Empty)
|
|
|
|
|
return;
|
|
|
|
|
string criterium;
|
|
|
|
|
if ((bool)radioBtn1.IsChecked)
|
|
|
|
|
criterium = "asc";
|
|
|
|
|
else
|
|
|
|
|
criterium = "desc";
|
|
|
|
|
string searchIn = lookInComboBox.SelectedItem.ToString();
|
|
|
|
|
string searchedExpression = searchBox.Text;
|
|
|
|
|
Search(sortComboBox.SelectedItem.ToString(), criterium, searchIn, searchedExpression);
|
2018-12-22 15:52:17 +01:00
|
|
|
|
}
|
|
|
|
|
|
2019-01-07 19:49:48 +01:00
|
|
|
|
private async void ResetButton_Click(object sender, RoutedEventArgs e)
|
2018-12-22 15:52:17 +01:00
|
|
|
|
{
|
2019-01-11 22:32:18 +01:00
|
|
|
|
await RosterViewModel.ReadAsync(typeof(PatientViewModel), "Pacjenci");
|
2019-01-07 19:49:48 +01:00
|
|
|
|
}
|
2018-12-22 15:52:17 +01:00
|
|
|
|
|
2019-01-11 22:32:18 +01:00
|
|
|
|
private async void DeleteButton_Click(object sender, RoutedEventArgs e)
|
2018-12-22 15:52:17 +01:00
|
|
|
|
{
|
2019-01-07 19:49:48 +01:00
|
|
|
|
if (databaseView.SelectedItem != null)
|
|
|
|
|
{
|
|
|
|
|
var patient = databaseView.SelectedItem as IPrimaryKeyGetable;
|
2019-01-11 22:32:18 +01:00
|
|
|
|
await RosterViewModel.DeleteRecordAsync("Pacjenci", patient);
|
2019-01-07 19:49:48 +01:00
|
|
|
|
}
|
|
|
|
|
}
|
2018-12-22 15:52:17 +01:00
|
|
|
|
|
|
|
|
|
private void EditButton_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
2019-01-07 19:49:48 +01:00
|
|
|
|
if (databaseView.SelectedItem != null)
|
|
|
|
|
EditRecord();
|
|
|
|
|
}
|
2018-12-22 15:52:17 +01:00
|
|
|
|
|
|
|
|
|
private void NewRecordButton_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
2018-12-29 11:58:25 +01:00
|
|
|
|
NewRecord();
|
2018-12-22 15:52:17 +01:00
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
2019-01-07 19:49:48 +01:00
|
|
|
|
protected async override void OnNavigatedTo(NavigationEventArgs e)
|
2018-12-22 15:52:17 +01:00
|
|
|
|
{
|
2019-01-07 19:49:48 +01:00
|
|
|
|
//await RosterViewModel.Read(typeof(PatientViewModel), "Pacjenci");
|
2019-01-11 22:32:18 +01:00
|
|
|
|
await RosterViewModel.InitializeViewModelsAsync("Pacjenci");
|
2019-01-07 19:49:48 +01:00
|
|
|
|
databaseView.ItemsSource = RosterViewModel.ModelsCollection;
|
|
|
|
|
lookInComboBox.ItemsSource = sortComboBox.ItemsSource = RosterViewModel.ColumnNames;
|
|
|
|
|
lookInComboBox.SelectedIndex = sortComboBox.SelectedIndex = 0;
|
|
|
|
|
}
|
2018-12-22 15:52:17 +01:00
|
|
|
|
|
|
|
|
|
private async void Page_Loaded(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
2019-01-07 19:49:48 +01:00
|
|
|
|
/*databaseView.ItemsSource = RosterViewModel.ModelsCollection;
|
|
|
|
|
lookInComboBox.ItemsSource = sortComboBox.ItemsSource = RosterViewModel.ColumnNames;
|
|
|
|
|
lookInComboBox.SelectedIndex = sortComboBox.SelectedIndex = 0;*/
|
2018-12-22 15:52:17 +01:00
|
|
|
|
}
|
|
|
|
|
|
2018-12-29 11:58:25 +01:00
|
|
|
|
public void UnloadPage()
|
|
|
|
|
{
|
|
|
|
|
;
|
|
|
|
|
}
|
2019-01-11 22:32:18 +01:00
|
|
|
|
|
|
|
|
|
private void SendEmailToSelected_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
RosterViewModel.SendEmailAsync(databaseView.SelectedItem as PatientViewModel);
|
|
|
|
|
}
|
2018-12-29 11:58:25 +01:00
|
|
|
|
}
|
2018-11-18 18:49:40 +01:00
|
|
|
|
}
|