public decimal GetAnonNumericDimension(int IdProduct, int IdDimension) { //obtiene al producto var product = productsRepository.GetProduct(IdProduct); if (product == null) { throw new Contract.Exceptions.ProductsNotFoundException("No se encontró un producto con el id " + IdProduct, null); } //validar existencia de dimension buscada Repository.EntityFramework.Dimensions dimension = dimensionsRepository.GetDimension(IdDimension); if (dimension == null) { throw new Contract.Exceptions.ProductDimensionNotFoundException("La dimensión (" + IdDimension + ") no existe para este producto", null); } //ahora va a buscar el perfil anonimo por defecto del producto var profile = profilesRepository.GetProfileByAnon(IdProduct); var profiledimension = profile.ProfilesDimensions.FirstOrDefault(e => e.IdDimension == IdDimension); //validar existencia de dimension del perfil anonimo buscada if (profiledimension == null) { throw new Contract.Exceptions.ProfileDimensionAnonNoConfiguredException("El producto (" + IdProduct + ") no tiene configurado ninguna relacion para usuario ANONIMO con la dimension (" + IdDimension + ")", null); } if (profiledimension.Value == null) { throw new Contract.Exceptions.ProfileDimensionAnonNoConfiguredException("La profiledimension(" + profiledimension.IdProfileDimension + ") no tiene ningún valor SWITCH por defecto", null); } //ahora va a buscar la dimension y su valor por defecto para ese perfil return((decimal)profiledimension.Value); }