You are on page 1of 15

MODELO VISTA CONTROLADOR

1. CREAMOS LA BASE DE DATOS

2. CREAMOS LOS PROCEDIMIENTOS ALMACENADOS

3. LUEGO CREAMOS UN PROYECTO EN MVC4

4. LUEGO DEBEMOS R A MODELS/ Y CREAR UNA CLASE CONEXIN


using
using
using
using
using
using
using

System;
System.Collections.Generic;
System.Linq;
System.Web;
System.Data.SqlClient;
System.Data;
System.Configuration;

namespace Mvc_Clase31.Models
{
public class Conexion
{
static SqlConnection cn = new
SqlConnection(ConfigurationManager.ConnectionStrings["MiConexion"].ToString());
public static bool ValidaUsuario(string nombre, string clave) {
bool autorizado = false;
SqlCommand cmd = new SqlCommand("pa_Usuario_Buscar", cn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@nomusuario", SqlDbType.Char, 10).Value = nombre;
cmd.Parameters.Add("@clausuario", SqlDbType.VarChar, 6).Value =
clave;
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
autorizado = dr.HasRows;
cn.Close();
return autorizado;
}
}

5. TAMBIEN CREAMOS AL CLIENTE MODELS


using
using
using
using

System;
System.Collections.Generic;
System.Linq;
System.Web;

namespace Mvc_Clase31.Models
{
public class ClienteModel
{
DataBaseDataContext contexto = new DataBaseDataContext();
public List<Clientes> ListarCliente() { List<Clientes> lista = new
List<Clientes>();
var consulta = contexto.PA_listar_Todos();
foreach (var clte in consulta) { Clientes c = new Clientes();
c.Cli_Codigo = clte.Cli_Codigo ;
c.Cli_Nombre = clte.Cli_Nombre;
c.Cli_Apellido = clte.Cli_Apellido;
c.Cli_Direccion = clte.Cli_Direccion;
c.Cli_Telefono = clte.Cli_Telefono;
c.Cli_Email = clte.Cli_Email;
lista.Add(c);
} return lista;
} public Clientes BuscarClienteporCodigo(string id)
{
Clientes c = new Clientes();
try { var consulta = contexto.pa_clientes_BuscarporCodigo(id);
foreach (var clte in consulta)
{
c.Cli_Codigo = clte.Cli_Codigo;
c.Cli_Nombre = clte.Cli_Nombre;
c.Cli_Apellido = clte.Cli_Apellido;
c.Cli_Direccion = clte.Cli_Direccion;
c.Cli_Telefono = clte.Cli_Telefono;
c.Cli_Email = c.Cli_Email;
}
} catch (Exception) {
throw;
}
return c;
}
public string ObtenerClienteUltimoCodigo(string id)
{
try
{
var consulta = contexto.pa_Clientes_ObtenerUltimoCodigo(ref id);
}
catch (Exception) { throw; } return id;
}
public string InsertarCliente(Clientes c, string cod)
{
string resultado = String.Empty;
try {
contexto.pa_clientes_insertar(cod, c.Cli_Nombre, c.Cli_Apellido,
c.Cli_Direccion, c.Cli_Telefono, c.Cli_Email,c.Cli_Foto);
resultado = "OK";
} catch (Exception ex) {
resultado = ex.Message;
}
return resultado;

}
public string ActualizarCliente(Clientes c, string cod) {
string resultado = String.Empty;
try { contexto.pa_clientes_modificar(cod, c.Cli_Nombre,
c.Cli_Apellido, c.Cli_Direccion, c.Cli_Telefono, c.Cli_Email,c.Cli_Foto);
resultado = "OK";
} catch (Exception ex) {
resultado = ex.Message;
}
return resultado;
}
public string EliminarCliente(string id) {
string resultado = String.Empty;
try { contexto.pa_clientes_eliminar(id);
resultado = "OK";
} catch (Exception ex) {
resultado = ex.Message;
}
return resultado;
}
}
}

6. LOGIN MODELS
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
namespace Mvc_Clase31.Models
{
public class LoginModel
{
[Required]
public String nomusuario { get; set; }
[Required]
public String clausuario{ get; set; }
}
}

7. CREAMOS NUESTRO DATABSE

8. CREAMOS CLIENTE CONTROLLLERS

using
using
using
using
using
using

Mvc_Clase31.Models;
System;
System.Collections.Generic;
System.Linq;
System.Web;
System.Web.Mvc;

namespace Mvc_Clase31.Controllers
{
public class ClienteController : Controller
{
//
// GET: /Cliente/
ClienteModel model = new ClienteModel();
public ActionResult Index()
{
return View(model.ListarCliente());
}
//
// GET: /Cliente/Details/5
public ActionResult Details(string id)
{
var clte = model.BuscarClienteporCodigo(id);

return View(clte);
}
//
// GET: /Cliente/Create
public ActionResult Create() {
string codigo;
codigo = model.ObtenerClienteUltimoCodigo("");
ViewBag.cod = codigo;
return View();
}
//
// POST: /Cliente/Create
[HttpPost]
public ActionResult Create(Clientes c)
{
try {
string codigo;
codigo= model.ObtenerClienteUltimoCodigo("");
if (model.InsertarCliente(c,codigo) == "OK")
{
return RedirectToAction("Index");
}
else
{
return RedirectToAction("Create");
}
} catch { return View(); }
}
//
// GET: /Cliente/Edit/5
public ActionResult Edit(string id)
{
var clte = model.BuscarClienteporCodigo(id);
return View(clte);
}
//
// POST: /Cliente/Edit/5
[HttpPost]
public ActionResult Edit(string id, Clientes c)
{
try {
Clientes clte = new Clientes();
clte.Cli_Codigo = id;
clte.Cli_Nombre = c.Cli_Nombre;
clte.Cli_Apellido = c.Cli_Apellido;
clte.Cli_Direccion = c.Cli_Direccion;
clte.Cli_Telefono = c.Cli_Telefono;
clte.Cli_Email = c.Cli_Email;
if (model.ActualizarCliente (c,id) == "OK")
{
return RedirectToAction("Index");
}
else
{

return RedirectToAction("Edit");
}
}
catch {
return View();
}
}
//
// GET: /Cliente/Delete/5
public ActionResult Delete(string id)
{
var clte = model.BuscarClienteporCodigo(id);
return View(clte);
}
//
// POST: /Cliente/Delete/5
[HttpPost]
public ActionResult Delete(string id, FormCollection collection)
{
try {
if (model.EliminarCliente(id) == "OK")
{
return RedirectToAction("Index");
}
else
{
return RedirectToAction("Delete");
}
} catch {
return View();
}
}
}
}

9. LOGINCONTROLLER
using
using
using
using
using
using
using

System;
System.Collections.Generic;
System.Linq;
System.Web;
System.Web.Mvc;
Mvc_Clase31.Models;
System.Web.Security;

namespace Mvc_Clase31.Controllers
{
public class LoginController : Controller
{
//
// GET: /Login/
public ActionResult Index()
{
return View();

}
[HttpPost]
public ActionResult Index(LoginModel model) {
if (ModelState.IsValid) {
if (Conexion.ValidaUsuario(model.nomusuario, model.clausuario)) {
FormsAuthentication.SetAuthCookie(model.nomusuario, false);
return RedirectToAction("index", "Cliente");
}
else {
ModelState.AddModelError("", "Invalido Nombre de Usuario o
Contrasea ");
}
}
return View();
}
}
}

10. AGREGAMOS CSS

11. EN VIEWS EMPEZAMOS A GENERAR EL CODIGO DE EDITAR, DETALLES, ELIMINAR

@model Mvc_Clase31.Models.Clientes
@{
ViewBag.Title = "Create";
}
<h1>Nuevo Cliente</h1>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>Clientes</legend>
<div class="editor-label">
Codigo
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.Cli_Codigo, new { @Value =
ViewBag.cod, @disabled = "true" })
</div>
<div class="editor-label">
Nombre
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Cli_Nombre)
@Html.ValidationMessageFor(model => model.Cli_Nombre)
</div>
<div class="editor-label">
Apellido
</div>
<div class="editor-field">

@Html.EditorFor(model => model.Cli_Apellido)


@Html.ValidationMessageFor(model => model.Cli_Apellido)
</div>
<div class="editor-label">
Direccion
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Cli_Direccion)
@Html.ValidationMessageFor(model => model.Cli_Direccion)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Cli_Telefono)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Cli_Telefono)
@Html.ValidationMessageFor(model => model.Cli_Telefono)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Cli_Email)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Cli_Email)
@Html.ValidationMessageFor(model => model.Cli_Email)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Cli_Foto)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Cli_Foto)
@Html.ValidationMessageFor(model => model.Cli_Foto)
</div>
<p>
<input type="submit" value="Nuevo cliente" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Regresar", "Index")
</div>

