/// <summary> /// Remueve las dosis de producto /// </summary> /// <param name="product"></param> /// <returns></returns> private async Task RemoveDoses(Product product) { if (!string.IsNullOrWhiteSpace(product.Id)) { //obtiene el identificador de la dosis por defecto var defaultDoses = await queries.GetDefaultDosesId(product.Id); if (string.IsNullOrWhiteSpace(defaultDoses)) { await CreateDefaultDoses(product.Id); } // obtiene todas las dosis que no sean por defecto y estén activas var dosesPrevIds = await queries.GetActiveDosesIdsFromProductId(product.Id); // de las dosis encontradas usa el dosesOperation para eliiminar if (dosesPrevIds.Any()) { foreach (var idDoses in dosesPrevIds) { // elimina cada dosis, internamente elimina si no hay dependencias, si existen dependencias la desactiva y la deja en el search. await dosesOperation.Remove(idDoses); } } } }
private async Task <RelatedId> RemoveDoses(Product product) { if (!string.IsNullOrWhiteSpace(product.Id)) { //obtiene el identificador de la dosis por defecto var defaultDoses = await queries.GetDefaultDosesId(product.Id); if (string.IsNullOrWhiteSpace(defaultDoses)) { defaultDoses = await CreateDefaultDoses(product.Id); } // elimina todas las dosis que no sean por defecto relacionadas con el producto search.DeleteElementsWithRelatedElementExceptId(EntityRelated.DOSES, EntityRelated.PRODUCT, product.Id, defaultDoses); // obtiene todas las dosis que no sean por defecto var dosesPrevIds = await queries.GetActiveDosesIdsFromProductId(product.Id); if (dosesPrevIds.Any()) { foreach (var idDoses in dosesPrevIds) { // elimina cada dosis, internamente elimina si no hay dependencias, si existen dependencias la desactiva y la deja en el search. await dosesOperation.Remove(idDoses); } } return(new RelatedId { EntityIndex = (int)EntityRelated.DOSES, EntityId = defaultDoses }); } else { var dosesDefaultId = await CreateDefaultDoses(product.Id); return(new RelatedId { EntityIndex = (int)EntityRelated.DOSES, EntityId = dosesDefaultId }); } }