ModuleSharedFunctions.cs
3.46 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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;
namespace Sungero.ExchangeCore.Shared
{
public class ModuleFunctions
{
/// <summary>
/// Проставить статус соединения в абонентских ящиках подразделений.
/// </summary>
/// <param name="box">Абонентский ящик нашей организации.</param>
public void SetDepartmentBoxConnectionStatus(IBusinessUnitBox box)
{
var departmentBoxes = Functions.BoxBase.Remote.GetActiveChildBoxes(box);
var closedDepartmentBoxes = Functions.BoxBase.Remote.GetClosedChildBoxes(box);
departmentBoxes.AddRange(closedDepartmentBoxes);
departmentBoxes = departmentBoxes.Where(x => !Equals(x.ConnectionStatus, box.ConnectionStatus)).ToList();
foreach (var departmentBox in departmentBoxes)
{
if (!Equals(departmentBox.ConnectionStatus, box.ConnectionStatus))
{
departmentBox.ConnectionStatus = box.ConnectionStatus;
departmentBox.Save();
}
}
}
/// <summary>
/// Получить значение параметра из гиперссылки.
/// </summary>
/// <param name="hyperlink">Гиперссылка на документ из сервиса обмена.</param>
/// <param name="parameterName">Имя параметра.</param>
/// <returns>Значение параметра.</returns>
public virtual string GetParameterValueFromHyperlink(string hyperlink, string parameterName)
{
if (string.IsNullOrWhiteSpace(hyperlink) || string.IsNullOrWhiteSpace(parameterName))
return string.Empty;
try
{
Uri hyperlinkUri = new Uri(hyperlink);
return System.Web.HttpUtility.ParseQueryString(hyperlinkUri.Query).Get(parameterName);
}
catch
{
return string.Empty;
}
}
/// <summary>
/// Получить Guid документа из гиперссылки.
/// </summary>
/// <param name="hyperlink">Гиперссылка на документ из сервиса обмена.</param>
/// <returns>Строковое представление Guid документа.</returns>
public virtual string GetDocumentGuidFromHyperlink(string hyperlink)
{
if (string.IsNullOrWhiteSpace(hyperlink))
return string.Empty;
var documentAddressParts = hyperlink.Split(Constants.Module.HyperlinkDelimiter);
var pattern = Constants.Module.GuidPatternWithAdditionalInfo;
foreach (var part in documentAddressParts)
{
var match = System.Text.RegularExpressions.Regex.Match(part, pattern);
if (match.Success)
return match.Value;
}
return string.Empty;
}
/// <summary>
/// Проверить, что строка соответствует формату Guid.
/// </summary>
/// <param name="guid">Строка, содержащая Guid.</param>
/// <returns>True, если строка соответствует формату Guid, иначе False.</returns>
public virtual bool CheckGuid(string guid)
{
if (string.IsNullOrWhiteSpace(guid))
return false;
var pattern = Constants.Module.GuidPattern;
var match = System.Text.RegularExpressions.Regex.Match(guid, pattern);
if (match.Success)
return true;
return false;
}
}
}