CaseFileClientFunctions.cs
1.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;
using DirRX.LongTermArchive.CaseFile;
using Sungero.Domain.Shared;
using Sungero.Metadata;
using CommonLibrary;
namespace DirRX.LongTermArchive.Client
{
partial class CaseFileFunctions
{
// Изменить доступность для редактирования свойств карточки в зависимости от статуса дела в ДА.
public void SetStateProperties()
{
if (!_obj.LTAStageDirRX.HasValue)
_obj.LTAStageDirRX = LTAStageDirRX.InWork;
// Установить доступность отображаемых свойств в зависимости от статуса "Формирование".
var inWork = _obj.LTAStageDirRX.Value == LTAStageDirRX.InWork;
var props = _obj.State.Properties;
foreach (var prop in props.Where(p => p.IsVisible))
{
// Получить параметр "Разрешить редактирование" из метаданных свойства.
var propMetadata = (PropertyMetadata)prop.GetType().GetProperty("PropertyMetadata").GetValue(prop);
if (propMetadata.IsEnabled)
prop.IsEnabled = inWork;
}
// Установить доступность свойства "Плановая дата уничтожения" в зависимости от статуса "Завершено".
props.LTADestructionDateDirRX.IsEnabled = _obj.LTAStageDirRX.Value == LTAStageDirRX.CompletedDirRX ||
_obj.LTAStageDirRX.Value == LTAStageDirRX.ArchivedDirRX;
// Разрешить редактирование свойства "Местонахождение" вне зависимости от статуса.
if (!props.LTALocationDirRX.IsEnabled)
props.LTALocationDirRX.IsEnabled = true;
}
}
}