Пример #1
0
        void ICatalogo.CargarControles()
        {
            manejadorDeMiembros = new ManejadorDeMiembros();

            Filtros.CargarControles();
            StoreCiclos.Cargar(Ciclo.Obtener());
            StorePasos.Cargar(MiembroPaso.Obtener());
            StoreCategorias.Cargar(PasoCategoria.Obtener());
        }
        public bool GuardarPasosPorMiembro(int miembroId, RegistrosHelper.RegistrosDeDatos pasosNuevosYEliminados)
        {
            bool rtn = false;

            if (miembroId > 0 && (pasosNuevosYEliminados.RegistrosNuevosId.Count > 0 || pasosNuevosYEliminados.RegistrosEliminadosId.Count > 0))
            {
                Miembro     miembro = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Miembro where o.MiembroId == miembroId select o).FirstOrDefault();
                MiembroPaso miembroPaso;

                if (miembro == null)
                {
                    throw new ExcepcionReglaNegocio(Literales.RegistroInexistente);
                }

                //Si tenemos registros nuevos...
                if (pasosNuevosYEliminados.RegistrosNuevosId.Count > 0)
                {
                    //Agregamos los nuevos pasos celulas (siempre y cuando no existan previamente...)
                    foreach (KeyValuePair <int, Dictionary <string, string> > pasoObj in pasosNuevosYEliminados.RegistrosNuevos)
                    {
                        if (!miembro.MiembroPaso.Any(o => o.PasoId == pasoObj.Key && o.Borrado == false))
                        {
                            int cicloId;
                            if (!int.TryParse(pasoObj.Value["CicloId"], out cicloId))
                            {
                                Paso paso = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Paso where o.PasoId == pasoObj.Key select o).FirstOrDefault();

                                if (paso != null)
                                {
                                    throw new ExcepcionReglaNegocio(string.Format("El paso [{0}] no cuenta con un ciclo valido; favor de corregirlo y volver a intentar.", paso.Descripcion));
                                }
                                else
                                {
                                    throw new ExcepcionReglaNegocio(string.Format("El paso cuyo id es [{0}] es inexistente; favor de corregirlo y volver a intentar.", pasoObj.Key));
                                }
                            }

                            miembroPaso           = new MiembroPaso();
                            miembroPaso.MiembroId = miembroId;
                            miembroPaso.PasoId    = pasoObj.Key;
                            miembroPaso.CicloId   = cicloId;
                            miembro.MiembroPaso.Add(miembroPaso);
                        }
                    }

                    //Guardamos los cambios, antes de eliminar registros
                    miembro.Guardar(SesionActual.Instance.getContexto <IglesiaEntities>());
                }

                //Eliminamos los pasos eliminados
                foreach (int pasoId in pasosNuevosYEliminados.RegistrosEliminadosId)
                {
                    miembroPaso = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().MiembroPaso where o.PasoId == pasoId && o.MiembroId == miembroId && o.Borrado == false select o).FirstOrDefault();
                    if (miembroPaso != null)
                    {
                        miembroPaso.Borrar(SesionActual.Instance.getContexto <IglesiaEntities>());
                    }
                }
            }

            return(rtn);
        }