ExternalSystemHandlers.cs 1.69 KB
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;
using DirRX.Storage.ExternalSystem;

namespace DirRX.Storage
{
  partial class ExternalSystemServerHandlers
  {

    public override void AfterSave(Sungero.Domain.AfterSaveEventArgs e)
    {
      // Создать обязательные справочники для синхронизации с системой-источником.
      if (e.Params.Contains(Storage.Constants.ExternalSystem.CreateRequiredExternalEntitiesKey))
      {
        e.Params.Remove(Storage.Constants.ExternalSystem.CreateRequiredExternalEntitiesKey);
        Functions.ExternalSystem.CreateRequiredExternalEntity(_obj, Constants.Module.EntityType.DocumentKind);
        Functions.ExternalSystem.CreateRequiredExternalEntity(_obj, Constants.Module.EntityType.BusinessUnit);
        Functions.ExternalSystem.CreateRequiredExternalEntity(_obj, Constants.Module.EntityType.Department);
        Functions.ExternalSystem.CreateRequiredExternalEntity(_obj, Constants.Module.EntityType.FileRetentionPeriod);
        Functions.ExternalSystem.CreateRequiredExternalEntity(_obj, Constants.Module.EntityType.CaseFile);
      }      
    }

    public override void Saving(Sungero.Domain.SavingEventArgs e)
    {
      _obj.Name = _obj.SourceUid; 
      // Сразу после первого сохранения запустить создание обязательных справочников исходной системы (в событии "После сохранения").
      if (_obj.State.IsInserted)
        e.Params.Add(Storage.Constants.ExternalSystem.CreateRequiredExternalEntitiesKey, true);      
    }
  }

}