1
0
mirror of https://github.com/SirLecram/HospitalServerManager synced 2024-11-29 09:40:27 +01:00

Basic function development

A few models has been improved;
New pages has been added; NewRecordDialog has been added;
ViewNavigator was created; A type providers has been added; new interfaces has been added; New validator, which checks if interface is implemented has been added;
The application can read data and add new record by API now.
This commit is contained in:
Marcel Grześ 2018-12-29 11:58:25 +01:00
parent 52f1c1e71f
commit 069f0612da
83 changed files with 2367 additions and 215 deletions

Binary file not shown.

View File

@ -99,6 +99,8 @@
<Compile Include="InterfacesAndEnums\Extensions.cs" />
<Compile Include="InterfacesAndEnums\Interfaces.cs" />
<Compile Include="Model\Basic\Admission.cs" />
<Compile Include="Model\Controllers\ApiCommandProvider.cs" />
<Compile Include="Model\Controllers\WebService.cs" />
<Compile Include="Model\RangeObservableCollection.cs" />
<Compile Include="ViewModel\AdmissionViewModel.cs" />
<Compile Include="ViewModel\Controllers\DatabaseReader.cs" />
@ -110,18 +112,25 @@
<Compile Include="Model\Basic\SqlTable.cs" />
<Compile Include="Model\Basic\Surgery.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ViewModel\Controllers\ViewNavigator.cs" />
<Compile Include="ViewModel\DataProvider\NavigationPageTypeProvider.cs" />
<Compile Include="ViewModel\DataProvider\TypeProvider.cs" />
<Compile Include="ViewModel\DiagnosisViewModel.cs" />
<Compile Include="ViewModel\DoctorViewModel.cs" />
<Compile Include="ViewModel\PatientViewModel.cs" />
<Compile Include="ViewModel\RoomViewModel.cs" />
<Compile Include="ViewModel\RosterViewModel.cs" />
<Compile Include="ViewModel\SurgeryViewModel.cs" />
<Compile Include="ViewModel\Validators\InterfaceImplementValidator.cs" />
<Compile Include="View\DoctorsPage.xaml.cs">
<DependentUpon>DoctorsPage.xaml</DependentUpon>
</Compile>
<Compile Include="View\MainFrameView.xaml.cs">
<DependentUpon>MainFrameView.xaml</DependentUpon>
</Compile>
<Compile Include="View\NewRecordDialog.xaml.cs">
<DependentUpon>NewRecordDialog.xaml</DependentUpon>
</Compile>
<Compile Include="View\PatientsPage.xaml.cs">
<DependentUpon>PatientsPage.xaml</DependentUpon>
</Compile>
@ -161,6 +170,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\NewRecordDialog.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\PatientsPage.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@ -178,6 +191,9 @@
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform">
<Version>6.1.9</Version>
</PackageReference>
<PackageReference Include="Newtonsoft.Json">
<Version>12.0.1</Version>
</PackageReference>
</ItemGroup>
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' &lt; '14.0' ">
<VisualStudioVersion>14.0</VisualStudioVersion>

View File

@ -61,7 +61,7 @@ namespace HospitalServerManager.InterfacesAndEnums
Stable,
[Description("ZAGROŻONY")]
Endangered,
[Description("NULL")]
[Description("null")]
None,
}

View File

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windows.UI.Xaml.Controls;
namespace HospitalServerManager.InterfacesAndEnums
{
@ -15,4 +16,37 @@ namespace HospitalServerManager.InterfacesAndEnums
string GetPrimaryKey();
string GetPrimaryKeyName();
}
public interface INavigator
{
bool IsParameterSet { get; }
void SetParameter(object parameter);
void RemoveParameters();
IPageNavigateable ChangeFrame(Type typeOfPage, Frame navigationFrame);
}
public interface IPageNavigateable
{
void UnloadPage();
}
public interface IValidateIfInterfaceIsImplemented
{
/// <summary>
/// Validates if type implement interface. TypeProvider have to be initialized before use this overloaded method.
/// </summary>
/// <param name="typeName"></param>
/// <param name="interfaceNameToCheck"></param>
/// <returns></returns>
bool ValidateIfTypeImplementInterface(string typeName, string interfaceNameToCheck);
bool ValidateIfTypeImplementInterface(Type typeToCheck, string interfaceNameToCheck);
bool ValidateIfTypeImplementInterface(Type typeToCheck, Type interfaceToCheck);
}
public interface IProvideType
{
void RegisterType(Type typeToRegister);
Type GetTypeFromString(string typeName);
}
public interface IProvideDBInfo
{
IEnumerable<string> GetColumnNames(string tableName);
IDictionary<int, string> GetColumnTypesNames(string tableName);
}
}

View File

