IncomingInvitationTaskServerFunctions.cs
2.76 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
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;
using Sungero.ExchangeCore.IncomingInvitationTask;
namespace Sungero.ExchangeCore.Server
{
partial class IncomingInvitationTaskFunctions
{
/// <summary>
/// Создать задачу на обработку приглашения к эл. обмену от контрагента.
/// </summary>
/// <param name="counterparty">Контрагент.</param>
/// <param name="box">Абонентский ящик.</param>
/// <param name="organizationId">Ид контрагента в сервисе обмена.</param>
/// <param name="comment">Комментарий приглашения.</param>
/// <returns>Задача на обработку приглашения к эл. обмену от контрагента.</returns>
public static IIncomingInvitationTask Create(Parties.ICounterparty counterparty, IBusinessUnitBox box, string organizationId, string comment)
{
var counterpartyBox = counterparty.ExchangeBoxes.Where(x => Equals(x.OrganizationId, organizationId)).Select(o => o.CounterpartyBox).FirstOrDefault();
var invitationTask = IncomingInvitationTasks.Create();
var subject = IncomingInvitationTasks.Resources.TaskSubjectFormat(counterparty.Name, box.BusinessUnit.Name, box.ExchangeService.Name);
invitationTask.Subject = Exchange.PublicFunctions.Module.CutText(subject, invitationTask.Info.Properties.Subject.Length);
invitationTask.ActiveText = IncomingInvitationTasks.Resources.TaskActiveTextFormat(counterparty.Name, box.BusinessUnit.Name, box.ExchangeService.Name);
if (!string.IsNullOrWhiteSpace(counterpartyBox))
{
invitationTask.ActiveText += Environment.NewLine;
invitationTask.ActiveText += Environment.NewLine;
invitationTask.ActiveText += IncomingInvitationTasks.Resources.CounterpartyBox;
invitationTask.ActiveText += Environment.NewLine + counterpartyBox;
}
if (!string.IsNullOrWhiteSpace(comment))
{
invitationTask.ActiveText += Environment.NewLine;
invitationTask.ActiveText += Environment.NewLine;
invitationTask.ActiveText += IncomingInvitationTasks.Resources.AssignmentComment;
invitationTask.ActiveText += Environment.NewLine + comment;
}
invitationTask.Box = box;
invitationTask.Counterparty = counterparty;
invitationTask.Assignee = box.Responsible;
invitationTask.MaxDeadline = Calendar.Now.AddWorkingDays(invitationTask.Assignee, 2);
invitationTask.Attachments.Add(counterparty);
invitationTask.OrganizationId = organizationId;
invitationTask.Save();
invitationTask.Start();
return invitationTask;
}
}
}