public FishBoneOutput Execute(int id, string name, string color, bool active) { var fishBone = _fishBoneRepository.Get(id); if (fishBone != null) { if (!((fishBone.Active != active) && !active && _fishBoneRepository.GetCountActive() <= 1)) { if (!((fishBone.Active != active) && active && _fishBoneRepository.GetCountActive() >= 6)) { if (_fishBoneRepository.CheckExistsFishBone(color, name, id) == null) { fishBone.Name = name; fishBone.Active = active; fishBone.Color = color; var res = _fishBoneRepository.Update(fishBone); return(new FishBoneOutput(fishBone.FishboneID, fishBone.Name, fishBone.Color, fishBone.Active)); } else { throw new DuplicateEntityException(name, "Ya existe una espina de pesacado con este nombre"); } } else { throw new CantDesactivateException(name, "No se puede tener mas de 6 categorías activas"); } } else { throw new CantDesactivateException(name, "Debe existir al menos una categoría activa"); } } else { throw new EntityNotFoundException(id, "No se encontró espina de pesacado con ese ID"); } }
public FishBoneOutput Execute(bool active, string color, string name) { if (_fishBoneRepository.GetCountActive() < 6 && active) { if (_fishBoneRepository.Get(name, color) == null) { var newParam = new Domain.FishBone.FishBone(name, color, active); newParam = _fishBoneRepository.Add(newParam); return(new FishBoneOutput(newParam.FishboneID, newParam.Name, newParam.Color, newParam.Active)); } else { throw new DuplicateEntityException(name, "Ya existe un estado de espina de pescado con este nombre"); } } else { throw new DuplicateEntityException(name, "No se puede agregar mas de 6 categorías activas"); } }