Beispiel #1
0
        private CanDeleteResponse GetCanDeleteByProjectResourceId(Guid projectResourceId)
        {
            var entitySchemaManager  = UserConnection.EntitySchemaManager;
            CanDeleteResponse result = new CanDeleteResponse();

            result.Success = true;
            var esqWork = new EntitySchemaQuery(entitySchemaManager, "WorkResourceElement");

            esqWork.AddColumn("Id");
            var projectResFilter = esqWork.CreateFilterWithParameters(FilterComparisonType.Equal, "ProjectResourceElement", projectResourceId);

            esqWork.Filters.Add(projectResFilter);
            var workEntities = esqWork.GetEntityCollection(UserConnection);

            if (workEntities.Count > 0)
            {
                result.Success = false;
                result.Code    = 200;
                return(result);
            }
            var projectResourceElementSchema = entitySchemaManager.GetInstanceByName("ProjectResourceElement");
            var projectResourceEntity        = projectResourceElementSchema.CreateEntity(UserConnection);

            if (!projectResourceEntity.FetchFromDB(projectResourceElementSchema.GetPrimaryColumnName(), projectResourceId))
            {
                return(result);
            }
            var projectId = projectResourceEntity.GetTypedColumnValue <Guid>(projectResourceElementSchema.Columns.FindByName("Project").ColumnValueName);
            var contactId = projectResourceEntity.GetTypedColumnValue <Guid>(projectResourceElementSchema.Columns.FindByName("Contact").ColumnValueName);

            if (projectId == null || projectId == Guid.Empty || contactId == null || contactId == Guid.Empty)
            {
                return(result);
            }
            var esqActivity = new EntitySchemaQuery(entitySchemaManager, "Activity");

            esqActivity.AddColumn("Id");
            var projects      = HierarchicalProjectUtilities.GetChildProjectsIDs(projectId, UserConnection);
            var projectFilter = esqActivity.CreateFilterWithParameters(FilterComparisonType.Equal, "Project", projects.Select(x => (object)x).ToArray());

            esqActivity.Filters.Add(projectFilter);
            var ownerFilter = esqActivity.CreateFilterWithParameters(FilterComparisonType.Equal, "Owner", contactId);

            esqActivity.Filters.Add(ownerFilter);
            var activityEntities = esqActivity.GetEntityCollection(UserConnection);

            if (activityEntities.Count > 0)
            {
                result.Success = false;
                result.Code    = 300;
                return(result);
            }
            return(result);
        }
Beispiel #2
0
        public CanDeleteResponse GetCanDelete(List <Guid> projectResources)
        {
            CanDeleteResponse result = new CanDeleteResponse();

            result.Success = true;
            foreach (var projectResourceId in projectResources)
            {
                if (result.Success)
                {
                    result = GetCanDeleteByProjectResourceId(projectResourceId);
                }
            }
            return(result);
        }