Exemplo n.º 1
0
        public SPUsuario Obtener(int id)
        {
            var usuario = new SPUsuario();

            try
            {
                using (var ctx = new PresupuestoContext())
                {
                    usuario = ctx.SPUsuario.Where(x => x.Id == id)
                              .SingleOrDefault();
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(usuario);
        }
Exemplo n.º 2
0
        public bool Save(CreateUsuarioDto model)
        {
            var rpta = false;

            try
            {
                using (var ctx = new PresupuestoContext())
                {
                    using (DbContextTransaction transacion = ctx.Database.BeginTransaction())
                    {
                        try
                        {
                            if (model.Id == 0)
                            {
                                model.password = HashHelper.SHA256(model.password);
                            }

                            var usuario = new SPUsuario
                            {
                                Id       = model.Id,
                                email    = model.email,
                                usuario  = model.usuario,
                                password = model.password,
                                estado   = "A"
                            };

                            if (usuario.Id > 0)
                            {
                                ctx.Entry(usuario).State = EntityState.Modified;
                            }
                            else
                            {
                                ctx.Entry(usuario).State = EntityState.Added;
                            }
                            ctx.SaveChanges();

                            var usuarioId = usuario.Id;

                            //eliminamos los existentes para sustituirlos
                            var permisos = ctx.SPUsuarioPermiso.Where(x => x.usuarioId == usuarioId).ToList();
                            ctx.SPUsuarioPermiso.RemoveRange(permisos);
                            ctx.SaveChanges();

                            foreach (var u in model.permisos)
                            {
                                var usuario_permiso = new SPUsuarioPermiso
                                {
                                    usuarioId = usuarioId,
                                    permisoId = u
                                };

                                ctx.Entry(usuario_permiso).State = EntityState.Added;
                                ctx.SaveChanges();
                            }

                            //eliminamos los existentes de la tabla paises
                            var paises = ctx.SPUsuarioPais.Where(x => x.usuarioId == usuarioId).ToList();
                            ctx.SPUsuarioPais.RemoveRange(paises);
                            ctx.SaveChanges();

                            foreach (var p in model.paises)
                            {
                                var usuario_pais = new SPUsuarioPais
                                {
                                    usuarioId = usuarioId,
                                    paisId    = p
                                };

                                ctx.Entry(usuario_pais).State = EntityState.Added;
                                ctx.SaveChanges();
                            }

                            //eliminamos los presupuestos asignados anteriormente
                            var presupuestos = ctx.SPUsuarioPresupuesto.Where(x => x.usuarioId == usuarioId).ToList();
                            ctx.SPUsuarioPresupuesto.RemoveRange(presupuestos);
                            ctx.SaveChanges();
                            if (model.presupuestos != null)
                            {
                                foreach (var p in model.presupuestos)
                                {
                                    var usuario_p = new SPUsuarioPresupuesto {
                                        usuarioId = usuarioId,
                                        tipoId    = p
                                    };

                                    ctx.Entry(usuario_p).State = EntityState.Added;
                                    ctx.SaveChanges();
                                }
                            }

                            transacion.Commit();
                            rpta = true;
                        }catch (Exception e)
                        {
                            transacion.Rollback();
                            throw e;
                        }
                    }
                }
            }catch (Exception e)
            {
                throw e;
            }
            return(rpta);
        }