MemoHandlers.cs
1.87 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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;
using Sungero.Docflow.Memo;
namespace Sungero.Docflow
{
partial class MemoAddresseesDepartmentPropertyFilteringServerHandler<T>
{
public virtual IQueryable<T> AddresseesDepartmentFiltering(IQueryable<T> query, Sungero.Domain.PropertyFilteringEventArgs e)
{
if (_obj.Addressee == null)
return query;
return query.Where(x => x.RecipientLinks.Any(r => Equals(r.Member, _obj.Addressee)));
}
}
partial class MemoOurSignatoryPropertyFilteringServerHandler<T>
{
public override IQueryable<T> OurSignatoryFiltering(IQueryable<T> query, Sungero.Domain.PropertyFilteringEventArgs e)
{
return query;
}
}
partial class MemoServerHandlers
{
public override void BeforeSave(Sungero.Domain.BeforeSaveEventArgs e)
{
base.BeforeSave(e);
// Заполнить адресата на главной первым адресатом из коллекции для отображения в списке.
if (_obj.IsManyAddressees == true)
Functions.Memo.FillAddresseeFromAddressees(_obj);
Functions.Memo.SetManyAddresseesLabel(_obj);
var addresseesLimit = Functions.Memo.GetAddresseesLimit(_obj);
if (_obj.Addressees.Count > addresseesLimit)
e.AddError(Memos.Resources.TooManyAddresseesFormat(addresseesLimit));
}
public override void Created(Sungero.Domain.CreatedEventArgs e)
{
base.Created(e);
if (_obj.IsManyAddressees == null)
_obj.IsManyAddressees = false;
_obj.State.Properties.ManyAddresseesPlaceholder.IsEnabled = false;
// Заполнить "Подписал".
var employee = Company.Employees.Current;
if (_obj.OurSignatory == null)
_obj.OurSignatory = employee;
}
}
}