@model Mvc_Clase31.Models.Clientes
@{
ViewBag.Title = "Delete";
}
<h2>Delete</h2>
<h3>Are you sure you want to delete this?</h3>
<fieldset>
<legend>Clientes</legend>
<div class="display-label">
@Html.DisplayNameFor(model => model.Cli_Codigo)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Cli_Codigo)

</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.Cli_Nombre)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Cli_Nombre)
</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.Cli_Apellido)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Cli_Apellido)
</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.Cli_Direccion)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Cli_Direccion)
</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.Cli_Telefono)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Cli_Telefono)
</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.Cli_Email)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Cli_Email)
</div>
</fieldset>
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
<p>
<input type="submit" value="Delete" /> |
@Html.ActionLink("Back to List", "Index")
</p>
}

model Mvc_Clase31.Models.Clientes
@{
ViewBag.Title = "Details";
}
<h2>Details</h2>
<fieldset>
<legend>Clientes</legend>
<div class="display-label">
@Html.DisplayNameFor(model => model.Cli_Codigo)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Cli_Codigo)

</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.Cli_Nombre)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Cli_Nombre)
</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.Cli_Apellido)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Cli_Apellido)
</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.Cli_Direccion)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Cli_Direccion)
</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.Cli_Telefono)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Cli_Telefono)
</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.Cli_Email)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Cli_Email)
</div>
</fieldset>
<p>
@Html.ActionLink("Edit", "Edit", new { /* id=Model.PrimaryKey */ }) |
@Html.ActionLink("Back to List", "Index")
</p>