@ -4,6 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HospitalServerManager.InterfacesAndEnums;
using Newtonsoft.Json;
namespace HospitalServerManager.Model.Basic
{
@ -19,16 +20,28 @@ namespace HospitalServerManager.Model.Basic
protected Doctor() : base()
{
}
public Doctor(int primaryKey, string name, string surname, AcademicDegrees academicDegree,
MedicalSpecializations medicalSpecialization, DateTime dateOfEmployment, JobPositions jobPosition)
: base(primaryKey.ToString(), "Id_Lekarza", new List<string> { })
public Doctor(int doctorID, string name, string surname, AcademicDegrees academicDegree,
MedicalSpecializations specialization, DateTime dateOfEmployment, JobPositions jobPosition)
: base(doctorID.ToString(), "Id_Lekarza", new List<string> { })
{
Name = name;
Surname = surname;
_AcademicDegree = academicDegree;
_MedicalSpecialization = medicalSpecialization;
_MedicalSpecialization = specialization;
DateOfEmployment = dateOfEmployment;
_JobPosition = jobPosition;
}
[JsonConstructor]
protected Doctor(int doctorID, string name, string surname, string academicDegree,
string specialization, DateTime dateOfEmployment, string jobPosition)
: base(doctorID.ToString(), "Id_Lekarza", new List<string> { })
{
Name = name;
Surname = surname;
_AcademicDegree = academicDegree.GetEnumFromDescription<AcademicDegrees>();
_MedicalSpecialization = specialization.GetEnumFromDescription<MedicalSpecializations>();
DateOfEmployment = dateOfEmployment;
_JobPosition = jobPosition.GetEnumFromDescription<JobPositions>();
}
/// <summary>
/// List have to be in right order (doctor id, name, surname, academic degree, medical specialization,

View File

@ -4,6 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HospitalServerManager.InterfacesAndEnums;
using Newtonsoft.Json;
namespace HospitalServerManager.Model.Basic
{
@ -18,19 +19,31 @@ namespace HospitalServerManager.Model.Basic
protected Patient() : base()
{
}
public Patient(string primaryKey, string surname, string name, DateTime birthDate, PatientState patientState,
Sex patientSex) : base(primaryKey, "PESEL", new List<string>())
[JsonConstructor]
protected Patient(string pesel, string name, string surname, DateTime birthDate, string patientState,
string patientSex) : base(pesel, "PESEL", new List<string>())
{
if (primaryKey.Length < 11 || primaryKey.Length > 11)
if (pesel.Length < 11 || pesel.Length > 11)
throw new FormatException("PESEL musi mieć 11 cyfr");
PrimaryKey = primaryKey;
//PrimaryKey = pesel;
Surname = surname;
Name = name;
BirthDate = birthDate;
PatientState = patientState.GetEnumFromDescription<PatientState>();
PatientSex = patientSex.GetEnumFromDescription<Sex>();
}
public Patient(string pesel, string name, string surname, DateTime birthDate, PatientState patientState,
Sex patientSex) : base(pesel, "PESEL", new List<string>())
{
if (pesel.Length < 11 || pesel.Length > 11)
throw new FormatException("PESEL musi mieć 11 cyfr");
//PrimaryKey = pesel;
Surname = surname;
Name = name;
BirthDate = birthDate;
PatientState = patientState;
PatientSex = patientSex;
}
/// <summary>
}/// <summary>
/// List have to be in right order (pesel, surname, name, birth date, patient state, patient sex).
/// </summary>
/// <param name="listOfValues"></param>

View File

@ -4,6 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HospitalServerManager.InterfacesAndEnums;
using HospitalServerManager.Model.Controllers;
namespace HospitalServerManager.Model.Basic
{

View File

@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HospitalServerManager.Model.Controllers
{
internal static class ApiCommandProvider
{
public static string GetRecordHttpRequest(string tableName)
{
return @"/getfromdb/" + tableName;
}
public static string GetColumnNamesHttpRequest(string tableName)
{
return @"/getcolumnnames/" + tableName;
}
public static string GetColumnTypesHttpRequest(string tableName)
{
return @"/getcolumntypes/" + tableName;
}
public static string CreateNewRecordAsync(string tableName, List<string> valuesList)
{
string createRequest = "/insertrec/" + tableName + "/nr/" + valuesList.Count() + "/pk/" + valuesList[0];
for(int i = 1; i<8; i++)
{
var maxIndex = valuesList.Count();
if (i < maxIndex)
createRequest += "/" + valuesList[i];
else
createRequest += "/_";
}
return createRequest;
}
}
}

View File

@ -0,0 +1,113 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using HospitalServerManager.InterfacesAndEnums;
using Newtonsoft.Json;
using System.IO;
namespace HospitalServerManager.Model.Controllers
{
class WebService
{
private HttpClient httpClient;
private IProvideDBInfo databaseInfoProvider { get; }
public WebService(HttpClient httpClient)
{
this.httpClient = httpClient;
InitializeHttpClient(new Uri("http://localhost:1433/"));
}
public WebService(Uri baseAdress)
{
httpClient = new HttpClient(new HttpClientHandler(), false);
InitializeHttpClient(baseAdress);
}
private void InitializeHttpClient(Uri baseAdress)
{
httpClient.BaseAddress = baseAdress;
httpClient.DefaultRequestHeaders.Clear();
//httpClient.DefaultRequestHeaders.Add("JSON", new MediaTypeWithQualityHeaderValue("application/json"));
}
public async Task<IEnumerable<T>> GetRecordAsync<T>(string tableName)
{
// TODO: SPRAWDZIC CZY IMPLEMENTUJE INTERFACE!!
List<ISqlTableModelable> modelsList = new List<ISqlTableModelable>();
//using (var client = httpClient)
using (var message = new HttpRequestMessage(HttpMethod.Get, ApiCommandProvider.GetRecordHttpRequest(tableName)))
using (var response = await httpClient.SendAsync(message))
{
response.EnsureSuccessStatusCode();
var stream = await response.Content.ReadAsStreamAsync();
return DeserializeJsonFromStream<IEnumerable<T>>(stream);
//return JsonConvert.DeserializeObject<List<T>>(content);
}
}
public async Task<IEnumerable<string>> GetColumnNamesAsync(string tableName)
{
using (var message = new HttpRequestMessage(HttpMethod.Get, ApiCommandProvider.GetColumnNamesHttpRequest(tableName)))
using (var response = await httpClient.SendAsync(message))
{
response.EnsureSuccessStatusCode();
var columns = await response.Content.ReadAsStringAsync();
var columnNames = columns.Split(".");
var x = columnNames.ToList();
x.RemoveAt(x.Count - 1);
return x;
}
}
public async Task<IDictionary<int,string>> GetColumnTypesAsync(string tableName)
{
using (var message = new HttpRequestMessage(HttpMethod.Get, ApiCommandProvider.GetColumnTypesHttpRequest(tableName)))
using (var response = await httpClient.SendAsync(message))
{
response.EnsureSuccessStatusCode();
var columns = await response.Content.ReadAsStringAsync();
var columnTypes = columns.Split(".");
var x = columnTypes.ToList();
x.RemoveAt(x.Count - 1);
var dictionary = new Dictionary<int, string>();
for(int i = 0; i<x.Count; i++)
{
dictionary.Add(i, x[i]);
}
return dictionary;
}
}
public async Task<bool> CreateNewRecordAsync(string tableName, IEnumerable<string> valuesList)
{
using (var message = new HttpRequestMessage(HttpMethod.Get, ApiCommandProvider.CreateNewRecordAsync(tableName, valuesList.ToList())))
using (var response = await httpClient.SendAsync(message))
{
response.EnsureSuccessStatusCode();
return true;
}
}
private static T DeserializeJsonFromStream<T>(Stream stream)
{
if (stream == null || stream.CanRead == false)
return default(T);
using (var sr = new StreamReader(stream))
using (var textReader = new JsonTextReader(sr))
{
var js = new JsonSerializer();
var searchResult = js.Deserialize<T>(textReader);
return searchResult;
}
}
private string GetRecordHttpRequest(string tableName)
{
return @"/getfromdb/" + tableName;
}
}
}

View File

@ -1,23 +1,77 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using HospitalServerManager.InterfacesAndEnums;
using HospitalServerManager.Model.Basic;
using HospitalServerManager.Model.Controllers;
namespace HospitalServerManager.Model
{
class ModelRoster
{
private List<ISqlTableModelable> _modelsList = new List<ISqlTableModelable>();
private WebService webService = new WebService(new Uri("http://localhost:8080/"));
public string ActualTableName { get; private set; }
public IEnumerable<string> ColumnNames { get; private set; }
public IDictionary<int, string> ColumnTypes { get; private set; }
public Dictionary<string, Type> EnumTypes { get; protected set; }
public IEnumerable<ISqlTableModelable> ModelsEnumerable { get => _modelsList; }
//private Controllers.DatabaseReader DatabaseReader = new Controllers.DatabaseReader();
public ModelRoster()
{
ActualTableName = string.Empty;
ColumnNames = new List<string>();
EnumTypes = CreateEnumTypesDictionary();
}
public async Task ReadModels(string tableName)
{
_modelsList.Clear();
if(ColumnNames.Any())
ColumnNames.ToList().Clear();
/*MethodInfo method = typeof(WebService).GetMethod("GetRecordAsync");
method = method.MakeGenericMethod(type);
var resp = method.Invoke(webService, new[] { "Pacjenci" });*/
ActualTableName = tableName;
ColumnNames = await GetColumnNames();
ColumnTypes = await GetColumnTypes();
IEnumerable<ISqlTableModelable> response = new List<ISqlTableModelable>();
if(tableName == "Pacjenci") response = await webService.GetRecordAsync<Patient>(tableName);
else if(tableName == "Lekarze") response = await webService.GetRecordAsync<Doctor>(tableName);
_modelsList.AddRange(response);
//ColumnNames = await GetColumnNames();
}
public async Task<IEnumerable<string>> GetColumnNames()
{
if (ActualTableName == string.Empty)
throw new Exception();
return await webService.GetColumnNamesAsync(ActualTableName);
}
public async Task<IDictionary<int, string>> GetColumnTypes()
{
if (ActualTableName == string.Empty)
throw new Exception();
return await webService.GetColumnTypesAsync(ActualTableName);
}
public async void CreateRecord(string tableName, IEnumerable<string> valueList)
{
await webService.CreateNewRecordAsync(tableName, valueList);
}
private Dictionary<string, Type> CreateEnumTypesDictionary()
{
// TODO: Uzupełniać w miare dodawania tabel!
Dictionary<string, Type> newDictionary = new Dictionary<string, Type>();
newDictionary.Add("Plec", typeof(Sex));
newDictionary.Add("Stan", typeof(PatientState));
newDictionary.Add("Stopien_naukowy", typeof(AcademicDegrees));
newDictionary.Add("Specjalizacja", typeof(MedicalSpecializations));
newDictionary.Add("Stanowisko", typeof(JobPositions));
return newDictionary;
}
public void AddRange(IEnumerable<ISqlTableModelable> modelsList)
{
_modelsList.Clear();

View File

@ -7,7 +7,7 @@
xmlns:viewmodel="using:HospitalServerManager.ViewModel"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" Loaded="Page_Loaded">
<Page.Resources>
<viewmodel:RosterViewModel x:Name="RosterViewModel"/>
</Page.Resources>
@ -28,7 +28,7 @@
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Text="Pacjenci" HorizontalAlignment="Left" Margin="15, 5, 0, 0" FontSize="20"
<TextBlock Text="Lekarze" HorizontalAlignment="Left" Margin="15, 5, 0, 0" FontSize="20"
VerticalAlignment="Top" Name="pageTitle" Grid.ColumnSpan="2"/>
<StackPanel Grid.Row="1" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Center">
<Button Content="Nowy rekord" Margin="30, 0, 30, 0" Grid.Row="1" Click="NewRecordButton_Click" Width="150"/>
@ -105,20 +105,22 @@
<DataTemplate >
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.15*"/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Text="PESEL" Margin="8,0" Foreground="DarkRed" Grid.Column="0"/>
<TextBlock Text="Id" Margin="8,0" Foreground="DarkRed" Grid.Column="0"/>
<TextBlock Text="Imię" Foreground="DarkRed" Grid.Column="1"/>
<TextBlock Text="Nazwisko" Foreground="DarkRed" Grid.Column="2"/>
<TextBlock Text="Data urodzenia" Foreground="DarkRed" Grid.Column="3"/>
<TextBlock Text="Stan" Foreground="DarkRed" Grid.Column="4"/>
<TextBlock Text="Płec" Foreground="DarkRed" Grid.Column="5"/>
<TextBlock Text="Stopień naukowy" Foreground="DarkRed" Grid.Column="3"/>
<TextBlock Text="Specjalizacja" Foreground="DarkRed" Grid.Column="4"/>
<TextBlock Text="Data zatrudnienia" Foreground="DarkRed" Grid.Column="5"/>
<TextBlock Text="Stanowisko" Foreground="DarkRed" Grid.Column="6"/>
</Grid>
</DataTemplate>
</ListView.HeaderTemplate>
@ -134,31 +136,34 @@
<ListView.ItemTemplate>
<DataTemplate x:DataType="viewmodel:PatientViewModel">
<DataTemplate x:DataType="viewmodel:DoctorViewModel">
<Grid Name="valueStoreGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.15*"/>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Name="ItemId"
Text="{x:Bind PrimaryKey}"
Grid.Column="0" />
Grid.Column="0" FontSize="12"/>
<TextBlock Name="ItemName"
Text="{x:Bind Surname}"
Grid.Column="1"/>
<TextBlock Text="{x:Bind Name}"
Grid.Column="2"/>
<TextBlock Text="{x:Bind BirthDate}"
Grid.Column="3"/>
<TextBlock Text="{x:Bind PatientState}"
Grid.Column="4"/>
<TextBlock Text="{x:Bind PatientSex}"
Grid.Column="5"/>
Text="{x:Bind Name}"
Grid.Column="1" FontSize="12"/>
<TextBlock Text="{x:Bind Surname}"
Grid.Column="2" FontSize="12"/>
<TextBlock Text="{x:Bind AdacemicDegree}"
Grid.Column="3" FontSize="12"/>
<TextBlock Text="{x:Bind MedicalSpecialization}"
Grid.Column="4" FontSize="12"/>
<TextBlock Text="{x:Bind EmploymentDate}"
Grid.Column="5" FontSize="12"/>
<TextBlock Text="{x:Bind JobPosition}"
Grid.Column="6" FontSize="12"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>

View File

@ -1,4 +1,6 @@
using System;
using HospitalServerManager.InterfacesAndEnums;
using HospitalServerManager.ViewModel;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
@ -20,7 +22,7 @@ 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>
public sealed partial class DoctorsPage : Page
public sealed partial class DoctorsPage : Page, IPageNavigateable
{
public DoctorsPage()
{
@ -65,16 +67,20 @@ namespace HospitalServerManager.View
}
#endregion
protected override void OnNavigatedTo(NavigationEventArgs e)
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
//databaseReader = e.Parameter as HospitalServerManager.ViewModel.Controllers.DatabaseReader;
//_IsDataLoaded = false;
// DatabaseController.OnPropertyChanged("IsDataLoaded");
await RosterViewModel.Read(typeof(DoctorViewModel), "Lekarze");
}
private async void Page_Loaded(object sender, RoutedEventArgs e)
{
databaseView.ItemsSource = RosterViewModel.ModelsCollection;
sortComboBox.ItemsSource = RosterViewModel.ColumnNames;
}
public void UnloadPage()
{
//throw new NotImplementedException();
}
}
}

View File

@ -1,4 +1,6 @@
using System;
using HospitalServerManager.InterfacesAndEnums;
using HospitalServerManager.ViewModel.Controllers;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
@ -22,15 +24,39 @@ namespace HospitalServerManager.View
/// </summary>
public sealed partial class MainFrameView : Page
{
private INavigator Navigator { get; set; }
private IProvideType TypeProvider { get; set; }
public MainFrameView()
{
this.InitializeComponent();
InitializeProperties();
}
private void AppBarButton_Click(object sender, RoutedEventArgs e)
{
mainFrame.Navigate(typeof(PatientsPage), new HospitalServerManager.ViewModel.Controllers.DatabaseReader());
string pageTypeName = (sender as AppBarButton).Tag.ToString();
Type pageType = TypeProvider.GetTypeFromString(pageTypeName);
IPageNavigateable page = Navigator.ChangeFrame(pageType, mainFrame);
//mainFrame.Navigate(typeof(PatientsPage), new HospitalServerManager.ViewModel.Controllers.DatabaseReader());
//Frame.Navigate(typeof(PatientsPage));
}
private void InitializeProperties()
{
IValidateIfInterfaceIsImplemented validator = new ViewModel.Validators.InterfaceImplementValidator();
//mainFrame.Content = new AdmissionsPage();
Navigator = new ViewNavigator(validator, /*mainFrame.Content as IPageNavigateable*/new PatientsPage());
//Navigator.SetParameter(controler);
// TODO: Dodać pozostałe Page
TypeProvider = new ViewModel.DataProvider.NavigationPageTypeProvider(validator,
new List<Type>
{
typeof(PatientsPage), typeof(DoctorsPage),
});
Type pageType = TypeProvider.GetTypeFromString("PatientsPage");
Navigator.ChangeFrame(pageType, mainFrame);
/*Type type = typeof(Model.Patient);
type.In*/
}
}
}

17
View/NewRecordDialog.xaml Normal file
View File

@ -0,0 +1,17 @@
<ContentDialog
x:Class="HospitalServerManager.View.NewRecordDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:HospitalServerManager.View"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Title="Nowy rekord"
PrimaryButtonText="Dodaj nowe"
SecondaryButtonText="Anuluj"
PrimaryButtonClick="ContentDialog_PrimaryButtonClick"
SecondaryButtonClick="ContentDialog_SecondaryButtonClick">
<Grid Name="grid">
</Grid>
</ContentDialog>

View File

@ -0,0 +1,163 @@
using HospitalServerManager.InterfacesAndEnums;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
//Szablon elementu Okno dialogowe zawartości jest udokumentowany na stronie https://go.microsoft.com/fwlink/?LinkId=234238
namespace HospitalServerManager.View
{
public sealed partial class NewRecordDialog : ContentDialog
{
private Dictionary<int, TextBlock> textBlocksDictionary = new Dictionary<int, TextBlock>();
private Dictionary<int, Control> dataControlsDictionary = new Dictionary<int, Control>();
private Dictionary<string, Type> enumTypes;
private TextBlock AlertText = new TextBlock();
private IEnumerable<string> neededValues;
public List<string> ValuesOfNewObject { get; private set; }
public NewRecordDialog(IEnumerable<string> namesOfColumn, IDictionary<int, string> typesOfColumn,
IDictionary<string, Type> enumTypes)
{
this.InitializeComponent();
this.neededValues = namesOfColumn;
ValuesOfNewObject = new List<string>();
this.enumTypes = enumTypes as Dictionary<string, Type>;
CreateInterface(namesOfColumn, typesOfColumn);
}
private void CreateInterface(IEnumerable<string> namesOfColumn, IDictionary<int, string> typesOfColumn)
{
grid.ColumnDefinitions.Add(new ColumnDefinition());
grid.ColumnDefinitions.Add(new ColumnDefinition());
grid.ColumnDefinitions.Add(new ColumnDefinition());
grid.RowSpacing = 10D;
grid.ColumnSpacing = 10D;
List<string> namesList = namesOfColumn.ToList();
// List<string> typesList = typesOfColumn.ToList();
foreach (string value in namesList)
{
int rowIndex = namesList.FindIndex(x => x == value);
Control control = new TextBox();
TextBlock descriptionTextBlock = new TextBlock();
descriptionTextBlock.HorizontalAlignment = HorizontalAlignment.Center;
descriptionTextBlock.VerticalAlignment = VerticalAlignment.Center;
descriptionTextBlock.HorizontalTextAlignment = TextAlignment.Center;
Grid.SetColumn(descriptionTextBlock, 2);
descriptionTextBlock.TextWrapping = TextWrapping.Wrap;
descriptionTextBlock.FontSize = 12;
grid.Children.Add(descriptionTextBlock);
Grid.SetRow(descriptionTextBlock, rowIndex);
// TODO: Dopisac pozostałe wyjatki dla pozostalych widokow
if (typesOfColumn[rowIndex] == "date")
descriptionTextBlock.Text = "Format: RRRR-MM-DD";
else if (value == "PESEL")
descriptionTextBlock.Text = "Format: 11 cyfr";
else if (enumTypes.Keys.ToList().Contains(value)) // TODO: Dodac pozostale kolumny z enum
{
ComboBox cBox = new ComboBox();
Type type = enumTypes[value];
List<string> list = new List<string>(Enum.GetNames(enumTypes[value]).ToList());
List<string> descriptionsList = new List<string>();
foreach (string x in list)
{
var enumX = Enum.Parse(type, x);
descriptionsList.Add((enumX as Enum).GetEnumDescription());
}
cBox.ItemsSource = descriptionsList;
cBox.SelectedIndex = 0;
control = cBox;
descriptionTextBlock.Text = "Brak dodatkowych warunków";
}
else
descriptionTextBlock.Text = "Brak dodatkowych warunków";
grid.RowDefinitions.Add(new RowDefinition());
TextBlock newTextBlock = new TextBlock();
// TextBox newTextBox = new TextBox();
grid.Children.Add(newTextBlock);
grid.Children.Add(control);
Grid.SetColumn(control, 1);
newTextBlock.Width = control.Width = 140;
newTextBlock.Text = value;
Grid.SetRow(control, rowIndex);
Grid.SetRow(newTextBlock, rowIndex);
textBlocksDictionary.Add(rowIndex, newTextBlock);
dataControlsDictionary.Add(rowIndex, control);
}
grid.Children.Add(AlertText);
grid.RowDefinitions.Add(new RowDefinition());
Grid.SetRow(AlertText, grid.RowDefinitions.Count - 1);
Grid.SetColumnSpan(AlertText, 3);
}
private bool CheckDialogIsFilled()
{
bool response = true;
foreach (Control control in dataControlsDictionary.Values)
{
if (control is TextBox)
{
if (string.IsNullOrEmpty((control as TextBox).Text))
{
response = false;
break;
}
}
}
if (textBlocksDictionary[0].Text == "PESEL")
{
TextBox textBoxToCheck = (dataControlsDictionary[0] as TextBox);
int peselLength = textBoxToCheck.Text.Length;
if (peselLength != 11)
{
response = false;
textBoxToCheck.Text = string.Empty;
}
}
return response;
}
private void StoreData()
{
foreach (Control control in dataControlsDictionary.Values)
{
if (control is TextBox)
ValuesOfNewObject.Add((control as TextBox).Text);
else
ValuesOfNewObject.Add((control as ComboBox).SelectedItem as string);
}
}
private void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
{
bool isFilled = CheckDialogIsFilled();
if (isFilled)
StoreData();
else
AlertText.Text = "Wypełnij brakujące pola lub sprawdź poprawność danych!";
args.Cancel = !isFilled;
}
private void ContentDialog_SecondaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
{
}
}
}

View File

@ -14,6 +14,7 @@ using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using HospitalServerManager.InterfacesAndEnums;
using System.Collections.ObjectModel;
using HospitalServerManager.ViewModel;
//Szablon elementu Pusta strona jest udokumentowany na stronie https://go.microsoft.com/fwlink/?LinkId=234238
@ -22,7 +23,7 @@ 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>
public sealed partial class PatientsPage : Page
public sealed partial class PatientsPage : Page , IPageNavigateable
{
//public ObservableCollection<ISqlTableModelable> ModelCollection { get => RosterViewModel.ModelsCollection; }
private ViewModel.Controllers.DatabaseReader databaseReader;
@ -32,6 +33,18 @@ namespace HospitalServerManager.View
}
private async void NewRecord()
{
Dictionary<int, string> typesOfColumnDictionary = (Dictionary<int,string>) RosterViewModel.ColumnTypes;
NewRecordDialog createDialog = new NewRecordDialog(RosterViewModel.ColumnNames, typesOfColumnDictionary,
RosterViewModel.EnumTypes);
ContentDialogResult dialogResult = await createDialog.ShowAsync();
if (dialogResult == ContentDialogResult.Primary && createDialog.ValuesOfNewObject.Any())
{
List<string> valuesList = createDialog.ValuesOfNewObject;
RosterViewModel.CreateRecord("Pacjenci", valuesList);
}
}
#region Events
private void SortComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
@ -66,13 +79,14 @@ namespace HospitalServerManager.View
private void NewRecordButton_Click(object sender, RoutedEventArgs e)
{
NewRecord();
}
#endregion
protected override void OnNavigatedTo(NavigationEventArgs e)
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
databaseReader = e.Parameter as HospitalServerManager.ViewModel.Controllers.DatabaseReader;
await RosterViewModel.Read(typeof(PatientViewModel), "Pacjenci");
//databaseReader = e.Parameter as HospitalServerManager.ViewModel.Controllers.DatabaseReader;
//_IsDataLoaded = false;
// DatabaseController.OnPropertyChanged("IsDataLoaded");
}
@ -80,7 +94,15 @@ namespace HospitalServerManager.View
private async void Page_Loaded(object sender, RoutedEventArgs e)
{
databaseView.ItemsSource = RosterViewModel.ModelsCollection;
lookInComboBox.ItemsSource = RosterViewModel.ColumnNames;
var sortList = RosterViewModel.ColumnNames.ToList();
sortList.RemoveAt(0);
sortComboBox.ItemsSource = sortList;
}
public void UnloadPage()
{
;
}
}
}

