//para funcionar o binding de um xml para um array ou list a classe correspondente ao parâmetro //deve ser decorada com a propriedade "[DataContract]" e as propriedades da classe que precisam //ser serializadas devem ser decoradas com a propriedade "[DataMember]" //Se na origem da requisição o dado for um json isto não é necessário. //Ver explicação em: http://www.asp.net/web-api/overview/formats-and-model-binding/json-and-xml-serialization public HttpResponseMessage PostMultiplo([FromBody] ListaUsuario usuarios) { ApiResponseMessage retornoPortal; try { var usuariosComNome = usuarios.Where(x => !string.IsNullOrEmpty(x.Nome)).ToList(); int quantidadeDeUsuariosSemNome = usuarios.Count - usuariosComNome.Count; _cadastroUsuario.AtualizarUsuarios(usuariosComNome); retornoPortal = new ApiResponseMessage() { Retorno = new Retorno() { Codigo = "200", Texto = usuariosComNome.Count + " usuários atualizados." + (quantidadeDeUsuariosSemNome > 0 ? quantidadeDeUsuariosSemNome + " usuários não atualizados: " + string.Join(", ", usuarios.Where(x => string.IsNullOrEmpty(x.Nome)).Select(u => u.Login)) + "." : "") } }; return(Request.CreateResponse(HttpStatusCode.OK, retornoPortal)); } catch (Exception ex) { retornoPortal = ExceptionUtil.GeraExecaoDeErroParaWebApi(ex); return(Request.CreateResponse(HttpStatusCode.OK, retornoPortal)); } }
public void QuandoCadastroUmaListaDeUsuariosEPersistidoNoBanco() { var usuarios = new List <UsuarioCadastroVm>() { new UsuarioCadastroVm() { Nome = "USUARIO 001", Login = "******", Email = "*****@*****.**", }, new UsuarioCadastroVm() { Nome = "USUARIO 002", Login = "******", Email = "*****@*****.**", } }; _cadastroUsuario.AtualizarUsuarios(usuarios); _usuariosMock.Verify(x => x.Save(It.IsAny <Usuario>()), Times.Exactly(usuarios.Count)); }