コード例 #1
0
        public async Task <WrapperSimpleTypesDTO> CrearPlan(Planes planParaCrear)
        {
            using (SportsGoEntities context = new SportsGoEntities(false))
            {
                PlanesRepository planRepository = new PlanesRepository(context);

                planParaCrear.Archivos.CodigoTipoArchivo = (int)TipoArchivo.Imagen;
                planRepository.CrearPlan(planParaCrear);

                WrapperSimpleTypesDTO wrapperCrearPlan = new WrapperSimpleTypesDTO();

                wrapperCrearPlan.NumeroRegistrosAfectados = await context.SaveChangesAsync();

                if (wrapperCrearPlan.NumeroRegistrosAfectados > 0)
                {
                    wrapperCrearPlan.Exitoso           = true;
                    wrapperCrearPlan.ConsecutivoCreado = planParaCrear.Consecutivo;

                    if (planParaCrear.PlanDefault == (int)SiNoEnum.Si)
                    {
                        await planRepository.DesasignarPlanDefaultDeUnPerfilMenosActual(planParaCrear.Consecutivo, planParaCrear.CodigoTipoPerfil);
                    }

                    NoticiasRepository noticiasRepo = new NoticiasRepository(context);
                    Notificaciones     notificacion = new Notificaciones
                    {
                        CodigoTipoNotificacion = (int)TipoNotificacionEnum.NuevoPlan,
                        CodigoPlanNuevo        = planParaCrear.Consecutivo,
                        Creacion = DateTime.Now
                    };

                    noticiasRepo.CrearNotificacion(notificacion);

                    wrapperCrearPlan.NumeroRegistrosAfectados += await context.SaveChangesAsync();

                    //if (notificacion.Consecutivo > 0)
                    //{
                    //    TimeLineNotificaciones timeLineNotificacion = new TimeLineNotificaciones(await noticiasRepo.BuscarNotificacion(notificacion));
                    //}
                }

                return(wrapperCrearPlan);
            }
        }
コード例 #2
0
        public async Task <WrapperSimpleTypesDTO> AsignarPlanDefault(Planes planParaAsignar)
        {
            using (SportsGoEntities context = new SportsGoEntities(false))
            {
                PlanesRepository planRepository = new PlanesRepository(context);
                Planes           planExistente  = await planRepository.AsignarPlanDefault(planParaAsignar);

                // Para dejar el plan existente como el unico default
                await planRepository.DesasignarPlanDefaultDeUnPerfilMenosActual(planExistente.Consecutivo, planExistente.CodigoTipoPerfil);

                WrapperSimpleTypesDTO wrapperAsignarPlanDefault = new WrapperSimpleTypesDTO();

                wrapperAsignarPlanDefault.NumeroRegistrosAfectados = await context.SaveChangesAsync();

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

                return(wrapperAsignarPlanDefault);
            }
        }
コード例 #3
0
        public async Task <WrapperSimpleTypesDTO> ModificarPlan(Planes planParaModificar)
        {
            using (SportsGoEntities context = new SportsGoEntities(false))
            {
                PlanesRepository planRepository = new PlanesRepository(context);

                planParaModificar.CodigoTipoPerfil = (int)planParaModificar.TipoPerfil;

                Planes planExistente = await planRepository.ModificarPlan(planParaModificar);

                if (planParaModificar.PlanesContenidos != null && planParaModificar.PlanesContenidos.Count > 0)
                {
                    foreach (var planContenido in planParaModificar.PlanesContenidos)
                    {
                        if (planContenido.Consecutivo > 0)
                        {
                            await planRepository.ModificarPlanContenido(planContenido);
                        }
                        else
                        {
                            planRepository.CrearPlanContenido(planContenido);
                        }
                    }
                }

                // Si lo voy a desasignar como default valido que no me quede sin defaults
                if (planExistente.PlanDefault == 1 && planParaModificar.PlanDefault == 0)
                {
                    TipoPerfil tipoPerfil            = planParaModificar.CodigoTipoPerfil.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() + "!.");
                    }

                    planExistente.PlanDefault = 0;
                }
                else
                {
                    // Si lo voy a asignar entonces mando a desasignar todos los default de este perfil y procedo a asignar el que estoy modificando
                    if (planExistente.PlanDefault == 0 && planParaModificar.PlanDefault == 1)
                    {
                        await planRepository.DesasignarPlanDefaultDeUnPerfilMenosActual(planExistente.Consecutivo, planExistente.CodigoTipoPerfil);
                    }

                    planExistente.PlanDefault = planParaModificar.PlanDefault;
                }

                WrapperSimpleTypesDTO wrapperModificarPlan = new WrapperSimpleTypesDTO();

                wrapperModificarPlan.NumeroRegistrosAfectados = await context.SaveChangesAsync();

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

                return(wrapperModificarPlan);
            }
        }