Exemple #1
0
        public async Task <WrapperSimpleTypesDTO> DesasignarPlanDefault(Planes planParaDesasignar)
        {
            using (SportsGoEntities context = new SportsGoEntities(false))
            {
                PlanesRepository planRepository = new PlanesRepository(context);

                int?codigoTipoPerfilPlan = await planRepository.BuscarCodigoTipoPerfilDeUnPlan(planParaDesasignar);

                if (!codigoTipoPerfilPlan.HasValue)
                {
                    throw new InvalidOperationException("El plan no tiene un tipo de perfil especificado!. BUUUUUGGGGGG!.");
                }

                TipoPerfil tipoPerfil            = codigoTipoPerfilPlan.Value.ToEnum <TipoPerfil>();
                int        numeroDePlanesDefault = await planRepository.NumeroPlanesDefault(tipoPerfil);

                if (numeroDePlanesDefault <= 1)
                {
                    throw new InvalidOperationException("No puedes quedarte sin planes default para el perfil de " + tipoPerfil.ToString() + "!.");
                }

                Planes planExistente = await planRepository.DesasignarPlanDefault(planParaDesasignar);

                WrapperSimpleTypesDTO wrapperDesasignarPlanDefault = new WrapperSimpleTypesDTO();

                wrapperDesasignarPlanDefault.NumeroRegistrosAfectados = await context.SaveChangesAsync();

                if (wrapperDesasignarPlanDefault.NumeroRegistrosAfectados > 0)
                {
                    wrapperDesasignarPlanDefault.Exitoso = true;
                }

                return(wrapperDesasignarPlanDefault);
            }
        }