//api guardar actividad
        public HttpResponseMessage Post(CreateUsuarioDto model)
        {
            try
            {
                var rpta = _usuario.Save(model);

                return(Request.CreateResponse(HttpStatusCode.OK, rpta));
            }
            catch
            {
                var message = "error al guardar";
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, message));
            }
        }
Example #2
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            var defaultRoleKey = "USER";

            if (ModelState.IsValid)
            {
                #region obtener rol id
                var            owinContext    = HttpContext.GetOwinContext().Get <BitSecurityContext>();
                RoleRepository roleRepository = new RoleRepository(owinContext);
                var            roleId         = roleRepository.GetRoleByName(defaultRoleKey).Id;
                #endregion

                CreateUsuarioDto createUsuario = new CreateUsuarioDto {
                    Email = model.Email, Password = model.Password, EmailConfirmed = true
                };
                createUsuario.RolesIds = new Guid[] { roleId };
                try
                {
                    var serviceResult = usuarioService.Create(createUsuario);
                    if (serviceResult.IsSucceed)
                    {
                        var bitUser = UserManager.FindByEmail(createUsuario.Email);
                        SignInManager.SignIn(bitUser, isPersistent: false, rememberBrowser: false);
                        owinContext.Dispose();
                        return(RedirectToAction("Index", "Home"));
                    }

                    else
                    {
                        if (serviceResult.OperationError.errorMessage != null)
                        {
                            ModelState.AddModelError("errorMessage", serviceResult.OperationError.errorMessage);
                        }
                        if (serviceResult.OperationError.Exception != null)
                        {
                            ModelState.AddModelError("exceptionMessage", serviceResult.OperationError.Exception.Message);
                        }
                    }
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", ex.Message);
                }
            }

            // Si llegamos a este punto, es que se ha producido un error y volvemos a mostrar el formulario
            return(View(model));
        }
Example #3
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);
        }