@model Mvc_Clase31.Models.Clientes
@{
ViewBag.Title = "Edit";
}
<h2>Edit</h2>
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>Clientes</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Cli_Codigo)
</div>
<div class="editor-field">

@Html.TextBoxFor(model => model.Cli_Codigo, new { @Value =


ViewBag.cod, @disabled = "true" })
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Cli_Nombre)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Cli_Nombre)
@Html.ValidationMessageFor(model => model.Cli_Nombre)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Cli_Apellido)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Cli_Apellido)
@Html.ValidationMessageFor(model => model.Cli_Apellido)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Cli_Direccion)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Cli_Direccion)
@Html.ValidationMessageFor(model => model.Cli_Direccion)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Cli_Telefono)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Cli_Telefono)
@Html.ValidationMessageFor(model => model.Cli_Telefono)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Cli_Email)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Cli_Email)
@Html.ValidationMessageFor(model => model.Cli_Email)
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}

@model IEnumerable<Mvc_Clase31.Models.Clientes>

@{
ViewBag.Title = "View1";
}
<link rel="stylesheet" href="Styles/HojadeEstilo2.css">

<section id="general" align="center">


<article id="imagen"> <img src="imagenes/images.jpg" alt=""> </article>
<p>
@Html.ActionLink("NUEVO CLIENTE", "Create")
<article id="carrito"> <img src="imagenes/jorge.jpg" height="279"
width="320" alt=""> </article>
</p>
<table align="center">
<tr>
<th>
Codigo
</th>
<th>
Nombres
</th>
<th>
Apellidos
</th>
<th>
Direccion
</th>
<th>
Telefono
</th>
<th>
Email
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem
</td>
<td>
@Html.DisplayFor(modelItem
</td>
<td>
@Html.DisplayFor(modelItem
</td>
<td>
@Html.DisplayFor(modelItem
</td>
<td>
@Html.DisplayFor(modelItem
</td>
<td>
@Html.DisplayFor(modelItem
</td>
<td>

=> item.Cli_Codigo)

=> item.Cli_Nombre)

=> item.Cli_Apellido)

=> item.Cli_Direccion)

=> item.Cli_Telefono)

=> item.Cli_Email)

@Html.ActionLink("Editar", "Edit", new {


id=item.Cli_Codigo }) |
@Html.ActionLink("Detalles", "Details", new {
id=item.Cli_Codigo }) |
@Html.ActionLink("Eliminar", "Delete", new {
})
</td>
</tr>

id=item.Cli_Codigo

}
</table>
<footer id="footer">
</footer>
</section>

You might also like