protected override bool InternalExecute(ProcessExecutingContext context) { RecordId = Guid.Empty; if (EntitySchemaId.Equals(Guid.Empty)) { return(true); } if (FilterEntitySchemaId != Guid.Empty) { Dictionary <string, string> entityColumnMap = null; var filterResultEntityCollection = GetFilterResultEntityCollection(out entityColumnMap); foreach (var filterResultEntity in filterResultEntityCollection) { var newEntity = GetNewEntity(); if (newEntity == null) { return(true); } FillRowWithDataByFilter(newEntity, filterResultEntity, entityColumnMap); newEntity.Save(false); } } else { var newEntity = GetNewEntity(); if (newEntity == null) { return(true); } FillRowWithData(newEntity); newEntity.Save(false); RecordId = newEntity.PrimaryColumnValue; } return(true); }
protected override bool InternalExecute(ProcessExecutingContext context) { EntitySchemaId.CheckArgumentEmpty("EntitySchemaId"); EntitySchemaManager entitySchemaManager = UserConnection.EntitySchemaManager; EntitySchema entitySchema = entitySchemaManager.GetInstanceByUId(EntitySchemaId); var esq = new EntitySchemaQuery(entitySchemaManager, entitySchema.Name) { UseAdminRights = false }; esq.AddAllSchemaColumns(); esq.IgnoreDisplayValues = GlobalAppSettings.FeatureIgnoreDisplayValuesInDataUserTasks; ProcessUserTaskUtilities.SpecifyESQFilters(UserConnection, this, entitySchema, esq, DataSourceFilters); bool isEmptyFilter = esq.Filters.Count == 0; if (!isEmptyFilter && esq.Filters.Count == 1) { var filterGroup = esq.Filters[0] as EntitySchemaQueryFilterCollection; if (filterGroup != null && filterGroup.Count == 0) { isEmptyFilter = true; } } if (isEmptyFilter) { throw new NullOrEmptyException(new LocalizableString("Terrasoft.Core", "ProcessSchemaDeleteDataUserTask.Exception.DeleteDataWithEmptyFilter")); } EntityCollection entities = esq.GetEntityCollection(UserConnection); while (entities.Count > 0) { Entity entity = entities.First.Value; entity.UseAdminRights = false; entities.RemoveFirst(); entity.Delete(); } return(true); }