View File

@ -0,0 +1,65 @@
using HospitalServerManager.InterfacesAndEnums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windows.UI.Xaml.Controls;
namespace HospitalServerManager.ViewModel.Controllers
{
class ViewNavigator : INavigator
{
public IPageNavigateable ActualPage { get; protected set; }
public bool IsParameterSet { get => Parameters == null ? false : true; }
private object Parameters { get; set; }
private IValidateIfInterfaceIsImplemented Validator = null;
// TODO: Przemyslec czy potrzebne actualPage
protected ViewNavigator()
{ Parameters = null; ActualPage = null; }
public ViewNavigator(IValidateIfInterfaceIsImplemented validator, IPageNavigateable actualPage, object parametersToPage = null)
{
ActualPage = actualPage;
Validator = validator;
Parameters = parametersToPage;
/*Type type = actualPage.GetType();
ChangeFrame(type, )*/
}
/// <summary>
/// Sets parameters which is passed to the target page.
/// </summary>
/// <param name="parameter"></param>
public void SetParameter(object parameter)
{
Parameters = parameter;
}
/// <summary>
/// Removes parameters.
/// </summary>
public void RemoveParameters()
{
Parameters = null;
}
/// <summary>
/// Navigates inside navigationFrame to new page and passes the parameter to new page.
/// </summary>
/// <param name="typeOfPage">The type of the target page</param>
/// <param name="navigationFrame">The navigation frame</param>
/// <returns></returns>
public IPageNavigateable ChangeFrame(Type typeOfPage, Frame navigationFrame)
{
if (!Validator.ValidateIfTypeImplementInterface(typeOfPage, "IPageNavigateable"))
throw new ArgumentException("Wrong page type! Page have to implement IPageNavigateable.");
ActualPage.UnloadPage();
if (IsParameterSet)
navigationFrame.Navigate(typeOfPage, Parameters);
else
navigationFrame.Navigate(typeOfPage);
ActualPage = navigationFrame.Content as IPageNavigateable;
return ActualPage;
}
}
}

