Esempio n. 1
0
        public override void Saved(Sungero.Domain.SavedEventArgs e)
        {
            var managers = Departments.GetAll()
                           .Where(d => d.BusinessUnit.Equals(_obj) && d.HeadOffice == null)
                           .Select(d => d.Manager)
                           .Where(m => m != null)
                           .ToList();

            if (!managers.Any())
            {
                return;
            }

            if (_obj.State.Properties.CEO.IsChanged &&
                _obj.State.Properties.CEO.OriginalValue != null)
            {
                Functions.Module.DeleteSystemSubstitutions(managers, _obj.State.Properties.CEO.OriginalValue);
            }

            if (_obj.CEO != null)
            {
                if (_obj.State.Properties.CEO.IsChanged ||
                    (_obj.State.Properties.Status.IsChanged &&
                     _obj.Status == Sungero.CoreEntities.DatabookEntry.Status.Active))
                {
                    Functions.Module.CreateSystemSubstitutions(managers, _obj.CEO);
                }

                if (_obj.State.Properties.Status.IsChanged &&
                    _obj.Status == Sungero.CoreEntities.DatabookEntry.Status.Closed)
                {
                    Functions.Module.DeleteSystemSubstitutions(managers, _obj.CEO);
                }
            }
        }
Esempio n. 2
0
        public override void Saved(Sungero.Domain.SavedEventArgs e)
        {
            var oldDepartment = _obj.State.Properties.Department.OriginalValue;
            var newDepartment = _obj.Department;

            if (!Equals(oldDepartment, newDepartment))
            {
                newDepartment.RecipientLinks.AddNew().Member = _obj;

                if (oldDepartment != null)
                {
                    foreach (var department in oldDepartment.RecipientLinks.Where(r => r.Member.Equals(_obj)).ToList())
                    {
                        oldDepartment.RecipientLinks.Remove(department);
                    }
                }
            }
        }
Esempio n. 3
0
        public override void Saved(Sungero.Domain.SavedEventArgs e)
        {
            if (_obj.Status == Docflow.ApprovalRuleBase.Status.Active)
            {
                var prevRule = Functions.ApprovalRuleBase.GetPreviousActiveRule(_obj);

                if (prevRule != null)
                {
                    prevRule.Status = Docflow.ApprovalRuleBase.Status.Closed;
                }
            }

            if (_obj.State.Properties.Name.IsChanged && _obj.Status != Docflow.ApprovalRuleBase.Status.Closed)
            {
                var rules = Functions.ApprovalRuleBase.GetAllRuleVersions(_obj).Where(x => !Equals(x.Name, _obj.Name));

                foreach (var rule in rules)
                {
                    rule.Name = _obj.Name;
                }
            }
        }