Exemple #1
0
        private void ValidateChildrenRelationships()
        {
            if (ChildProjects.Count() > 0)
            {
                if (Entity.BeginDate.HasValue && ChildProjects.Count(p => p.BeginDate.HasValue) > 0)
                {
                    DateTime minBeginDate = ChildProjects.Where(p => p.BeginDate.HasValue).Min(p => p.BeginDate.Value);
                    if (Entity.BeginDate.Value > minBeginDate)
                    {
                        Recipient.SetError(nameof(Entity.BeginDate),
                                           $"Дата открытия проекта не может быть позже, чем самая ранняя дата открытия дочерних проектов ({minBeginDate.ToShortDateString()})");
                    }
                }
                if (Entity.EndDate.HasValue && ChildProjects.Count(p => p.EndDate.HasValue) > 0)
                {
                    DateTime maxEndDate = ChildProjects.Where(p => p.EndDate.HasValue).Max(p => p.EndDate.Value);
                    if (Entity.EndDate.Value < maxEndDate)
                    {
                        Recipient.SetError(nameof(Entity.EndDate),
                                           $"Дата закрытия проекта не может быть раньше, чем самая поздня дата закрытия дочерних проектов ({maxEndDate.ToShortDateString()})");
                    }
                }

                ValidateChildrenContractAmount();
                ValidateChildrenSubcontractorsAmountBudget();
                ValidateChildrenOrganisationAmountBudget();
                ValidateChildrenEmployeePayrollBudget();
                ValidateChildrenOtherCostsBudget();
            }
        }
Exemple #2
0
 public override void Validate()
 {
     LoadRelationships();
     ValidateProperties();
     ValidateSingleLevelHierarchy();
     if (ParentProject != null)
     {
         ValidateParentRelationships();
     }
     if (ChildProjects.Count() > 0)
     {
         ValidateChildrenRelationships();
     }
 }
Exemple #3
0
        private void ValidateSingleLevelHierarchy()
        {
            if (ParentProject == null)
            {
                return;
            }

            if (ChildProjects.Count() > 0)
            {
                Recipient.SetError(nameof(Entity.ParentProjectID), "Нельзя указать родительский проект, так как у текущего проекта есть дочерние");
                return;
            }

            if (ParentProject.ParentProject != null || ParentProject.ParentProjectID.HasValue)
            {
                Recipient.SetError(nameof(Entity.ParentProjectID), "Нельзя указать выбранный проект в качестве родительского, так как он является дочерним к другому проекту");
            }
        }
 bool CanDeleteProject()
 {
     return(ChildProjects.Count(p => p.IsSelected == true) == 1);
 }