示例#1
0
        public async Task <string> EditUser(EditUserViewModel model)
        {
            var user = await _userService.GetUsuario(model.Id);


            if (user == null)
            {
                return(JsonConvert.SerializeObject(new { status = "error", Message = "Ocurrio un error, los datos no se actualizaron", IsSuccess = false }));
            }
            else
            {
                var userrole = new UsuarioRoleUpdate
                {
                    UserId = model.Id,
                    RoleId = model.RoleId
                };

                var AccesoUsuario = new UsuarioAccesoUpdateDto
                {
                    UserId = model.Id,
                    Activo = model.Activo
                };

                var result = await _userService.InsertOrUpdateUsuarioRole(userrole, AccesoUsuario);


                return(JsonConvert.SerializeObject(new { status = "error", Message = "Los Datos se han actualizado!", result.IsSuccess }));
            }
        }
示例#2
0
        public async Task <ResponseHelper> InsertOrUpdateUsuarioRole(UsuarioRoleUpdate model, UsuarioAccesoUpdateDto acceso)
        {
            var result = new ResponseHelper();

            try
            {
                var originalEntry = await _context.UsuariosRoles.SingleOrDefaultAsync(x => x.UsuarioId == model.UserId);

                var originalAcceso = await _context.UsuariosAcceso.SingleOrDefaultAsync(x => x.UserId == model.UserId);

                using (var trx = _context.Database.BeginTransaction())
                {
                    try
                    {
                        //Role
                        if (originalEntry != null)
                        {
                            _context.UsuariosRoles.Remove(originalEntry);
                        }

                        var entry = Mapper.Map <UsuarioRole>(model);
                        await _context.AddAsync(entry);

                        //Acceso

                        if (originalAcceso != null)
                        {
                            _context.UsuariosAcceso.Remove(originalAcceso);
                        }

                        var entryAcceso = Mapper.Map <UsuarioAcceso>(acceso);
                        await _context.AddAsync(entryAcceso);

                        await _context.SaveChangesAsync();

                        trx.Commit();

                        result.IsSuccess = true;
                    }
                    catch (Exception x)
                    {
                        trx.Rollback();
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
            }

            return(result);
        }