diff --git a/Labaratory/Labaratory/App.config b/Labaratory/Labaratory/App.config
index 27e1bcc..be561b4 100644
--- a/Labaratory/Labaratory/App.config
+++ b/Labaratory/Labaratory/App.config
@@ -13,6 +13,6 @@
-
+
\ No newline at end of file
diff --git a/Labaratory/Labaratory/Labaratory.csproj b/Labaratory/Labaratory/Labaratory.csproj
index 7a41978..f816495 100644
--- a/Labaratory/Labaratory/Labaratory.csproj
+++ b/Labaratory/Labaratory/Labaratory.csproj
@@ -156,6 +156,10 @@
Model1.tt
+
+
+
+
diff --git a/Labaratory/Labaratory/Models/Model11.Designer.cs b/Labaratory/Labaratory/Models/Model11.Designer.cs
index 0e84e9f..e4d3226 100644
--- a/Labaratory/Labaratory/Models/Model11.Designer.cs
+++ b/Labaratory/Labaratory/Models/Model11.Designer.cs
@@ -1,4 +1,4 @@
-// Создание кода T4 для модели "D:\Projects\TASK3UP01\Labaratory\Labaratory\Models\Model1.edmx" включено.
+// Создание кода T4 для модели "C:\Users\student1\Source\Repos\UP01TASK3\Labaratory\Labaratory\Models\Model1.edmx" включено.
// Чтобы включить формирование кода прежних версий, измените значение свойства "Стратегия создания кода" конструктора
// на "Legacy ObjectContext". Это свойство доступно в окне "Свойства", если модель
// открыта в конструкторе.
diff --git a/Labaratory/Labaratory/Services/DelegateCommand.cs b/Labaratory/Labaratory/Services/DelegateCommand.cs
new file mode 100644
index 0000000..a665df9
--- /dev/null
+++ b/Labaratory/Labaratory/Services/DelegateCommand.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Input;
+
+namespace Labaratory.Services
+{
+ public class RelayCommand : ICommand
+ {
+ private readonly Action _execute;
+ private readonly Predicate _canExecute;
+
+ public RelayCommand(Action execute, Predicate canExecute = null)
+ {
+ _execute = execute ?? throw new ArgumentNullException(nameof(execute));
+ _canExecute = canExecute;
+ }
+
+ public bool CanExecute(object parameter) => _canExecute == null || _canExecute((T)parameter);
+ public void Execute(object parameter) => _execute((T)parameter);
+ public event EventHandler CanExecuteChanged
+ {
+ add => CommandManager.RequerySuggested += value;
+ remove => CommandManager.RequerySuggested -= value;
+ }
+ }
+}
diff --git a/Labaratory/Labaratory/Services/InverseBoolToVisConverter.cs b/Labaratory/Labaratory/Services/InverseBoolToVisConverter.cs
new file mode 100644
index 0000000..501794c
--- /dev/null
+++ b/Labaratory/Labaratory/Services/InverseBoolToVisConverter.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+using System.Windows;
+
+namespace Labaratory.Services
+{
+ public class InverseBoolToVisConverter : IValueConverter
+ {
+ public object Convert(object v, Type t, object p, CultureInfo c) =>
+ (bool)v ? Visibility.Collapsed : Visibility.Visible;
+ public object ConvertBack(object v, Type t, object p, CultureInfo c) => throw new NotImplementedException();
+ }
+}
diff --git a/Labaratory/Labaratory/Services/InverseBooleanConverter.cs b/Labaratory/Labaratory/Services/InverseBooleanConverter.cs
new file mode 100644
index 0000000..532a903
--- /dev/null
+++ b/Labaratory/Labaratory/Services/InverseBooleanConverter.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+
+namespace Labaratory.Services
+{
+ public class InverseBooleanConverter : IValueConverter
+ {
+ public object Convert(object v, Type t, object p, CultureInfo c) => !(bool)v;
+ public object ConvertBack(object v, Type t, object p, CultureInfo c) => !(bool)v;
+ }
+}
diff --git a/Labaratory/Labaratory/Services/NullToVisibilityConverter.cs b/Labaratory/Labaratory/Services/NullToVisibilityConverter.cs
new file mode 100644
index 0000000..826531f
--- /dev/null
+++ b/Labaratory/Labaratory/Services/NullToVisibilityConverter.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+using System.Windows;
+
+namespace Labaratory.Services
+{
+ public class NullToVisibilityConverter : IValueConverter
+ {
+ public object Convert(object v, Type t, object p, CultureInfo c) =>
+ (v == null || string.IsNullOrEmpty(v.ToString())) ? Visibility.Collapsed : Visibility.Visible;
+ public object ConvertBack(object v, Type t, object p, CultureInfo c) => throw new NotImplementedException();
+ }
+}
diff --git a/Labaratory/Labaratory/ViewModels/AdminModel.cs b/Labaratory/Labaratory/ViewModels/AdminModel.cs
index 8b073df..9682ca7 100644
--- a/Labaratory/Labaratory/ViewModels/AdminModel.cs
+++ b/Labaratory/Labaratory/ViewModels/AdminModel.cs
@@ -48,7 +48,7 @@ namespace Labaratory.ViewModels
get
{
if (_updatePhotoCommand == null)
- _updatePhotoCommand = new RelayCommand