Exemple #1
0
		private static async Task RemoveDynamicCategoryAndItsDynFields2Async(string catId, DBManager dbM, ICollection<DynamicCategory> dynamicCategories, ICollection<DynamicField> dynamicFields)
		{
			if (!string.IsNullOrWhiteSpace(catId) && dbM != null)
			{
				var dynCat = dynamicCategories.FirstOrDefault(a => a.CategoryId == catId);
				if (dynCat != null)
				{
					var descriptionIdsOfFieldsToBeRemoved = new List<string>();
					if (await dbM.DeleteFromDynamicCategoriesAsync(dynCat, descriptionIdsOfFieldsToBeRemoved))
					{
						dynamicCategories.Remove(dynCat);
						await dynCat.CloseAsync(); // no need to open dynCats

						foreach (var fieldDescriptionId in descriptionIdsOfFieldsToBeRemoved)
						{
							var fieldToBeRemoved = dynamicFields.FirstOrDefault(dynFld => dynFld.FieldDescriptionId == fieldDescriptionId);
							if (fieldToBeRemoved != null)
							{
								dynamicFields.Remove(fieldToBeRemoved);
								await fieldToBeRemoved.CloseAsync(); // no need to open dynFlds
							}
						}
					}
				}
			}
		}