View File

@ -0,0 +1,32 @@
using HospitalServerManager.InterfacesAndEnums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HospitalServerManager.ViewModel.DataProvider
{
class NavigationPageTypeProvider : TypeProvider
{
private IValidateIfInterfaceIsImplemented InterfaceValidator = null;
public NavigationPageTypeProvider(IValidateIfInterfaceIsImplemented validateInterface) { InterfaceValidator = validateInterface; }
public NavigationPageTypeProvider(IValidateIfInterfaceIsImplemented validateInterface, List<Type> typeToRegister)
: this(validateInterface)
{
typeToRegister.ForEach(x => RegisterType(x));
}
public NavigationPageTypeProvider(IValidateIfInterfaceIsImplemented validateInterface, Type typeToRegister)
: this(validateInterface, new List<Type> { typeToRegister }) { }
public override void RegisterType(Type typeToRegister)
{
if (!InterfaceValidator.ValidateIfTypeImplementInterface(typeToRegister, typeof(IPageNavigateable)))
throw new ArgumentException("Registred type have to implement IPageNavigateable interface!");
base.RegisterType(typeToRegister);
}
}
}

View File

@ -0,0 +1,39 @@
using HospitalServerManager.InterfacesAndEnums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HospitalServerManager.ViewModel.DataProvider
{
class TypeProvider : IProvideType
{
protected Dictionary<string, Type> NamesDictionary = new Dictionary<string, Type>();
public TypeProvider() { }
public TypeProvider(List<Type> typeToRegister)
{
typeToRegister.ForEach(x => RegisterType(x));
}
public TypeProvider(Type typeToRegister) : this(new List<Type> { typeToRegister }) { }
public Type GetTypeFromString(string typeName)
{
if (!NamesDictionary.ContainsKey(typeName))
throw new KeyNotFoundException("The key does not exist!");
return NamesDictionary[typeName];
}
public virtual void RegisterType(Type typeToRegister)
{
string typeName = typeToRegister.Name;
if (NamesDictionary.ContainsKey(typeName))
throw new Exception("Type was registred before!");
NamesDictionary.Add(typeName, typeToRegister);
}
}
}

View File

@ -8,7 +8,7 @@ using HospitalServerManager.Model.Basic;
namespace HospitalServerManager.ViewModel
{
class DoctorViewModel
class DoctorViewModel : ISqlTableModelable // TODO: Dodać intrefejs dla VIEW MODEL!!
{
private Doctor model;
public string PrimaryKey { get => model.PrimaryKey; }
@ -23,5 +23,20 @@ namespace HospitalServerManager.ViewModel
{
this.model = model;
}
public List<string> GetColumnNames()
{
throw new NotImplementedException();
}
public string GetPrimaryKey()
{
throw new NotImplementedException();
}
public string GetPrimaryKeyName()
{
throw new NotImplementedException();
}
}
}

View File

