Esempio n. 1
0
        public async Task <WrapperSimpleTypesDTO> EliminarPlan(Planes planParaEliminar)
        {
            using (SportsGoEntities context = new SportsGoEntities(false))
            {
                PlanesRepository planRepository = new PlanesRepository(context);

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

                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)
                {
                    bool esPlanDefault = await planRepository.BuscarSiPlanEsDefault(planParaEliminar);

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

                NoticiasRepository noticiasRepo = new NoticiasRepository(context);
                Notificaciones     notificacion = new Notificaciones
                {
                    CodigoPlanNuevo = planParaEliminar.Consecutivo
                };
                noticiasRepo.EliminarNotificacionesDeUnPlan(notificacion);

                PlanesContenidos planContenido = new PlanesContenidos
                {
                    CodigoPlan = planParaEliminar.Consecutivo
                };
                planRepository.EliminarMultiplesPlanesContenidos(planContenido);

                planRepository.EliminarPlan(planParaEliminar);

                ArchivosRepository archivoRepo = new ArchivosRepository(context);
                Archivos           archivo     = new Archivos
                {
                    Consecutivo = planParaEliminar.CodigoArchivo
                };
                archivoRepo.EliminarArchivo(archivo);

                WrapperSimpleTypesDTO wrapperEliminarPlan = new WrapperSimpleTypesDTO();

                wrapperEliminarPlan.NumeroRegistrosAfectados = await context.SaveChangesAsync();

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

                return(wrapperEliminarPlan);
            }
        }
Esempio n. 2
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);
            }
        }
Esempio n. 3
0
        internal async Task <WrapperSimpleTypesDTO> CambiarPlanUsuarioADefaultPerfilPorVencimiento(PlanesUsuariosDTO planesUsuariosVencidoParaCambiar)
        {
            using (SportsGoEntities context = new SportsGoEntities(false))
            {
                PlanesRepository planesRepo = new PlanesRepository(context);

                Planes planParaBuscar = new Planes
                {
                    Consecutivo = planesUsuariosVencidoParaCambiar.CodigoPlan
                };
                int?codigoPerfil = await planesRepo.BuscarCodigoTipoPerfilDeUnPlan(planParaBuscar);

                if (!codigoPerfil.HasValue)
                {
                    throw new InvalidOperationException("No se pudo hallar el codigo de perfil!. BUUUUG");
                }

                TipoPerfil tipoPerfil        = codigoPerfil.Value.ToEnum <TipoPerfil>();
                int?       codigoPlanDefault = await planesRepo.BuscarCodigoPlanDefault(tipoPerfil);

                if (!codigoPlanDefault.HasValue)
                {
                    throw new InvalidOperationException("No se pudo hallar el codigo del plan default para este perfil!. BUUUUG");
                }

                PlanesUsuarios planParaCambiar = new PlanesUsuarios
                {
                    Consecutivo       = planesUsuariosVencidoParaCambiar.Consecutivo,
                    CodigoPlanDeseado = codigoPlanDefault.Value
                };

                WrapperSimpleTypesDTO wrapper = await CambiarDePlanUsuario(planParaCambiar);

                return(wrapper);
            }
        }