π¬ IEE BPM | Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ
ΠΠΎΠ΄ΡΠ»Ρ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ELMA, Π²ΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ:
β’ Π Π΅ΠΆΠΈΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ/ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π²Ρ
ΠΎΠ΄ ΠΏΠΎΠ΄ Π»ΡΠ±ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΠΏΡΠ°Π²)
β’ Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π»ΠΎΠ³ΠΎΡΠΈΠΏ ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ
β’ ΠΠ°Π½Π½Π΅Ρ ΡΠ°Π±ΠΎΡΡ Π² ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅
β’ ΠΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΎΠ± ΠΏΡΠΎΡΠΈΠ»Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠ°Π±ΠΎΡΠ°Ρ
β’ ΠΠ²ΡΠΎΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ½ΡΡ
Π·Π°Π΄Π°Ρ
β’ ΠΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΠΎ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡ (ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ)
β’ ΠΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π½ΡΡ
Ρ
Π΅Π»ΠΏΠ΅ΡΠΎΠ²
β’ Π‘ΡΠ΅ΡΡΠΈΠΊΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΡ (Π°Π½Π°Π»ΠΎΠ³ Π½ΡΠΌΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°Ρ
)
β’ ΠΡ
ΠΎΠ΄ΡΡΠ°Ρ ΠΏΠΎΡΡΠ° Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ
β’ ΠΠ²ΠΎΡΡΠΌ ΡΠ΅ΡΠ²ΠΈΡΡ
β’ ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Π°Π²ΡΠΎΡΠΎΠΌ
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ
- Π₯Π΅Π»ΠΏΠ΅ΡΡ
- ΠΠΎΠ΄Π΅Π»ΠΈ
- ΠΡΠΈΠΌΠ΅Ρ HTML Π±ΡΡΠ½Π΄ ΡΠ°Π±Π»ΠΎΠ½Π°
- ΠΡΠΈΠΌΠ΅ΡΡ
- Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² Π·Π°Π΄Π°ΡΠ΅
- Π‘ΠΊΡΡΡΠΈΠ΅/ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² Π² ΠΏΡΠΎΡΠ΅ΡΡΠ½ΡΡ Π·Π°Π΄Π°ΡΠ°Ρ
- ΠΠ²ΠΎΡΡΠΌ ΡΠ΅ΡΠ²ΠΈΡΡ
- ΠΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ
ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΈ ΡΠΎΠ½ΠΊΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΡ
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΡ
ΠΠ»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΡΡ Π»ΠΎΠ³ΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΡ ΠΎΠΏΡΠΈΡ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ :
1. ΠΡΠ±ΡΠ°ΡΡ ΠΌΠ΅Π½Ρ ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ - Π’ΡΠ½ΠΈΠ½Π³ ΡΠΈΡΡΠ΅ΠΌΡ.
2. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π₯ Π΄Π½Π΅ΠΉ, ΡΡΠ°ΡΡΠ΅ ΠΊΠΎΡΠΎΡΡΡ Π»ΠΎΠ³ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π±ΡΠ΄ΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ, Π»ΠΈΠ±ΠΎ 0 Π΄Π»Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠΈΡΡΠΊΠΈ.
ΠΡΠ»ΠΈ Π±ΡΠ»ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π½Π΅ΠΉ Π±ΠΎΠ»ΡΡΠ΅ 0, ΡΠΎ Π² ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΡ Π»ΠΎΠ³ΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΡΠ°ΡΡΠ΅ Π»ΠΎΠ³ΠΈ ΠΈ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ΄Π°Π»ΡΡΡ ΠΈΡ :
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΠΎΡΠΈΡΡΠΊΠΈ Π±ΡΠ΄Π΅Ρ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ Π»ΠΎΠ³ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ:
Π₯Π΅Π»ΠΏΠ΅ΡΡ
namespace ITino.ELMA.Common.Helpers
ModelHelper
/// <summary>
/// ΠΡΠΎΠΏΠΈΡΠ°Π½ΠΎ Π»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
/// </summary>
/// <param name="pm">ΠΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°</param>
/// <returns></returns>
public static bool IsConfigProperty(PropertyMetadata pm)
/// <summary>
/// ΠΠΎΠ»ΡΡΠΈΡΡ Uid Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ
/// </summary>
/// <param name="value">ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ</param>
/// <returns></returns>
public static Guid GetEnumUid(object value)
/// <summary>
/// ΠΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ
/// </summary>
/// <param name="value">ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ</param>
/// <returns></returns>
public static string GetEnumDescription(object value)
/// <summary>
/// ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠ° ΡΡΡΠ½ΠΎΡΡΠΈ
/// </summary>
/// <param name="entity">Π‘ΡΡΠ½ΠΎΡΡΡ</param>
/// <returns></returns>
public static string GetEntityDisplayName(IEntity entity)
/// <summary>
/// ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΈΠΏΠ° ΡΡΡΠ½ΠΎΡΡΠΈ
/// </summary>
/// <param name="entity">Π‘ΡΡΠ½ΠΎΡΡΡ</param>
/// <returns></returns>
public static string GetEntityDescription(IEntity entity)
/// <summary>
/// ΠΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ
/// </summary>
/// <param name="uid">Uid ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ°</param>
/// <param name="values">ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²</param>
/// <typeparam name="T">Π’ΠΈΠΏ ΡΡΡΠ½ΠΎΡΡΠΈ</typeparam>
public static void CheckEntityPresent<T>(Guid uid, object values) where T : IEntity
/// <summary>
/// Π£Π΄Π°Π»ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° (Π΅ΡΠ»ΠΈ Π΅ΡΡΡ)
/// </summary>
/// <param name="uid">Uid ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ°</param>
/// <typeparam name="T">Π’ΠΈΠΏ ΡΡΡΠ½ΠΎΡΡΠΈ</typeparam>
public static void RemoveEntityIfPresent<T>(Guid uid) where T : IEntity
ELMA4
/// <summary>
/// ΠΠ±ΡΠ΅Π·Π°ΡΡ ΡΠ°ΡΡΡ Π΄Π°ΡΡ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
/// </summary>
/// <param name="dateTime"></param>
/// <param name="timeSpan"></param>
/// <returns></returns>
public static DateTime Truncate(this DateTime dateTime, TimeSpan timeSpan)
/// <summary>
/// ΠΠ±ΡΠ΅Π·Π°ΡΡ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Ρ
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
public static DateTime TruncateMs(this DateTime dateTime)
ListenerHelper
/// <summary>ΠΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ°ΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅</summary>
/// <typeparam name="T">Π’ΠΈΠΏ</typeparam>
/// <param name="event">Π‘ΠΎΠ±ΡΡΠΈΠ΅</param>
/// <param name="propertyName">ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°</param>
/// <returns>Π‘ΡΠ°ΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅</returns>
public static T GetOldValue<T>(PostUpdateEvent @event, string propertyName)
/// <summary>ΠΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ°ΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅</summary>
/// <typeparam name="T">Π’ΠΈΠΏ</typeparam>
/// <param name="event">Π‘ΠΎΠ±ΡΡΠΈΠ΅</param>
/// <param name="propertyName">ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°</param>
/// <returns>Π‘ΡΠ°ΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅</returns>
public static T GetOldValue<T>(PreUpdateEvent @event, string propertyName)
/// <summary>ΠΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°</summary>
/// <typeparam name="T">Π’ΠΈΠΏ</typeparam>
/// <param name="event">Π‘ΠΎΠ±ΡΡΠΈΠ΅</param>
/// <param name="propertyName">ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°</param>
/// <returns>ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅</returns>
public static T GetValue<T>(PostUpdateEvent @event, string propertyName)
/// <summary>ΠΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Ρ</summary>
/// <param name="event">Π‘ΠΎΠ±ΡΡΠΈΠ΅</param>
/// <param name="propertyName">ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°</param>
/// <param name="value">ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅</param>
public static void SetValue(PreUpdateEvent @event, string propertyName, object value)
/// <summary>ΠΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°</summary>
/// <typeparam name="T">Π’ΠΈΠΏ</typeparam>
/// <param name="event">Π‘ΠΎΠ±ΡΡΠΈΠ΅</param>
/// <param name="propertyName">ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°</param>
/// <returns>ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅</returns>
public static T GetValue<T>(PostInsertEvent @event, string propertyName)
/// <summary>ΠΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Ρ</summary>
/// <param name="event">Π‘ΠΎΠ±ΡΡΠΈΠ΅</param>
/// <param name="propertyName">ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°</param>
/// <param name="value">ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅</param>
public static void SetValue(PreInsertEvent @event, string propertyName, object value)
ServerHelper
/// <summary>
/// ΠΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ°
/// </summary>
public static string AverageStartTime
/// <summary>
/// ΠΠ΅ΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² IEE
/// </summary>
public static string IEEVersion
/// <summary>
/// ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠΈΠ·Π½Π°ΠΊ ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
/// </summary>
public static bool IsTesting
/// <summary>
/// ΠΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ
/// </summary>
public static void RestartServer()
/// <summary>
/// ΠΠΎΠ³Π³Π΅Ρ ΠΈΠΌΠΏΠΎΡΡΠ°
/// </summary>
public static ILog ImportLogger
/// <summary>
/// ΠΠ°ΠΏΠΈΡΡ Π² ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΈΠΌΠΏΠΎΡΡΠ° Π΄Π°Π½Π½ΡΡ
Π² ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ
/// </summary>
/// <param name="name">ΠΠΌΡ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ°</param>
/// <param name="total">ΠΡΠ΅Π³ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ</param>
/// <param name="new">ΠΠΎΠ²ΡΡ
Π·Π°ΠΏΠΈΡΠ΅ΠΉ</param>
/// <param name="update">ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ</param>
/// <param name="delete">Π£Π΄Π°Π»Π΅Π½ΠΈΠΉ</param>
public static void ImportLogCatalog(string name, int total, int @new = 0, int update = 0, int delete = 0)
/// <summary>
/// ΠΠ°ΠΏΠΈΡΡ Π² ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΈΠΌΠΏΠΎΡΡΠ° ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° ΠΎΡΡΡΡΡΡΠ²ΡΡΡ
/// </summary>
/// <param name="name">ΠΠΌΡ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ°</param>
public static void ImportLogCatalogNone(string name)
/// <summary>
/// ΠΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°
/// </summary>
/// <returns></returns>
public static TimeSpan UpTime
/// <summary>
/// ΠΠΎΠ³Π³Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΠ
/// </summary>
public static ILog DbUpdateLogger
/// <summary>
/// ΠΠΎΠ³Π΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ
/// </summary>
public static ILog ProcessLogger
Β
UserHelper
/// <summary>
/// Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
/// </summary>
public static IUser SystemUser
/// <summary>
/// ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ±ΠΌΠ΅Π½Π°
/// </summary>
public static IUser ExchangeUser
/// <summary>
/// ΠΠΎΠ»ΡΡΠΈΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
/// </summary>
/// <param name="user">ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ</param>
/// <returns>Π ΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ (Π΅ΡΠ»ΠΈ Π΅ΡΡΡ, ΠΈΠ½Π°ΡΠ΅ null)</returns>
public static IUser GetImmediateChiefByUser(IUser user)
/// <summary>
/// ΠΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ΅Ρ
Π°ΠΊΡΠΈΠ²Π½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π³ΡΡΠΏΠΏΡ
/// </summary>
/// <param name="gUidStr">Π‘ΡΡΠΎΠΊΠΎΠ²ΡΠΉ Uid Π³ΡΡΠΏΠΏΡ</param>
/// <returns>Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ</returns>
public static IEnumerable<IUser> GetUsersInGroup(string gUidStr)
/// <summary>
/// ΠΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ΅Ρ
Π°ΠΊΡΠΈΠ²Π½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π³ΡΡΠΏΠΏΡ
/// </summary>
/// <param name="gUid">Uid Π³ΡΡΠΏΠΏΡ</param>
/// <returns>Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ</returns>
public static IEnumerable<IUser> GetUsersInGroup(Guid gUid)
/// <summary>
/// ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»Π½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»Ρ Π² ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΡΠ΅
/// </summary>
/// <param name="fullName">ΠΠΎΠ»Π½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»Ρ</param>
/// <param name="lastNameOrder">Π€Π°ΠΌΠΈΠ»ΠΈΡ Π² Π½Π°ΡΠ°Π»Π΅</param>
/// <returns>Π‘ΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»Ρ</returns>
public static string ConvertToShortName(string fullName, bool lastNameOrder = true)
/// <summary>
/// ΠΡ
ΠΎΠ΄ΠΈΡ Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² Π³ΡΡΠΏΠΏΡ ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ
/// </summary>
/// <returns></returns>
public static bool IsAdmin
Π’ΠΎΠ»ΡΠΊΠΎ ELMA4
/// <summary>
/// ΠΡΠΏΡΠ°Π²ΠΈΡΡ push ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
/// </summary>
/// <param name="title">ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ</param>
/// <param name="message">Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅</param>
/// <param name="clickUrl">Π‘ΡΡΠ»ΠΊΠ° Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ</param>
/// <param name="tag">Π’ΡΠ³ (Π΄Π»Ρ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ)</param>
/// <returns></returns>
public static bool WebPush(string message, string title = null, string clickUrl = null, string tag = null)
/// <summary>
/// ΠΡΠΏΡΠ°Π²ΠΈΡΡ push ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
/// </summary>
/// <param name="user">ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ</param>
/// <param name="title">ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ</param>
/// <param name="message">Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅</param>
/// <param name="clickUrl">Π‘ΡΡΠ»ΠΊΠ° Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ</param>
/// <param name="tag">Π’ΡΠ³ (Π΄Π»Ρ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ)</param>
/// <returns></returns>
public static bool WebPush(IUser user, string message, string title = null, string clickUrl = null, string tag = null)
WorkflowHelper
/// <summary>
/// ΠΠΎΠ»ΡΡΠΈΡΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΠΎ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠΈΠΏΡ ΡΡΡΠ½ΠΎΡΡΠΈ
/// </summary>
/// <param name="typeUid">UID ΡΠΈΠΏΠ° ΡΡΡΠ½ΠΎΡΡΠΈ</param>
/// <returns>Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Workflow</returns>
public static IEnumerable<IWorkflowProcess> GetStartableProcessesByInputEntity(Guid typeUid)
/// <summary>
/// ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ
/// </summary>
/// <param name="element">Uid ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π·Π°Π΄Π°ΡΠΈ Π½Π° ΡΡ
Π΅ΠΌΠ΅</param>
/// <param name="task">ΠΠ°Π΄Π°ΡΠ°</param>
/// <param name="author">ΠΠ²ΡΠΎΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ</param>
/// <param name="date">ΠΠ°ΡΠ° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ</param>
/// <param name="comment">ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ</param>
/// <param name="type">Π’ΠΈΠΏ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ</param>
public static void CommentForTask(Guid element, ITaskBase task, IUser author, DateTime date, string comment, EOWorkflowTaskCommentType type = EOWorkflowTaskCommentType.Info)
/// <summary>
/// Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠΊΠ°Π·Π°
/// </summary>
/// <param name="message">Π’Π΅ΠΊΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ</param>
/// <param name="type">Π’ΠΈΠΏ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ</param>
public static void Notify(string message, NotifyType type = NotifyType.Info)
/// <summary>
/// Π£Π±ΡΠ°ΡΡ Π·Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ Π·Π°Π΄Π°ΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°
/// </summary>
/// <param name="task">ΠΠ°Π΄Π°ΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠ°</param>
/// <param name="uid">Uid Π·Π°Π΄Π°ΡΠΈ Π½Π° ΡΡ
Π΅ΠΌΠ΅</param>
/// <param name="ignoreUsers">Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ</param>
public static void RemoveReplacement([NotNull] this ITaskBase task, Guid uid, IEnumerable<IUser> ignoreUsers = null)
/// <summary>
/// ΠΠ°Π²Π΅ΡΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Ρ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
/// </summary>
/// <param name="context"></param>
/// <param name="error"></param>
public static void CompleteWithError(object context, string error)
/// <summary>
/// ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π·Π°Π΄Π°ΡΠΈ
/// </summary>
/// <param name="element">Id Π·Π°Π΄Π°ΡΠΈ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅</param>
/// <param name="task">Π‘ΠΎΠ·Π΄Π°Π½Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° Π² OnTaskCreate</param>
/// <param name="action">ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅</param>
public static void ProcessLongAction(Guid element, ITaskBase task, Action<LongActionModel, ISession> action)
ΠΠΎΠ΄Π΅Π»ΠΈ
LongActionModel
public class LongActionModel
{
/// <summary>
/// ΠΠΎΠ³Π³Π΅Ρ
/// </summary>
public ILog Logger { get; }
/// <summary>
/// ΠΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°
/// </summary>
public WorkflowInstanceContext Context { get; }
/// <summary>
/// ΠΠ°ΡΠ°Π»ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ
/// </summary>
public DateTime StartDate { get; }
/// <summary>
/// ΠΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ
/// </summary>
public DateTime? EndDate { get; set; }
/// <summary>
/// ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ
/// </summary>
public string Name { get; set; }
/// <summary>
/// ΠΠ°Π΄Π°ΡΠ° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°
/// </summary>
public IWorkflowTaskBase Task { get; set; }
/// <summary>
/// ΠΠ½ΠΎΠΏΠΊΠΈ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΎΠ²
/// </summary>
public IEnumerable<string> Buttons { get; set; }
/// <summary>
/// ΠΡΠΈΠ±ΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
/// </summary>
public string Error { get; set; }
/// <summary>
/// ΠΠ±Π½ΠΎΠ²ΠΈΡΡ Π·Π°Π΄Π°ΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
/// </summary>
public bool RefreshOnCompleted { get; set; }
}
ΠΡΠΈΠΌΠ΅Ρ HTML Π±ΡΡΠ½Π΄ ΡΠ°Π±Π»ΠΎΠ½Π°
ELMA4
<div style="font-family: Arial, Helvetica, sans-serif; font-weight: 100;">
<table style="border-spacing: 0px; border: 0; width: 100%; border-collapse: collapse;">
<tr style="background: #ffdddd; text-align: right;">
<td style="width: 1%; padding: 10px;">
<img src="https://www.elmastore.ru/img/emaillogo.png" width="128"/>
</td>
<td style="width: 99%; padding: 15px; vertical-align: top;">
<span style="font-size: 2.0em;">ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΠ°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ</span>
</td>
</tr>
<tr>
<td colspan="2" style="background: #6495ed; font-size: 1.2em; padding: 10px;">
{$Body}
</td>
</tr>
<tr>
<td colspan="2" style="color: gray; font-size: 0.7em; padding-top: 10px;">
Π£ΠΠΠΠΠΠΠΠΠΠ Π ΠΠΠΠ€ΠΠΠΠΠ¦ΠΠΠΠ¬ΠΠΠ‘Π’Π: ΠΡΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π»ΡΠ±ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΊ Π½Π΅ΠΌΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠ°ΡΡΠΎΡΡΠΈΠΌ ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΠ΅ΠΌ ΠΠ°Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ ΠΠ°ΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉΡΡ Π² Π½Π°ΡΡΠΎΡΡΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ Π»ΡΠ±ΡΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ. ΠΡΠ»ΠΈ ΠΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠΎΠΎΠ±ΡΠΈΡΠ΅ ΠΎΠ± ΡΡΠΎΠΌ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ ΠΏΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΠ΅ ΠΈ ΡΠ΄Π°Π»ΠΈΡΠ΅ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
</td>
</tr>
</table>
</div>
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ:
ΠΡΠΈΠΌΠ΅ΡΡ
ΠΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² Π·Π°Π΄Π°ΡΠ΅
ΠΠ»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° "Π‘ΠΊΡΠΈΠΏΡ" ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ°ΠΉΠΌΠ°ΡΡΡ ΠΈ ΡΡΡΠ²Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄. ΠΡΠΈ ΡΡΠΎΠΌ Π² ΡΠ°ΠΌΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ, Π½Π° Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² Π±ΡΠ΄ΡΡ ΡΠΊΡΡΡΡ.
ΠΠ½ΡΡΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ context. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ model.Context.
public override void OnTaskCreate(ITaskBase task, P_IA_AandP context)
{
// 4f55dd98-5242-4633-88e8-4c745551b52c - Id Π·Π°Π΄Π°ΡΠΈ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅
WorkflowHelper.ProcessLongAction(new Guid("4f55dd98-5242-4633-88e8-4c745551b52c"), task, (model, session) =>
{
model.Name = "Π‘Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ
ΠΏΠΎ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ Π·Π°Π΄Π°ΡΠ°ΠΌ"; // ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ΅ Π² Π·Π°Π΄Π°ΡΠ΅
// ΠΠ΄Π΅ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ
var instanceContext = model.Context as P_IA_AandP;
});
}
Π ELMA4 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° ΡΠΈΠ³Π½Π°ΡΡΡΠ° Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° - Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΠΈΠΏ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°:
public override void OnTaskCreate(ITaskBase task, P_IA_AandP context)
{
// 4f55dd98-5242-4633-88e8-4c745551b52c - Id Π·Π°Π΄Π°ΡΠΈ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅
WorkflowHelper.ProcessLongAction<P_IA_AandP>(new Guid("4f55dd98-5242-4633-88e8-4c745551b52c"), task, (model, session) =>
{
model.Name = "Π‘Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ
ΠΏΠΎ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ Π·Π°Π΄Π°ΡΠ°ΠΌ"; // ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ΅ Π² Π·Π°Π΄Π°ΡΠ΅
// ΠΠ΄Π΅ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ
var instanceContextVar1 = model.Context.Var1;
});
}
ΠΠΎΡΠ»Π΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ - ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, Π΅ΡΠ»ΠΈ Π±ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π·Π°Π΄Π°ΡΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°, ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² Π±ΡΠ΄ΡΡ ΡΠΊΡΡΡΡ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΎ ΡΡΠ΅ΡΡΠΈΠΊΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² Π²Π½ΠΎΠ²Ρ ΠΏΠΎΡΠ²ΡΡΡΡ ΠΈ Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π°Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
ΠΡΠ»ΠΈ Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌ ΠΊΠΎΠ΄Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΡΠΎ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΡΠ²ΡΡΡΡ:
Π‘ΠΊΡΡΡΠΈΠ΅/ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² Π² ΠΏΡΠΎΡΠ΅ΡΡΠ½ΡΡ Π·Π°Π΄Π°ΡΠ°Ρ
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ 4.0.28 ΠΈ 3.15.48
ΠΠ° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ELMA4 Π 2 Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ
ΠΠ»Ρ ΡΠΊΡΡΡΠΈΡ ΠΈΠ»ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π² Π·Π°Π΄Π°ΡΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ form.HideConnector:
using ITino.ELMA.Common.Helpers;
/// <summary>
/// Π‘ΠΊΡΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π° Π½Π° ΠΊΠ°ΠΊΠΎΠ΅ ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅
/// </summary>
/// <param name="context">ΠΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°</param>
/// <param name="form"></param>
public virtual void HideOnChange (Context context, EleWise.ELMA.Model.Views.FormViewBuilder<Context> form)
{
// Π§ΡΠΎ ΡΠΎ ΠΌΠ΅Π½ΡΠ΅ΠΌ Π² Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ
ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠ° (Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°)
context.Two = context.One;
// Π‘ΠΊΡΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π°, Π³Π΄Π΅ Uid ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π° Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°
form.HideConnector(new Guid("b29c9cc7-7068-4213-a6e3-987171a702aa"));
}
/// <summary>
/// ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΠ°Π½Π΅Π΅ ΡΠΊΡΡΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π° Π½Π° ΠΊΠ°ΠΊΠΎΠ΅ ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅
/// </summary>
/// <param name="context">ΠΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°</param>
/// <param name="form"></param>
public virtual void ShowOnChange (Context context, EleWise.ELMA.Model.Views.FormViewBuilder<Context> form)
{
// ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π°, Π³Π΄Π΅ Uid ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π° Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°
form.HideConnector(new Guid("b29c9cc7-7068-4213-a6e3-987171a702aa"), false);
}
ΠΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ:
Π Π΄Π»Ρ ELMA4:
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ Ρ ΠΎΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΊΡΡΡΡΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄, ΡΠΎ Π² Π²Π΅ΡΡ Π½Π΅ΠΌ ΠΌΠ΅Π½Ρ ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π‘Π΄Π΅Π»Π°Π½ΠΎ, Ρ.ΠΊ. Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π² Π½Π΅ΠΌ Π½ΡΠΆΠ½ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄:
ΠΠ²ΠΎΡΡΠΌ ΡΠ΅ΡΠ²ΠΈΡΡ
Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΠΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ
ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³
ΠΠΎΡΡΡΠΏΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΈΠΈ
Π‘ΡΠ°ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ ΠΊΠ²ΠΎΡΡΠΌ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ - Π‘ΠΈΡΡΠ΅ΠΌΠ° - ΠΠ²ΠΎΡΡΠΌ ΡΠ΅ΡΠ²ΠΈΡΡ:
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅ΠΊΡΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°Ρ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΊΠ²ΠΎΡΡΠΌ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΈ - ΠΠ»Π΅ΠΌΠ΅Π½Ρ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΊΠ²ΠΎΡΡΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°.
ΠΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ
CounterManager
public class CounterManager : EntityManager<ICOCounter, long>
{
/// <summary>
/// instance
/// </summary>
public new static CounterManager Instance => Locator.GetServiceNotNull<CounterManager>();
/// <summary>
/// ΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ
/// </summary>
/// <param name="uid">Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΠ΅ΡΡΠΈΠΊΠ°</param>
/// <param name="name">ΠΠ°Π·Π²Π°Π½ΠΈΠ΅</param>
/// <param name="mask">ΠΠ°ΡΠΊΠ° Π² ΡΠΎΡΠΌΠ°ΡΠ΅ string.Format</param>
/// <returns></returns>
public ICOCounter LoadOrCreate(Guid uid, string name = null, string mask = null);
/// <summary>
/// ΠΠΎΠ»ΡΡΠΈΡΡ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠ°ΠΊΡΠ΅
/// </summary>
/// <param name="counter">Π‘ΡΠ΅ΡΡΠΈΠΊ</param>
/// <param name="save">Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π² Π±Π°Π·Π΅</param>
/// <param name="checkYear">Π‘Π±ΡΠΎΡΠΈΡΡ Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π°</param>
/// <param name="args">ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π°ΡΠ³ΡΡΠΌΠ΅ΡΡ Π΄Π»Ρ ΠΌΠ°ΡΠΊΠΈ</param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public string FormatNewValue(ICOCounter counter, bool save = true, bool checkYear = false, params object[] args);
/// <summary>
/// ΠΠΎΠ»ΡΡΠΈΡΡ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
/// </summary>
/// <param name="counter">Π‘ΡΠ΅ΡΡΠΈΠΊ</param>
/// <param name="save">Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π² Π±Π°Π·Π΅</param>
/// <param name="checkYear">Π‘Π±ΡΠΎΡΠΈΡΡ Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π°</param>
/// <returns></returns>
/// <exception cref="ArgumentException"></exception>
[Transaction]
public virtual long GetNewId(ICOCounter counter, bool save = true, bool checkYear = false);
}
Β