DciProcessKindHandlers.cs
1.45 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
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;
using DirRX.DciCore.DciProcessKind;
namespace DirRX.DciCore
{
partial class DciProcessKindServerHandlers
{
public override void BeforeSave(Sungero.Domain.BeforeSaveEventArgs e)
{
var validationText = string.Empty;
// Проверить корректность имени процесса.
validationText = Functions.Module.ValidateDciName(_obj.Name);
if (!string.IsNullOrWhiteSpace(validationText))
e.AddError(DirRX.DciCore.DciProcessKinds.Resources.IncorrectProcessNameFormat(validationText));
// Проверить корректность имени сообщений.
foreach (var row in _obj.Messages)
{
validationText = Functions.Module.ValidateDciName(row.Name);
if (!string.IsNullOrWhiteSpace(validationText))
e.AddError(DirRX.DciCore.DciProcessKinds.Resources.IncorrectMessageNameFormat(validationText));
}
// Проверить дубли среди имен сообщений в разрезе сообщения.
var doubleName = _obj.Messages.GroupBy(x => x.Name)
.Where(g => g.Count() > 1)
.Select(y => y.Key)
.FirstOrDefault();
if (!string.IsNullOrWhiteSpace(doubleName))
e.AddError(DirRX.DciCore.DciProcessKinds.Resources.NotUniqueMessageNameFormat(doubleName, _obj.Name));
}
}
}