@ -8,6 +8,7 @@ using System.Threading.Tasks;
namespace HospitalServerManager.ViewModel
{
//Zmienic interfejs na taki dla viewmodeli
class PatientViewModel : ISqlTableModelable
{
private Patient model;

View File

@ -5,32 +5,43 @@ using System.Text;
using System.Threading.Tasks;
using HospitalServerManager.InterfacesAndEnums;
using HospitalServerManager.Model;
using HospitalServerManager.Model.Controllers;
namespace HospitalServerManager.ViewModel
{
class RosterViewModel
{
private ModelRoster _Roster { get; set; }
private IProvideDBInfo databaseInfoProvider;
private Controllers.DatabaseReader DbReader { get; set; }
private List<ISqlTableModelable> ModelsList => _Roster.ModelsEnumerable.ToList();
public RangeObservableCollection<ISqlTableModelable> ModelsCollection = new RangeObservableCollection<ISqlTableModelable>();
public IEnumerable<string> ColumnNames { get => _Roster.ColumnNames; }
public IDictionary<int, string> ColumnTypes { get => _Roster.ColumnTypes; }
public Dictionary<string, Type> EnumTypes { get => _Roster.EnumTypes; }
public RosterViewModel()
{
DbReader = new Controllers.DatabaseReader();
_Roster = new ModelRoster();
Read();
//Read(typeof(PatientViewModel));
}
public async void Read()
public async Task Read(Type viewModel, string tableName)
{
await DbReader.ReadDataFromDatabase(@"Data Source=MARCELPC;Initial Catalog = DB_s439397; Integrated Security = true;",
"SELECT * FROM Pacjenci", typeof(Model.Basic.Patient));
// TO TYLKO DLA TESTOW, DO USUNIECIA I NIE KOPIOWAC MECHANIKI !!
ModelsCollection.Clear();
/*await DbReader.ReadDataFromDatabase(@"Data Source=MARCELPC;Initial Catalog = DB_s439397; Integrated Security = true;",
"SELECT * FROM Pacjenci", typeof(Model.Basic.Patient));*/
List<ISqlTableModelable> lista = new List<ISqlTableModelable>();
DbReader.LastReadedModels.ToList().ForEach(model => lista.Add(new PatientViewModel(model as HospitalServerManager.Model.Basic.Patient)));
_Roster.AddRange(lista);
ModelsCollection.AddRange(ModelsList);
// DbReader.LastReadedModels.ToList().ForEach(model => lista.Add(new PatientViewModel(model as HospitalServerManager.Model.Basic.Patient)));
await _Roster.ReadModels(tableName);
ModelsList.ToList().ForEach(model => lista.Add((ISqlTableModelable)Activator.CreateInstance(viewModel, model)));
//_Roster.AddRange(lista);
ModelsCollection.AddRange(lista);
return;
}
public void CreateRecord(string tableName, IEnumerable<string> valuesList)
{
_Roster.CreateRecord(tableName, valuesList);
}
}
}

View File

@ -0,0 +1,37 @@
using HospitalServerManager.InterfacesAndEnums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HospitalServerManager.ViewModel.Validators
{
class InterfaceImplementValidator : IValidateIfInterfaceIsImplemented
{
public IProvideType TypeProvider { protected get; set; }
public InterfaceImplementValidator() { }
public InterfaceImplementValidator(IProvideType typeProvider) { TypeProvider = typeProvider; }
public bool ValidateIfTypeImplementInterface(Type typeToCheck, string interfaceNameToCheck)
{
Type returnedType = typeToCheck.GetInterface(interfaceNameToCheck);
if (returnedType == null)
return false;
return true;
}
public bool ValidateIfTypeImplementInterface(string typeName, string interfaceNameToCheck)
{
Type typeFromString = TypeProvider.GetTypeFromString(typeName);
return ValidateIfTypeImplementInterface(typeFromString, interfaceNameToCheck);
}
public bool ValidateIfTypeImplementInterface(Type typeToCheck, Type interfaceToCheck)
{
string interfaceName = interfaceToCheck.Name;
return ValidateIfTypeImplementInterface(typeToCheck, interfaceName);
}
}
}

Binary file not shown.

Binary file not shown.

View File

@ -148,6 +148,15 @@
<RootEvent Name="Click" />
</RootType>
<RootType FullName="HospitalServerManager.View.MainFrameView" />
<RootType FullName="Windows.UI.Xaml.Controls.ContentDialog">
<RootProperty Name="Title" />
<RootProperty Name="PrimaryButtonText" />
<RootProperty Name="SecondaryButtonText" />
<RootProperty Name="Content" />
<RootEvent Name="PrimaryButtonClick" />
<RootEvent Name="SecondaryButtonClick" />
</RootType>
<RootType FullName="HospitalServerManager.View.NewRecordDialog" />
<RootType FullName="HospitalServerManager.View.PatientsPage" />
<RootType FullName="HospitalServerManager.View.RoomsPage" />
<RootType FullName="Windows.UI.Xaml.Controls.UserControl">

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -30,13 +30,17 @@
<AppXManifest Include="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\bin\x86\Debug\Core\AppxManifest.xml">
<PackagePath>AppxManifest.xml</PackagePath>
<ReRegisterAppIfChanged>true</ReRegisterAppIfChanged>
<Modified>2018-12-22T14:48:40.212</Modified>
<Modified>2018-12-28T18:47:53.642</Modified>
</AppXManifest>
</ItemGroup>
<ItemGroup>
<AppxPackagedFile Include="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\bin\x86\Debug\HospitalServerManager.exe">
<PackagePath>entrypoint\HospitalServerManager.exe</PackagePath>
<Modified>2018-12-22T14:48:38.442</Modified>
<Modified>2018-12-28T18:47:53.301</Modified>
</AppxPackagedFile>
<AppxPackagedFile Include="C:\Users\Marcel\.nuget\packages\newtonsoft.json\12.0.1\lib\netstandard2.0\Newtonsoft.Json.dll">
<PackagePath>Newtonsoft.Json.dll</PackagePath>
<Modified>2018-11-27T17:07:34.000</Modified>
</AppxPackagedFile>
<AppxPackagedFile Include="C:\Users\Marcel\.nuget\packages\runtime.win10-x86.microsoft.netcore.universalwindowsplatform\6.1.9\runtimes\win10-x86\nativeassets\uap10.0.15138\clrcompression.dll">
<PackagePath>clrcompression.dll</PackagePath>
@ -734,31 +738,35 @@
</AppxPackagedFile>
<AppxPackagedFile Include="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\bin\x86\Debug\HospitalServerManager.xr.xml">
<PackagePath>HospitalServerManager.xr.xml</PackagePath>
<Modified>2018-12-22T14:47:35.175</Modified>
<Modified>2018-12-28T18:09:39.467</Modified>
</AppxPackagedFile>
<AppxPackagedFile Include="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\bin\x86\Debug\App.xbf">
<PackagePath>App.xbf</PackagePath>
<Modified>2018-12-22T14:48:38.238</Modified>
<Modified>2018-12-28T18:47:53.110</Modified>
</AppxPackagedFile>
<AppxPackagedFile Include="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\bin\x86\Debug\View\DoctorsPage.xbf">
<PackagePath>View\DoctorsPage.xbf</PackagePath>
<Modified>2018-12-22T14:48:38.239</Modified>
<Modified>2018-12-28T18:47:53.111</Modified>
</AppxPackagedFile>
<AppxPackagedFile Include="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\bin\x86\Debug\View\MainFrameView.xbf">
<PackagePath>View\MainFrameView.xbf</PackagePath>
<Modified>2018-12-22T14:48:38.239</Modified>
<Modified>2018-12-28T18:47:53.111</Modified>
</AppxPackagedFile>
<AppxPackagedFile Include="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\bin\x86\Debug\View\NewRecordDialog.xbf">
<PackagePath>View\NewRecordDialog.xbf</PackagePath>
<Modified>2018-12-28T18:47:53.111</Modified>
</AppxPackagedFile>
<AppxPackagedFile Include="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\bin\x86\Debug\View\PatientsPage.xbf">
<PackagePath>View\PatientsPage.xbf</PackagePath>
<Modified>2018-12-22T14:48:38.239</Modified>
<Modified>2018-12-28T18:47:53.112</Modified>
</AppxPackagedFile>
<AppxPackagedFile Include="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\bin\x86\Debug\View\RoomsPage.xbf">
<PackagePath>View\RoomsPage.xbf</PackagePath>
<Modified>2018-12-22T14:48:38.240</Modified>
<Modified>2018-12-28T18:47:53.112</Modified>
</AppxPackagedFile>
<AppxPackagedFile Include="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\bin\x86\Debug\View\UserControls\ColumnListView.xbf">
<PackagePath>View\UserControls\ColumnListView.xbf</PackagePath>
<Modified>2018-12-22T14:48:38.240</Modified>
<Modified>2018-12-28T18:47:53.112</Modified>
</AppxPackagedFile>
<AppxPackagedFile Include="C:\Program Files %28x86%29\Windows Kits\10\UnionMetadata\10.0.17134.0\Windows.winmd">
<PackagePath>WinMetadata\Windows.winmd</PackagePath>
@ -766,11 +774,11 @@
</AppxPackagedFile>
<AppxPackagedFile Include="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\bin\x86\Debug\resources.pri">
<PackagePath>resources.pri</PackagePath>
<Modified>2018-12-22T14:48:39.660</Modified>
<Modified>2018-12-28T18:09:40.377</Modified>
</AppxPackagedFile>
<AppxPackagedFile Include="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\bin\x86\Debug\Core\HospitalServerManager.exe">
<PackagePath>HospitalServerManager.exe</PackagePath>
<Modified>2018-12-22T14:48:40.201</Modified>
<Modified>2018-12-28T18:47:53.637</Modified>
</AppxPackagedFile>
</ItemGroup>
<ItemGroup>

View File

@ -28,6 +28,9 @@
<AppxPackagedFile Include="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\bin\x86\Debug\HospitalServerManager.exe">
<PackagePath>entrypoint\HospitalServerManager.exe</PackagePath>
</AppxPackagedFile>
<AppxPackagedFile Include="C:\Users\Marcel\.nuget\packages\newtonsoft.json\12.0.1\lib\netstandard2.0\Newtonsoft.Json.dll">
<PackagePath>Newtonsoft.Json.dll</PackagePath>
</AppxPackagedFile>
<AppxPackagedFile Include="C:\Users\Marcel\.nuget\packages\runtime.win10-x86.microsoft.netcore.universalwindowsplatform\6.1.9\runtimes\win10-x86\nativeassets\uap10.0.15138\clrcompression.dll">
<PackagePath>clrcompression.dll</PackagePath>
</AppxPackagedFile>
@ -562,6 +565,9 @@
<AppxPackagedFile Include="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\bin\x86\Debug\View\MainFrameView.xbf">
<PackagePath>View\MainFrameView.xbf</PackagePath>
</AppxPackagedFile>
<AppxPackagedFile Include="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\bin\x86\Debug\View\NewRecordDialog.xbf">
<PackagePath>View\NewRecordDialog.xbf</PackagePath>
</AppxPackagedFile>
<AppxPackagedFile Include="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\bin\x86\Debug\View\PatientsPage.xbf">
<PackagePath>View\PatientsPage.xbf</PackagePath>
</AppxPackagedFile>

View File

@ -148,6 +148,15 @@
<RootEvent Name="Click" />
</RootType>
<RootType FullName="HospitalServerManager.View.MainFrameView" />
<RootType FullName="Windows.UI.Xaml.Controls.ContentDialog">
<RootProperty Name="Title" />
<RootProperty Name="PrimaryButtonText" />
<RootProperty Name="SecondaryButtonText" />
<RootProperty Name="Content" />
<RootEvent Name="PrimaryButtonClick" />
<RootEvent Name="SecondaryButtonClick" />
</RootType>
<RootType FullName="HospitalServerManager.View.NewRecordDialog" />
<RootType FullName="HospitalServerManager.View.PatientsPage" />
<RootType FullName="HospitalServerManager.View.RoomsPage" />
<RootType FullName="Windows.UI.Xaml.Controls.UserControl">

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,5 +1,5 @@
{
"version": 1,
"dgSpecHash": "yyUtBsXx572csq3in+pb3QXM+V8ZXswBzT74mfZzxg1nv4V+uWHe/cp+0HHgC7I5vpVtQNpmB+u/UvhsJ2qqSQ==",
"dgSpecHash": "wO/Z848IdKSm0h/R6PJn1oIt4tRQKHDbGZ/SW4r3aIMbjH26o8kXUs0Z6WEgHJARH1iQ7IWs53gUVhW62Y+Y3A==",
"success": true
}

View File

@ -213,6 +213,15 @@
"build/netstandard2.0/NETStandard.Library.targets": {}
}
},
"Newtonsoft.Json/12.0.1": {
"type": "package",
"compile": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {}
},
"runtime": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {}
}
},
"runtime.win10-arm.Microsoft.Net.Native.Compiler/2.1.8": {
"type": "package",
"dependencies": {
@ -499,6 +508,15 @@
"build/netstandard2.0/NETStandard.Library.targets": {}
}
},
"Newtonsoft.Json/12.0.1": {
"type": "package",
"compile": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {}
},
"runtime": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {}
}
},
"runtime.win10-arm.Microsoft.Net.Native.Compiler/2.1.8": {
"type": "package",
"dependencies": {
@ -959,6 +977,15 @@
"build/netstandard2.0/NETStandard.Library.targets": {}
}
},
"Newtonsoft.Json/12.0.1": {
"type": "package",
"compile": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {}
},
"runtime": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {}
}
},
"runtime.win10-arm-aot.Microsoft.NETCore.UniversalWindowsPlatform/6.1.9": {
"type": "package",
"compile": {
@ -1419,6 +1446,15 @@
"build/netstandard2.0/NETStandard.Library.targets": {}
}
},
"Newtonsoft.Json/12.0.1": {
"type": "package",
"compile": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {}
},
"runtime": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {}
}
},
"runtime.win10-arm.Microsoft.Net.Native.Compiler/2.1.8": {
"type": "package",
"dependencies": {
@ -1705,6 +1741,15 @@
"build/netstandard2.0/NETStandard.Library.targets": {}
}
},
"Newtonsoft.Json/12.0.1": {
"type": "package",
"compile": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {}
},
"runtime": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {}
}
},
"runtime.win10-arm.Microsoft.Net.Native.Compiler/2.1.8": {
"type": "package",
"dependencies": {
@ -2165,6 +2210,15 @@
"build/netstandard2.0/NETStandard.Library.targets": {}
}
},
"Newtonsoft.Json/12.0.1": {
"type": "package",
"compile": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {}
},
"runtime": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {}
}
},
"runtime.win10-arm.Microsoft.Net.Native.Compiler/2.1.8": {
"type": "package",
"dependencies": {
@ -2626,6 +2680,15 @@
"build/netstandard2.0/NETStandard.Library.targets": {}
}
},
"Newtonsoft.Json/12.0.1": {
"type": "package",
"compile": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {}
},
"runtime": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {}
}
},
"runtime.win10-arm.Microsoft.Net.Native.Compiler/2.1.8": {
"type": "package",
"dependencies": {
@ -3086,6 +3149,15 @@
"build/netstandard2.0/NETStandard.Library.targets": {}
}
},
"Newtonsoft.Json/12.0.1": {
"type": "package",
"compile": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {}
},
"runtime": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {}
}
},
"runtime.win10-arm.Microsoft.Net.Native.Compiler/2.1.8": {
"type": "package",
"dependencies": {
@ -3842,6 +3914,45 @@
"netstandard.library.nuspec"
]
},
"Newtonsoft.Json/12.0.1": {
"sha512": "jmVyoEyk0In8r+AObYQyFKVFm7uSRzE0XSHSbEtBJcZDMV6DqJoyB4FLcHwprPVhAh826so0db3DIKXVnpGoPA==",
"type": "package",
"path": "newtonsoft.json/12.0.1",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE.md",
"lib/net20/Newtonsoft.Json.dll",
"lib/net20/Newtonsoft.Json.pdb",
"lib/net20/Newtonsoft.Json.xml",
"lib/net35/Newtonsoft.Json.dll",
"lib/net35/Newtonsoft.Json.pdb",
"lib/net35/Newtonsoft.Json.xml",
"lib/net40/Newtonsoft.Json.dll",
"lib/net40/Newtonsoft.Json.pdb",
"lib/net40/Newtonsoft.Json.xml",
"lib/net45/Newtonsoft.Json.dll",
"lib/net45/Newtonsoft.Json.pdb",
"lib/net45/Newtonsoft.Json.xml",
"lib/netstandard1.0/Newtonsoft.Json.dll",
"lib/netstandard1.0/Newtonsoft.Json.pdb",
"lib/netstandard1.0/Newtonsoft.Json.xml",
"lib/netstandard1.3/Newtonsoft.Json.dll",
"lib/netstandard1.3/Newtonsoft.Json.pdb",
"lib/netstandard1.3/Newtonsoft.Json.xml",
"lib/netstandard2.0/Newtonsoft.Json.dll",
"lib/netstandard2.0/Newtonsoft.Json.pdb",
"lib/netstandard2.0/Newtonsoft.Json.xml",
"lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.dll",
"lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.pdb",
"lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.xml",
"lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.dll",
"lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.pdb",
"lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.xml",
"newtonsoft.json.12.0.1.nupkg.sha512",
"newtonsoft.json.nuspec"
]
},
"runtime.win10-arm-aot.Microsoft.NETCore.UniversalWindowsPlatform/6.1.9": {
"sha512": "wzz0Fi2o7E/wXrRAidq651WEymO87REqjZXIk5Lv3WOTsGxe6JtPiKvvmJ5zSj1646S11hZg3XNJLXSTx+S9Sg==",
"type": "package",
@ -7043,7 +7154,8 @@
},
"projectFileDependencyGroups": {
"UAP,Version=v10.0.17134": [
"Microsoft.NETCore.UniversalWindowsPlatform >= 6.1.9"
"Microsoft.NETCore.UniversalWindowsPlatform >= 6.1.9",
"Newtonsoft.Json >= 12.0.1"
]
},
"packageFolders": {
@ -7086,6 +7198,10 @@
"Microsoft.NETCore.UniversalWindowsPlatform": {
"target": "Package",
"version": "[6.1.9, )"
},
"Newtonsoft.Json": {
"target": "Package",
"version": "[12.0.1, )"
}
},
"imports": [

Binary file not shown.

View File

@ -1 +1 @@
fa8007a7f715d7e54b36c6d675a5234be4b41930
941c3f1a8423bd3d7083b7479824892c4db76de2

View File

@ -920,3 +920,10 @@ C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\
C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\obj\x86\Debug\View\RoomsPage.xbf
C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\bin\x86\Debug\View\DoctorsPage.xbf
C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\bin\x86\Debug\View\RoomsPage.xbf
C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\bin\x86\Debug\Newtonsoft.Json.dll
C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\bin\x86\Debug\Newtonsoft.Json.pdb
C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\obj\x86\Debug\View\NewRecordDialog.g.i.cs
C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\obj\x86\Debug\View\NewRecordDialog.g.cs
C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\obj\x86\Debug\View\NewRecordDialog.xaml
C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\obj\x86\Debug\View\NewRecordDialog.xbf
C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\bin\x86\Debug\View\NewRecordDialog.xbf

View File

@ -148,6 +148,15 @@
<RootEvent Name="Click" />
</RootType>
<RootType FullName="HospitalServerManager.View.MainFrameView" />
<RootType FullName="Windows.UI.Xaml.Controls.ContentDialog">
<RootProperty Name="Title" />
<RootProperty Name="PrimaryButtonText" />
<RootProperty Name="SecondaryButtonText" />
<RootProperty Name="Content" />
<RootEvent Name="PrimaryButtonClick" />
<RootEvent Name="SecondaryButtonClick" />
</RootType>
<RootType FullName="HospitalServerManager.View.NewRecordDialog" />
<RootType FullName="HospitalServerManager.View.PatientsPage" />
<RootType FullName="HospitalServerManager.View.RoomsPage" />
<RootType FullName="Windows.UI.Xaml.Controls.UserControl">

View File

@ -1,4 +1,4 @@
#pragma checksum "C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\View\DoctorsPage.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "B7726B04B6D3678A0A44981DCAC09110"
#pragma checksum "C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\View\DoctorsPage.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "154D15F17780F3E6DC4A4BD69A9548A8"
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
@ -37,7 +37,7 @@ namespace HospitalServerManager.View
global::Windows.UI.Xaml.Markup.IComponentConnector,
IDoctorsPage_Bindings
{
private global::HospitalServerManager.ViewModel.PatientViewModel dataRoot;
private global::HospitalServerManager.ViewModel.DoctorViewModel dataRoot;
private bool initialized = false;
private const int NOT_PHASED = (1 << 31);
private const int DATA_CHANGED = (1 << 30);
@ -51,6 +51,7 @@ namespace HospitalServerManager.View
private global::Windows.UI.Xaml.Controls.TextBlock obj9;
private global::Windows.UI.Xaml.Controls.TextBlock obj10;
private global::Windows.UI.Xaml.Controls.TextBlock obj11;
private global::Windows.UI.Xaml.Controls.TextBlock obj12;
public DoctorsPage_obj5_Bindings()
{
@ -62,27 +63,30 @@ namespace HospitalServerManager.View
{
switch(connectionId)
{
case 5: // View\DoctorsPage.xaml line 139
case 5: // View\DoctorsPage.xaml line 141
this.obj5 = new global::System.WeakReference((global::Windows.UI.Xaml.Controls.Grid)target);
break;
case 6: // View\DoctorsPage.xaml line 148
case 6: // View\DoctorsPage.xaml line 151
this.obj6 = (global::Windows.UI.Xaml.Controls.TextBlock)target;
break;
case 7: // View\DoctorsPage.xaml line 151
case 7: // View\DoctorsPage.xaml line 154
this.obj7 = (global::Windows.UI.Xaml.Controls.TextBlock)target;
break;
case 8: // View\DoctorsPage.xaml line 154
case 8: // View\DoctorsPage.xaml line 157
this.obj8 = (global::Windows.UI.Xaml.Controls.TextBlock)target;
break;
case 9: // View\DoctorsPage.xaml line 156
case 9: // View\DoctorsPage.xaml line 159
this.obj9 = (global::Windows.UI.Xaml.Controls.TextBlock)target;
break;
case 10: // View\DoctorsPage.xaml line 158
case 10: // View\DoctorsPage.xaml line 161
this.obj10 = (global::Windows.UI.Xaml.Controls.TextBlock)target;
break;
case 11: // View\DoctorsPage.xaml line 160
case 11: // View\DoctorsPage.xaml line 163
this.obj11 = (global::Windows.UI.Xaml.Controls.TextBlock)target;
break;
case 12: // View\DoctorsPage.xaml line 165
this.obj12 = (global::Windows.UI.Xaml.Controls.TextBlock)target;
break;
default:
break;
}
@ -133,7 +137,7 @@ namespace HospitalServerManager.View
this.initialized = true;
break;
}
this.Update_((global::HospitalServerManager.ViewModel.PatientViewModel) item, 1 << phase);
this.Update_((global::HospitalServerManager.ViewModel.DoctorViewModel) item, 1 << phase);
}
public void Recycle()
@ -169,42 +173,35 @@ namespace HospitalServerManager.View
{
if (newDataRoot != null)
{
this.dataRoot = (global::HospitalServerManager.ViewModel.PatientViewModel)newDataRoot;
this.dataRoot = (global::HospitalServerManager.ViewModel.DoctorViewModel)newDataRoot;
return true;
}
return false;
}
// Update methods for each path node used in binding steps.
private void Update_(global::HospitalServerManager.ViewModel.PatientViewModel obj, int phase)
private void Update_(global::HospitalServerManager.ViewModel.DoctorViewModel obj, int phase)
{
if (obj != null)
{
if ((phase & (NOT_PHASED | (1 << 0))) != 0)
{
this.Update_PrimaryKey(obj.PrimaryKey, phase);
this.Update_Surname(obj.Surname, phase);
this.Update_Name(obj.Name, phase);
this.Update_BirthDate(obj.BirthDate, phase);
this.Update_PatientState(obj.PatientState, phase);
this.Update_PatientSex(obj.PatientSex, phase);
this.Update_Surname(obj.Surname, phase);
this.Update_AdacemicDegree(obj.AdacemicDegree, phase);
this.Update_MedicalSpecialization(obj.MedicalSpecialization, phase);
this.Update_EmploymentDate(obj.EmploymentDate, phase);
this.Update_JobPosition(obj.JobPosition, phase);
}
}
}
private void Update_PrimaryKey(global::System.String obj, int phase)
{
if ((phase & ((1 << 0) | NOT_PHASED )) != 0)
{
// View\DoctorsPage.xaml line 148
XamlBindingSetters.Set_Windows_UI_Xaml_Controls_TextBlock_Text(this.obj6, obj, null);
}
}
private void Update_Surname(global::System.String obj, int phase)
{
if ((phase & ((1 << 0) | NOT_PHASED )) != 0)
{
// View\DoctorsPage.xaml line 151
XamlBindingSetters.Set_Windows_UI_Xaml_Controls_TextBlock_Text(this.obj7, obj, null);
XamlBindingSetters.Set_Windows_UI_Xaml_Controls_TextBlock_Text(this.obj6, obj, null);
}
}
private void Update_Name(global::System.String obj, int phase)
@ -212,31 +209,47 @@ namespace HospitalServerManager.View
if ((phase & ((1 << 0) | NOT_PHASED )) != 0)
{
// View\DoctorsPage.xaml line 154
XamlBindingSetters.Set_Windows_UI_Xaml_Controls_TextBlock_Text(this.obj7, obj, null);
}
}
private void Update_Surname(global::System.String obj, int phase)
{
if ((phase & ((1 << 0) | NOT_PHASED )) != 0)
{
// View\DoctorsPage.xaml line 157
XamlBindingSetters.Set_Windows_UI_Xaml_Controls_TextBlock_Text(this.obj8, obj, null);
}
}
private void Update_BirthDate(global::System.DateTime obj, int phase)
private void Update_AdacemicDegree(global::System.String obj, int phase)
{
if ((phase & ((1 << 0) | NOT_PHASED )) != 0)
{
// View\DoctorsPage.xaml line 156
XamlBindingSetters.Set_Windows_UI_Xaml_Controls_TextBlock_Text(this.obj9, obj.ToString(), null);
// View\DoctorsPage.xaml line 159
XamlBindingSetters.Set_Windows_UI_Xaml_Controls_TextBlock_Text(this.obj9, obj, null);
}
}
private void Update_PatientState(global::System.String obj, int phase)
private void Update_MedicalSpecialization(global::System.String obj, int phase)
{
if ((phase & ((1 << 0) | NOT_PHASED )) != 0)
{
// View\DoctorsPage.xaml line 158
// View\DoctorsPage.xaml line 161
XamlBindingSetters.Set_Windows_UI_Xaml_Controls_TextBlock_Text(this.obj10, obj, null);
}
}
private void Update_PatientSex(global::System.String obj, int phase)
private void Update_EmploymentDate(global::System.DateTime obj, int phase)
{
if ((phase & ((1 << 0) | NOT_PHASED )) != 0)
{
// View\DoctorsPage.xaml line 160
XamlBindingSetters.Set_Windows_UI_Xaml_Controls_TextBlock_Text(this.obj11, obj, null);
// View\DoctorsPage.xaml line 163
XamlBindingSetters.Set_Windows_UI_Xaml_Controls_TextBlock_Text(this.obj11, obj.ToString(), null);
}
}
private void Update_JobPosition(global::System.String obj, int phase)
{
if ((phase & ((1 << 0) | NOT_PHASED )) != 0)
{
// View\DoctorsPage.xaml line 165
XamlBindingSetters.Set_Windows_UI_Xaml_Controls_TextBlock_Text(this.obj12, obj, null);
}
}
}
@ -249,6 +262,12 @@ namespace HospitalServerManager.View
{
switch(connectionId)
{
case 1: // View\DoctorsPage.xaml line 1
{
global::Windows.UI.Xaml.Controls.Page element1 = (global::Windows.UI.Xaml.Controls.Page)(target);
((global::Windows.UI.Xaml.Controls.Page)element1).Loaded += this.Page_Loaded;
}
break;
case 2: // View\DoctorsPage.xaml line 12
{
this.RosterViewModel = (global::HospitalServerManager.ViewModel.RosterViewModel)(target);
@ -259,67 +278,67 @@ namespace HospitalServerManager.View
this.pageTitle = (global::Windows.UI.Xaml.Controls.TextBlock)(target);
}
break;
case 4: // View\DoctorsPage.xaml line 126
case 4: // View\DoctorsPage.xaml line 128
{
this.databaseView = (global::Windows.UI.Xaml.Controls.ListView)(target);
}
break;
case 13: // View\DoctorsPage.xaml line 85
case 14: // View\DoctorsPage.xaml line 85
{
this.sortComboBox = (global::Windows.UI.Xaml.Controls.ComboBox)(target);
((global::Windows.UI.Xaml.Controls.ComboBox)this.sortComboBox).SelectionChanged += this.SortComboBox_SelectionChanged;
}
break;
case 14: // View\DoctorsPage.xaml line 88
case 15: // View\DoctorsPage.xaml line 88
{
this.radioBtn1 = (global::Windows.UI.Xaml.Controls.RadioButton)(target);
((global::Windows.UI.Xaml.Controls.RadioButton)this.radioBtn1).Click += this.RadionBtn_Click;
}
break;
case 15: // View\DoctorsPage.xaml line 89
case 16: // View\DoctorsPage.xaml line 89
{
this.radionBtn2 = (global::Windows.UI.Xaml.Controls.RadioButton)(target);
((global::Windows.UI.Xaml.Controls.RadioButton)this.radionBtn2).Click += this.RadionBtn_Click;
}
break;
case 16: // View\DoctorsPage.xaml line 58
case 17: // View\DoctorsPage.xaml line 58
{
this.searchBox = (global::Windows.UI.Xaml.Controls.TextBox)(target);
}
break;
case 17: // View\DoctorsPage.xaml line 60
case 18: // View\DoctorsPage.xaml line 60
{
this.lookInComboBox = (global::Windows.UI.Xaml.Controls.ComboBox)(target);
}
break;
case 18: // View\DoctorsPage.xaml line 63
{
global::Windows.UI.Xaml.Controls.Button element18 = (global::Windows.UI.Xaml.Controls.Button)(target);
((global::Windows.UI.Xaml.Controls.Button)element18).Click += this.SearchButton_Click;
}
break;
case 19: // View\DoctorsPage.xaml line 64
case 19: // View\DoctorsPage.xaml line 63
{
global::Windows.UI.Xaml.Controls.Button element19 = (global::Windows.UI.Xaml.Controls.Button)(target);
((global::Windows.UI.Xaml.Controls.Button)element19).Click += this.ResetButton_Click;
((global::Windows.UI.Xaml.Controls.Button)element19).Click += this.SearchButton_Click;
}
break;
case 20: // View\DoctorsPage.xaml line 34
case 20: // View\DoctorsPage.xaml line 64
{
global::Windows.UI.Xaml.Controls.Button element20 = (global::Windows.UI.Xaml.Controls.Button)(target);
((global::Windows.UI.Xaml.Controls.Button)element20).Click += this.NewRecordButton_Click;
((global::Windows.UI.Xaml.Controls.Button)element20).Click += this.ResetButton_Click;
}
break;
case 21: // View\DoctorsPage.xaml line 35
case 21: // View\DoctorsPage.xaml line 34
{
global::Windows.UI.Xaml.Controls.Button element21 = (global::Windows.UI.Xaml.Controls.Button)(target);
((global::Windows.UI.Xaml.Controls.Button)element21).Click += this.DeleteButton_Click;
((global::Windows.UI.Xaml.Controls.Button)element21).Click += this.NewRecordButton_Click;
}
break;
case 22: // View\DoctorsPage.xaml line 36
case 22: // View\DoctorsPage.xaml line 35
{
global::Windows.UI.Xaml.Controls.Button element22 = (global::Windows.UI.Xaml.Controls.Button)(target);
((global::Windows.UI.Xaml.Controls.Button)element22).Click += this.EditButton_Click;
((global::Windows.UI.Xaml.Controls.Button)element22).Click += this.DeleteButton_Click;
}
break;
case 23: // View\DoctorsPage.xaml line 36
{
global::Windows.UI.Xaml.Controls.Button element23 = (global::Windows.UI.Xaml.Controls.Button)(target);
((global::Windows.UI.Xaml.Controls.Button)element23).Click += this.EditButton_Click;
}
break;
default:
@ -338,7 +357,7 @@ namespace HospitalServerManager.View
global::Windows.UI.Xaml.Markup.IComponentConnector returnValue = null;
switch(connectionId)
{
case 5: // View\DoctorsPage.xaml line 139
case 5: // View\DoctorsPage.xaml line 141
{
global::Windows.UI.Xaml.Controls.Grid element5 = (global::Windows.UI.Xaml.Controls.Grid)target;
DoctorsPage_obj5_Bindings bindings = new DoctorsPage_obj5_Bindings();

View File

@ -1,4 +1,4 @@
#pragma checksum "C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\View\DoctorsPage.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "B7726B04B6D3678A0A44981DCAC09110"
#pragma checksum "C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\View\DoctorsPage.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "154D15F17780F3E6DC4A4BD69A9548A8"
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.

View File

@ -1,4 +1,4 @@
<Page
<Page x:ConnectionId='1'
x:Class="HospitalServerManager.View.DoctorsPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
@ -7,7 +7,7 @@
xmlns:viewmodel="using:HospitalServerManager.ViewModel"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" >
<Page.Resources>
<viewmodel:RosterViewModel x:ConnectionId='2' x:Name="RosterViewModel"/>
</Page.Resources>
@ -28,12 +28,12 @@
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock x:ConnectionId='3' Text="Pacjenci" HorizontalAlignment="Left" Margin="15, 5, 0, 0" FontSize="20"
<TextBlock x:ConnectionId='3' Text="Lekarze" HorizontalAlignment="Left" Margin="15, 5, 0, 0" FontSize="20"
VerticalAlignment="Top" Name="pageTitle" Grid.ColumnSpan="2"/>
<StackPanel Grid.Row="1" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Center">
<Button x:ConnectionId='20' Content="Nowy rekord" Margin="30, 0, 30, 0" Grid.Row="1" Width="150"/>
<Button x:ConnectionId='21' Content="Usuń zaznaczone" Margin="30, 0, 30, 0" Grid.Row="1" Grid.Column="1" Width="150"/>
<Button x:ConnectionId='22' Content="Edytuj rekord" Margin="30, 0, 30, 0" Grid.Row="1" Width="150"/>
<Button x:ConnectionId='21' Content="Nowy rekord" Margin="30, 0, 30, 0" Grid.Row="1" Width="150"/>
<Button x:ConnectionId='22' Content="Usuń zaznaczone" Margin="30, 0, 30, 0" Grid.Row="1" Grid.Column="1" Width="150"/>
<Button x:ConnectionId='23' Content="Edytuj rekord" Margin="30, 0, 30, 0" Grid.Row="1" Width="150"/>
</StackPanel>
<!-- </StackPanel> -->
@ -55,13 +55,13 @@
VerticalAlignment="Center" Margin="10"/>
<TextBlock Text="Szukaj w:" Grid.Row="2" HorizontalAlignment="Stretch"
VerticalAlignment="Center" Margin="10"/>
<TextBox x:ConnectionId='16' Name="searchBox" Grid.Row="1" Grid.ColumnSpan="2" Grid.Column="1" HorizontalAlignment="Stretch"
<TextBox x:ConnectionId='17' Name="searchBox" Grid.Row="1" Grid.ColumnSpan="2" Grid.Column="1" HorizontalAlignment="Stretch"
VerticalAlignment="Center" Margin="10"/>
<ComboBox x:ConnectionId='17' Grid.Row="2" Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="10"
<ComboBox x:ConnectionId='18' Grid.Row="2" Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="10"
Name="lookInComboBox" />
<StackPanel Grid.Row="2" Grid.Column="2" VerticalAlignment="Center" Margin="10">
<Button x:ConnectionId='18' Content="Przeszukaj bazę" HorizontalAlignment="Stretch" Margin="10" />
<Button x:ConnectionId='19' Content="Resetuj" HorizontalAlignment="Stretch" Margin="10" />
<Button x:ConnectionId='19' Content="Przeszukaj bazę" HorizontalAlignment="Stretch" Margin="10" />
<Button x:ConnectionId='20' Content="Resetuj" HorizontalAlignment="Stretch" Margin="10" />
</StackPanel>
</Grid>
@ -82,11 +82,11 @@
<TextBlock Text="Sortowanie i filtry" Margin="5, 0, 0, 0" />
<TextBlock Text="Sortuj według:" Grid.Row="1" HorizontalAlignment="Stretch"
VerticalAlignment="Center" Margin="10"/>
<ComboBox x:ConnectionId='13' Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2" HorizontalAlignment="Stretch" VerticalAlignment="Center"
<ComboBox x:ConnectionId='14' Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2" HorizontalAlignment="Stretch" VerticalAlignment="Center"
Margin="10" Name="sortComboBox" />
<StackPanel Grid.Row="2" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Center">
<RadioButton x:ConnectionId='14' Content="Rosnąco" Margin="15, 0, 15, 0" IsChecked="True" Tag="0" Name="radioBtn1" />
<RadioButton x:ConnectionId='15' Content="Malejąco" Margin="15, 0, 15, 0" Tag="1" Name="radionBtn2" />
<RadioButton x:ConnectionId='15' Content="Rosnąco" Margin="15, 0, 15, 0" IsChecked="True" Tag="0" Name="radioBtn1" />
<RadioButton x:ConnectionId='16' Content="Malejąco" Margin="15, 0, 15, 0" Tag="1" Name="radionBtn2" />
</StackPanel>
<Button Content="Zaawansowane filtry" Grid.Row="2" Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Stretch"
Margin="15, 0, 15, 0"/>
@ -105,20 +105,22 @@
<DataTemplate >
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.15*"/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Text="PESEL" Margin="8,0" Foreground="DarkRed" Grid.Column="0"/>
<TextBlock Text="Id" Margin="8,0" Foreground="DarkRed" Grid.Column="0"/>
<TextBlock Text="Imię" Foreground="DarkRed" Grid.Column="1"/>
<TextBlock Text="Nazwisko" Foreground="DarkRed" Grid.Column="2"/>
<TextBlock Text="Data urodzenia" Foreground="DarkRed" Grid.Column="3"/>
<TextBlock Text="Stan" Foreground="DarkRed" Grid.Column="4"/>
<TextBlock Text="Płec" Foreground="DarkRed" Grid.Column="5"/>
<TextBlock Text="Stopień naukowy" Foreground="DarkRed" Grid.Column="3"/>
<TextBlock Text="Specjalizacja" Foreground="DarkRed" Grid.Column="4"/>
<TextBlock Text="Data zatrudnienia" Foreground="DarkRed" Grid.Column="5"/>
<TextBlock Text="Stanowisko" Foreground="DarkRed" Grid.Column="6"/>
</Grid>
</DataTemplate>
</ListView.HeaderTemplate>
@ -138,27 +140,30 @@
<Grid x:ConnectionId='5' Name="valueStoreGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.15*"/>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock x:ConnectionId='6' Name="ItemId"
Grid.Column="0" />
Grid.Column="0" FontSize="12"/>
<TextBlock x:ConnectionId='7' Name="ItemName"
Grid.Column="1"/>
Grid.Column="1" FontSize="12"/>
<TextBlock x:ConnectionId='8'
Grid.Column="2"/>
Grid.Column="2" FontSize="12"/>
<TextBlock x:ConnectionId='9'
Grid.Column="3"/>
Grid.Column="3" FontSize="12"/>
<TextBlock x:ConnectionId='10'
Grid.Column="4"/>
Grid.Column="4" FontSize="12"/>
<TextBlock x:ConnectionId='11'
Grid.Column="5"/>
Grid.Column="5" FontSize="12"/>
<TextBlock x:ConnectionId='12'
Grid.Column="6" FontSize="12"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,57 @@
#pragma checksum "C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\View\NewRecordDialog.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "E6B7AD18E439ED29B1A698C5AA5CD744"
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace HospitalServerManager.View
{
partial class NewRecordDialog :
global::Windows.UI.Xaml.Controls.ContentDialog,
global::Windows.UI.Xaml.Markup.IComponentConnector,
global::Windows.UI.Xaml.Markup.IComponentConnector2
{
/// <summary>
/// Connect()
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Windows.UI.Xaml.Build.Tasks"," 10.0.17.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public void Connect(int connectionId, object target)
{
switch(connectionId)
{
case 1: // View\NewRecordDialog.xaml line 1
{
global::Windows.UI.Xaml.Controls.ContentDialog element1 = (global::Windows.UI.Xaml.Controls.ContentDialog)(target);
((global::Windows.UI.Xaml.Controls.ContentDialog)element1).PrimaryButtonClick += this.ContentDialog_PrimaryButtonClick;
((global::Windows.UI.Xaml.Controls.ContentDialog)element1).SecondaryButtonClick += this.ContentDialog_SecondaryButtonClick;
}
break;
case 2: // View\NewRecordDialog.xaml line 15
{
this.grid = (global::Windows.UI.Xaml.Controls.Grid)(target);
}
break;
default:
break;
}
this._contentLoaded = true;
}
/// <summary>
/// GetBindingConnector(int connectionId, object target)
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Windows.UI.Xaml.Build.Tasks"," 10.0.17.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public global::Windows.UI.Xaml.Markup.IComponentConnector GetBindingConnector(int connectionId, object target)
{
global::Windows.UI.Xaml.Markup.IComponentConnector returnValue = null;
return returnValue;
}
}
}

View File

@ -0,0 +1,43 @@
#pragma checksum "C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\View\NewRecordDialog.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "E6B7AD18E439ED29B1A698C5AA5CD744"
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace HospitalServerManager.View
{
partial class NewRecordDialog : global::Windows.UI.Xaml.Controls.ContentDialog
{
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Windows.UI.Xaml.Build.Tasks"," 10.0.17.0")]
private global::Windows.UI.Xaml.Controls.Grid grid;
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Windows.UI.Xaml.Build.Tasks"," 10.0.17.0")]
private bool _contentLoaded;
/// <summary>
/// InitializeComponent()
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Windows.UI.Xaml.Build.Tasks"," 10.0.17.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public void InitializeComponent()
{
if (_contentLoaded)
return;
_contentLoaded = true;
global::System.Uri resourceLocator = new global::System.Uri("ms-appx:///View/NewRecordDialog.xaml");
global::Windows.UI.Xaml.Application.LoadComponent(this, resourceLocator, global::Windows.UI.Xaml.Controls.Primitives.ComponentResourceLocation.Application);
}
partial void UnloadObject(global::Windows.UI.Xaml.DependencyObject unloadableObject);
}
}

View File

@ -0,0 +1,18 @@
<ContentDialog x:ConnectionId='1'
x:Class="HospitalServerManager.View.NewRecordDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:HospitalServerManager.View"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Title="Nowy rekord"
PrimaryButtonText="Dodaj nowe"
SecondaryButtonText="Anuluj"
>
<Grid x:ConnectionId='2' Name="grid">
</Grid>
</ContentDialog>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
<?xml version="1.0" encoding="utf-8"?><XamlCompilerSaveState><ReferenceAssemblyList /><XamlSourceFileDataList><XamlSourceFileData XamlFileName="App.xaml" ClassFullName="HospitalServerManager.App" GeneratedCodePathPrefix="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\obj\x86\Debug\App" XamlFileTimeAtLastCompileInTicks="636807519556072439" HasBoundEventAssignments="False" /><XamlSourceFileData XamlFileName="View\MainFrameView.xaml" ClassFullName="HospitalServerManager.View.MainFrameView" GeneratedCodePathPrefix="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\obj\x86\Debug\View\MainFrameView" XamlFileTimeAtLastCompileInTicks="636807519556461398" HasBoundEventAssignments="False" /><XamlSourceFileData XamlFileName="View\PatientsPage.xaml" ClassFullName="HospitalServerManager.View.PatientsPage" GeneratedCodePathPrefix="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\obj\x86\Debug\View\PatientsPage" XamlFileTimeAtLastCompileInTicks="636809413194965253" HasBoundEventAssignments="False" /><XamlSourceFileData XamlFileName="View\UserControls\ColumnListView.xaml" ClassFullName="HospitalServerManager.View.UserControls.ColumnListView" GeneratedCodePathPrefix="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\obj\x86\Debug\View\UserControls\ColumnListView" XamlFileTimeAtLastCompileInTicks="636807519556521243" HasBoundEventAssignments="False" /><XamlSourceFileData XamlFileName="View\DoctorsPage.xaml" ClassFullName="HospitalServerManager.View.DoctorsPage" GeneratedCodePathPrefix="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\obj\x86\Debug\View\DoctorsPage" XamlFileTimeAtLastCompileInTicks="636810904480483810" HasBoundEventAssignments="False" /><XamlSourceFileData XamlFileName="View\RoomsPage.xaml" ClassFullName="HospitalServerManager.View.RoomsPage" GeneratedCodePathPrefix="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\obj\x86\Debug\View\RoomsPage" XamlFileTimeAtLastCompileInTicks="636810885636308434" HasBoundEventAssignments="False" /></XamlSourceFileDataList></XamlCompilerSaveState>
<?xml version="1.0" encoding="utf-8"?><XamlCompilerSaveState><ReferenceAssemblyList /><XamlSourceFileDataList><XamlSourceFileData XamlFileName="App.xaml" ClassFullName="HospitalServerManager.App" GeneratedCodePathPrefix="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\obj\x86\Debug\App" XamlFileTimeAtLastCompileInTicks="636807519556072439" HasBoundEventAssignments="False" /><XamlSourceFileData XamlFileName="View\MainFrameView.xaml" ClassFullName="HospitalServerManager.View.MainFrameView" GeneratedCodePathPrefix="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\obj\x86\Debug\View\MainFrameView" XamlFileTimeAtLastCompileInTicks="636807519556461398" HasBoundEventAssignments="False" /><XamlSourceFileData XamlFileName="View\PatientsPage.xaml" ClassFullName="HospitalServerManager.View.PatientsPage" GeneratedCodePathPrefix="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\obj\x86\Debug\View\PatientsPage" XamlFileTimeAtLastCompileInTicks="636809413194965253" HasBoundEventAssignments="False" /><XamlSourceFileData XamlFileName="View\UserControls\ColumnListView.xaml" ClassFullName="HospitalServerManager.View.UserControls.ColumnListView" GeneratedCodePathPrefix="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\obj\x86\Debug\View\UserControls\ColumnListView" XamlFileTimeAtLastCompileInTicks="636807519556521243" HasBoundEventAssignments="False" /><XamlSourceFileData XamlFileName="View\DoctorsPage.xaml" ClassFullName="HospitalServerManager.View.DoctorsPage" GeneratedCodePathPrefix="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\obj\x86\Debug\View\DoctorsPage" XamlFileTimeAtLastCompileInTicks="636812527087135541" HasBoundEventAssignments="False" /><XamlSourceFileData XamlFileName="View\RoomsPage.xaml" ClassFullName="HospitalServerManager.View.RoomsPage" GeneratedCodePathPrefix="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\obj\x86\Debug\View\RoomsPage" XamlFileTimeAtLastCompileInTicks="636810885636308434" HasBoundEventAssignments="False" /><XamlSourceFileData XamlFileName="View\NewRecordDialog.xaml" ClassFullName="HospitalServerManager.View.NewRecordDialog" GeneratedCodePathPrefix="C:\Users\Marcel\Documents\GitHub\HospitalServerManagerApp\HospitalServerManager\obj\x86\Debug\View\NewRecordDialog" XamlFileTimeAtLastCompileInTicks="636816189280521117" HasBoundEventAssignments="False" /></XamlSourceFileDataList></XamlCompilerSaveState>

File diff suppressed because it is too large Load Diff

View File

@ -10,6 +10,7 @@ App.xbf
HospitalServerManager.xr.xml
View\DoctorsPage.xbf
View\MainFrameView.xbf
View\NewRecordDialog.xbf
View\PatientsPage.xbf
View\RoomsPage.xbf
View\UserControls\ColumnListView.xbf

View File

@ -10,6 +10,7 @@ App.xbf
HospitalServerManager.xr.xml
View\DoctorsPage.xbf
View\MainFrameView.xbf
View\NewRecordDialog.xbf
View\PatientsPage.xbf
View\RoomsPage.xbf
View\UserControls\ColumnListView.xbf

View File

@ -10,6 +10,7 @@ App.xbf
HospitalServerManager.xr.xml
View\DoctorsPage.xbf
View\MainFrameView.xbf
View\NewRecordDialog.xbf
View\PatientsPage.xbf
View\RoomsPage.xbf
View\UserControls\ColumnListView.xbf

View File

@ -10,6 +10,7 @@ App.xbf
HospitalServerManager.xr.xml
View\DoctorsPage.xbf
View\MainFrameView.xbf
View\NewRecordDialog.xbf
View\PatientsPage.xbf
View\RoomsPage.xbf
View\UserControls\ColumnListView.xbf