Estou com duvidas depois que passamos para parte Web. A verdade é que estava desenvolvendo um projeto paralelo. Então refiz todas as classes e configurações para web. Criei as Entidades, Mapeamentos, configurei a classe NHibernate.cfg, a pasta infra, instalei o NHIBERATE O MYSQLDATA E O Niject fiz a configuração como explicado. O fato é que rodávamos o programa na classe "program" depois que passou para web fiquei um pouco perdido.Não estou sabendo como receber os dados de um formulário e gravar no banco. Abaixo minas classes (cotroller, entidade, model, dao, mapeamento, view)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using ControleOCW.DAO;
using ControleOCW.Entidades;
using ControleOCW.Infra;
using ControleOCW.App_Start;
using NHibernate;
using Ninject;
namespace ControleOCW.Controllers
{
public class ClienteController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult Form()
{
return View();
}
public ActionResult Adiciona(Cliente cliente)
{
return RedirectToAction("Index");
}
}
}
using ControleOCW.Entidades;
using NHibernate;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;
using System.Threading.Tasks;
using ControleOCW.Infra;
namespace ControleOCW.DAO
{
public class ClienteDAO
{
private ISession session;
public ClienteDAO(ISession session)
{
this.session = session;
}
public void Adiciona(Cliente cliente)
{
ITransaction transacao = session.BeginTransaction();
session.Save(cliente);
transacao.Commit();
}
// public Cliente BuscaPorId(int id)
// {
// return session.Get<Cliente>(id);
// }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace ControleOCW.Entidades
{
public class Cliente
{
public virtual int Id { get; set; }
public virtual string Nome { get; set; }
public virtual string Cnpj { get; set; }
public virtual string Endereco { get; set; }
public virtual string Bairro { get; set; }
public virtual string Cidade { get; set; }
public virtual string Cep { get; set; }
public virtual string Telefone { get; set; }
public virtual string Email { get; set; }
public virtual string Contato { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NHibernate;
using NHibernate.Cfg;
using NHibernate.Tool.hbm2ddl;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace ControleOCW.Infra
{
public class NHibernateHelper
{
// private static ISessionFactory fabrica = CriaSessionFactory();
private static ISessionFactory fabrica = RecuperaConfiguracao().BuildSessionFactory();
// private static ISessionFactory CriaSessioFactory()
// {
// Configuration cfg = RecuperaConfiguracao();
// return cfg.BuildSessionFactory();
//}
public static Configuration RecuperaConfiguracao()
{
Configuration cfg = new Configuration();
cfg.Configure();
cfg.AddAssembly(Assembly.GetExecutingAssembly());
return cfg;
}
// public static void GeraSchema()
// {
// Configuration cfg = RecuperaConfiguracao();
// new SchemaExport(cfg).Create(true, true);
// }
public static ISession AbreSession()
{
return fabrica.OpenSession();
}
}
}
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="ControleOCW"
namespace="ControleOCW.Entidades">
<class name ="Cliente">
<id name ="Id">
<generator class ="identity"/>
</id>
<property name="Nome"/>
<property name="Cnpj"/>
<property name="Endereco"/>
<property name="Bairro"/>
<property name="Cidade"/>
<property name="Cep"/>
<property name="Telefone"/>
<property name="Email"/>
<property name="Contato"/>
</class>
</hibernate-mapping>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace ControleOCW.Models
{
public class Cliente
{
public virtual int Id { get; set; }
public virtual string Nome { get; set; }
public virtual string Cnpj { get; set; }
public virtual string Endereco { get; set; }
public virtual string Bairro { get; set; }
public virtual string Cidade { get; set; }
public virtual string Cep { get; set; }
public virtual string Telefone { get; set; }
public virtual string Email { get; set; }
public virtual string Contato { get; set; }
}
}
<table>
<thead>
<tr>
<th>Id</th>
<th>Nome do Cliente</th>
<th>CNPJ</th>
</tr>
</thead>
<tbody>
@foreach (var cliente in Model)
{
<tr>
<td>@cliente.Id</td>
<td>@cliente.Nome</td>
<td>@cliente.Cnpj</td>
</tr>
}
</tbody>
</table>
@{
ViewBag.Title = "Form";
}
<h2>Cadastro de Clientes</h2>
<form action="@Url.Action("Adiciona", "Cliente")" method="post">
<label>
Nome:
<input type="text" name="cliente.Nome" />
</label>
<label>
CNPJ:
<input type="text" name="cliente.Cnpj" />
</label>
<label>
Endereço:
<input type="text" name="cliente.Endereco" />
</label>
<label>
Bairro:
<input type="text" name="cliente.Bairro" />
</label>
<label>
Cidade:
<input type="text" name="cliente.Cidade" />
</label>
<label>
CEP:
<input type="text" name="cliente.Cep" />
</label>
<label>
Telefone:
<input type="text" name="cliente.Telefone" />
</label>
<label>
Email:
<input type="text" name="cliente.Email" />
</label>
<label>
Contato:
<input type="text" name="cliente.Contato" />
</label>
<input type="submit" value="Adicionar"/>
</form>