using
System;
System.Collections.Generic;
public
partial
class
Usuario
{
int
Id {
get
;
set
; }
string
Nome {
Telefone {
Email {
Senha {
}
Model1Container : DbContext
Model1Container()
:
base
(
"name=Model1Container"
)
DbSet<Usuario> UsuarioSet {
<
add
name
=
"Model1Container" providerName="System.Data.SqlClient"
connectionString
"Data Source=DANIMAR-PC\SQLEXPRESS;Initial Catalog=Banco_Dados_Teste;Integrated Security=True"
/>
System.Linq;
System.Net;
System.Net.Http;
System.Web.Http;
System.Web.Http.OData;
System.Web.Http.OData.Query;
namespace
ApiTeste.Controllers
UsuarioController : ApiController
private
Models.Model1Container db =
new
Models.Model1Container();
[HttpGet]
ODataResult<Models.Usuario> Get(ODataQueryOptions options)
var results = (options.ApplyTo(db.UsuarioSet)
as
IQueryable<Models.Usuario>);
var count = results.Count();
var limitedResults = results.Take(5).ToArray();
return
ODataResult<Models.Usuario>(limitedResults,
null
, count);
// POST api/Teste
HttpResponseMessage PostUsuario(ApiTeste.Models.Usuario usuario)
if
(ModelState.IsValid)
db.UsuarioSet.Add(usuario);
db.SaveChanges();
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, usuario);
response.Headers.Location =
Uri(Url.Link(
"DefaultApi"
,
{ id = usuario.Id }));
response;
else
Request.CreateResponse(HttpStatusCode.BadRequest);
div
id
"body"
>
section
"featured"
"content-wrapper"
hgroup
"title"
h1
>Lista de usuários do sistema!</
</
p
button
data-bind
"click: abrirCriacaoUsuario"
>Criar Novo Usuário</
"content-wrapper main-content clear-fix"
@using (Html.BeginForm("PostUsuario", "Usuario", FormMethod.Post, new { id = "formularioUsuario", style = "display:none;", data_bind = "submit: SalvarUsuario, with: Usuario" }))
label
>Nome:</
input
type
"text"
"value:Nome"
>Telefone:</
"value:Telefone"
>E-mail:</
"value:Email"
>Senha:</
"value:Senha"
"submit"
>Salvar Dados</
"reset"
"click:$parent.cancelarInsercao"
>Cancelar</
hr
span
>Nome</
><
"value: filtro"
/><
"click:buscarUsuarios"
>Pesquisar</
table
thead
tr
th
"click: ordenarPorNome"
"click: ordenarPorTelefone"
>Telefone</
"click: ordenarPorEmail"
>E-mail</
tbody
"foreach: ListaUsuarios"
td
"text:Nome"
></
"text:Telefone"
"text:Email"
a
href
"#"
"click:anterior"
>Página anterior</
"click:proximo"
>Próxima página</
style
"text/css"
cursor: pointer;
@section scripts {
script
src
"~/Scripts/knockout-2.1.0.js"
"text/javascript"
$(document).ready(function () {
function UsuarioEntidade(data) {
this.Id = ko.observable(data.Id);
this.Nome = ko.observable(data.Nome);
this.Telefone = ko.observable(data.Telefone);
this.Email = ko.observable(data.Email);
this.Senha = ko.observable(data.Senha);
function Modelo() {
var self = this;
self.Usuario = ko.observable(new UsuarioEntidade({}));
self.ListaUsuarios = ko.observableArray([]);
self.order = ko.observable('Nome');
self.pagina = ko.observable(0);
self.filtro = ko.observable('');
self.buscarUsuarios = function () {
var url = '/Api/Usuario/Get?$orderby=' + self.order() + '&$skip=' + self.pagina() * 5;
if(self.filtro()!='')
url += "&$filter=startswith(Nome, '" + self.filtro() + "') eq true";
$.getJSON(url, null, function (data) {
var mapeado = $.map(data.Items, function (obj) { return new UsuarioEntidade(obj); });
self.ListaUsuarios(mapeado);
});
};
self.SalvarUsuario = function () {
var elemento = ko.toJSON(self.Usuario());
jQuery.ajax({
url: '/Api/Usuario/PostUsuario',
type: "POST",
data: elemento,
dataType: "json",
contentType: 'application/json; charset=utf-8',
success: function (result) {
debugger;
self.buscarUsuarios();
self.ordenarPorNome = function () {
self.order("Nome");
self.ordenarPorTelefone = function () {
self.order("Telefone");
self.ordenarPorEmail = function () {
self.order("Email");
self.proximo = function () {
self.pagina(self.pagina() + 1);
self.anterior = function () {
self.pagina(self.pagina() - 1);
if (self.pagina() <
0
self.pagina(0);
self.cancelarInsercao
function
() {
$('#formularioUsuario').slideUp();
self.abrirCriacaoUsuario
self.Usuario(new UsuarioEntidade({}));
$('#formularioUsuario').slideDown();
var
model
Modelo();
ko.applyBindings(model);
model.buscarUsuarios();
</script>
This article has been highlighted in this week's Top Contributors of the Week Awards - blogs.technet.com/.../top-contributors.aspx