Hi,
I need to customize the layout for a grid. Can you explain how can I do this, please?
THIS IS MY CODE
AnagraficaRistoratoriEspositori.aspx
AnagraficaRepository.cs
AnagraficaController.cs
I need to customize the layout for a grid. Can you explain how can I do this, please?
THIS IS MY CODE
AnagraficaRistoratoriEspositori.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/ViewsMasterPage.Master" %>
<
asp:Content
ID
=
"Content1"
ContentPlaceHolderID
=
"phdContent"
runat
=
"server"
>
<
h2
>Gestione Anagrafica Ristoratori/Organizzatori</
h2
>
<%: Html.Kendo().Grid<
Sopra.Fmspa.BusinessLayer.ViewModels.AnagraficaViewModel
>()
.Name("Grid")
.HtmlAttributes(new { Style = "height:700px; width:1200px;" })
.Columns(columns =>
{
columns.Bound(e => e.Id).Hidden();
columns.Bound(e => e.RagioneSociale)
.Filterable(filterable => filterable.UI("RagioneSocialeFilter"))
.Width(300);
columns.Bound(e => e.TipologiaAnagrafica)
.Filterable(filterable => filterable.UI("TipologiaAnagraficaFilter"))
.Width(300)
.ClientTemplate("# try {# #=TipologiaAnagrafica.Descrizione# #} catch (e) {}#");
columns.Bound(e => e.Padiglione)
.Filterable(filterable => filterable.UI("PadiglioneFilter"))
.Width(300)
.ClientTemplate("# try {# #=Padiglione.Descrizione# #} catch (e) {}#");
columns.Bound(p => p.Descrizione).Width(300);
columns.Bound(e => e.FlagEstero)
.Filterable(filterable => filterable.UI("FlagEsteroFilter"))
.Width(150);
// Batch editing
//columns.Command(command => command.Destroy()).Width(100);
// InLine editing or PopUp editing
//columns.Command(command => { command.Edit(); command.Destroy(); }).Width(200);
columns.Command(command => { command.Edit(); command.Destroy(); }).Width(200);
})
.Resizable(resizing => resizing.Columns(true))
.Reorderable(reordering => reordering.Columns(true))
.Filterable(filterable => filterable
.Extra(false)
.Operators(operators => operators
.ForString(str => str.Clear()
.StartsWith("Inizia per")
.IsEqualTo("Equivale a")
.IsNotEqualTo("Differisce da")
))
)
.Groupable()
// Batch editing
//.ToolBar(toolbar =>
// {
// toolbar.Create();
// toolbar.Save();
// })
// InLine editing
//.ToolBar(toolbar => toolbar.Create())
.ToolBar(toolbar => toolbar.Create())
// Batch editing
//.Editable(editable => editable.Mode(GridEditMode.InCell))
// InLine editing
//.Editable(editable => editable.Mode(GridEditMode.InLine))
// PopUp editing
//.Editable(editable => editable.Mode(GridEditMode.PopUp))
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Pageable()
.Sortable()
.Scrollable()
.ColumnMenu()
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(true)
.PageSize(100)
.Batch(true)
.Events(events => events.Error("error_handler"))
.Model(model =>
{
model.Id(p => p.Id);
model.Field(p => p.FlagEstero).DefaultValue(null);
})
.Read("Anagrafiche_Read", "Anagrafica")
.Update("Anagrafiche_Update", "Anagrafica")
.Create("Anagrafiche_Create", "Anagrafica")
.Destroy("Anagrafiche_Delete", "Anagrafica")
)
%>
<
script
type
=
"text/javascript"
>
function error_handler(e) {
if (e.errors) {
var message = "Errors:\n";
$.each(e.errors, function (key, value) {
if ('errors' in value) {
$.each(value.errors, function () {
message += this + "\n";
});
}
});
var grid = $("#Grid").data("kendoGrid");
grid.one("dataBinding", function (e) {
e.preventDefault(); // cancel grid rebind if error occurs
});
alert(message);
}
}
function RagioneSocialeFilter(element) {
element.kendoDropDownList({
dataSource: {
transport: {
read: "<%= Url.Action("Anagrafiche_RagioneSocialeFilter") %>"
}
},
optionLabel: "--Scegliere ragione sociale--"
});
}
function TipologiaAnagraficaFilter(element) {
element.kendoDropDownList({
dataSource: {
transport: {
read: "<%= Url.Action("Anagrafiche_TipologiaAnagraficaFilter") %>"
}
},
optionLabel: "--Scegliere tipologia anagrafica--"
});
}
function PadiglioneFilter(element) {
element.kendoDropDownList({
dataSource: {
transport: {
read: "<%= Url.Action("Anagrafiche_PadiglioneFilter") %>"
}
},
optionLabel: "--Scegliere padiglione--"
});
}
function FlagEsteroFilter(element) {
element.kendoDropDownList({
dataSource: {
transport: {
read: "<%= Url.Action("Anagrafiche_FlagEsteroFilter") %>"
}
},
optionLabel: "--Espositore Estero?--"
});
}
</
script
>
</
asp:Content
>
<
asp:Content
ID
=
"Content2"
ContentPlaceHolderID
=
"phdHeadContent"
runat
=
"server"
>
</
asp:Content
>
AnagraficaRepository.cs
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Data;
using
System.Web;
using
System.Text;
using
System.Threading.Tasks;
using
Sopra.Fmspa.BusinessLayer.Models;
using
Sopra.Fmspa.BusinessLayer.ViewModels;
using
AutoMapper.Configuration;
using
AutoMapper.Mappers;
/* SINTASSI AUTOMAPPER
AutoMapper.Mapper.CreateMap<Sorgente,Destinatario>();
Destinatario dest = AutoMapper.Mapper.Map<Sorgente,Destinatario>(sorg); */
namespace
Sopra.Fmspa.BusinessLayer.DAL
{
public
class
AnagraficaRepository : IAnagraficaRepository, IDisposable
{
private
ODLModelContainer context;
/* TO DO:
* - vedere AnagraficaViewModel.cs
* - sistemare il codice in modo tale che questo mapper funzioni senza l'opzione ignore per il campo manifestazione
*/
//public AnagraficaRepository(ODLModelContainer context)
//{
// this.context = context;
// AutoMapper.Mapper.CreateMap<TipologiaAnagrafica,TipologiaAnagraficaViewModel>();
// AutoMapper.Mapper.CreateMap<Padiglione,PadiglioneViewModel>();
// AutoMapper.Mapper.CreateMap<Manifestazione,ManifestazioneViewModel>();
// AutoMapper.Mapper.CreateMap<TipologiaAnagraficaViewModel,TipologiaAnagrafica>();
// AutoMapper.Mapper.CreateMap<PadiglioneViewModel,Padiglione>();
// AutoMapper.Mapper.CreateMap<ManifestazioneViewModel,Manifestazione>();
// AutoMapper.Mapper.CreateMap<Anagrafica,AnagraficaViewModel>()
// .ForMember(dest => dest.TipologiaAnagrafica, opt => opt.MapFrom(src => src.TipologiaAnagrafica))
// .ForMember(dest => dest.Padiglione, opt => opt.MapFrom(src => src.Padiglione))
// .ForMember(dest => dest.Manifestazione, opt => opt.MapFrom(src => src.Manifestazione));
// AutoMapper.Mapper.CreateMap<AnagraficaViewModel,Anagrafica>()
// .ForMember(dest => dest.TipologiaAnagrafica, opt => opt.MapFrom(src => src.TipologiaAnagrafica))
// .ForMember(dest => dest.Padiglione, opt => opt.MapFrom(src => src.Padiglione))
// .ForMember(dest => dest.Manifestazione, opt => opt.MapFrom(src => src.Manifestazione));
//}
public
AnagraficaRepository(ODLModelContainer context)
{
this
.context = context;
AutoMapper.Mapper.CreateMap<TipologiaAnagrafica,TipologiaAnagraficaViewModel>();
AutoMapper.Mapper.CreateMap<Padiglione,PadiglioneViewModel>();
//AutoMapper.Mapper.CreateMap<Manifestazione, ManifestazioneViewModel>();
AutoMapper.Mapper.CreateMap<TipologiaAnagraficaViewModel,TipologiaAnagrafica>();
AutoMapper.Mapper.CreateMap<PadiglioneViewModel,Padiglione>();
//AutoMapper.Mapper.CreateMap<ManifestazioneViewModel, Manifestazione>();
AutoMapper.Mapper.CreateMap<Anagrafica,AnagraficaViewModel>()
.ForMember(dest => dest.TipologiaAnagrafica, opt => opt.MapFrom(src => src.TipologiaAnagrafica))
.ForMember(dest => dest.Padiglione, opt => opt.MapFrom(src => src.Padiglione));
//.ForMember(dest => dest.Manifestazione, opt => opt.MapFrom(src => src.Manifestazione));
AutoMapper.Mapper.CreateMap<AnagraficaViewModel,Anagrafica>()
.ForMember(dest => dest.TipologiaAnagrafica, opt => opt.Ignore())
.ForMember(dest => dest.Padiglione, opt => opt.Ignore())
.ForMember(dest => dest.Manifestazione, opt => opt.Ignore());
}
//public AnagraficaRepository(ODLModelContainer context)
//{
// this.context = context;
//}
// ---------------------------------------------------------------------------------------------- //
public
IEnumerable<Anagrafica> GetAnagrafica()
{
return
context.odl_Anagrafica.ToList();
}
public
IList<AnagraficaViewModel> GetAnagraficaList()
{
List<Anagrafica> anag = context.odl_Anagrafica.ToList();
List<AnagraficaViewModel> anagview = AutoMapper.Mapper.Map<List<Anagrafica>,List<AnagraficaViewModel>>(anag);
return
anagview;
}
// ---------------------------------------------------------------------------------------------- //
//public static IList<AnagraficaViewModel> All()
//{
// IList<AnagraficaViewModel> result = (IList<AnagraficaViewModel>)HttpContext.Current.Session["Anagrafica"];
// if (result == null)
// {
// HttpContext.Current.Session["Anagrafica"] = result =
// (from anag in new ODLModelContainer().odl_Anagrafica
// select new AnagraficaViewModel
// {
// Id = anag.Id,
// AccountNumber = anag.AccountNumber,
// RagioneSociale = anag.RagioneSociale,
// TipologiaAnagraficaId = anag.TipologiaAnagraficaId,
// Descrizione = anag.Descrizione,
// ManifestazioneId = anag.ManifestazioneId,
// PadiglioneId = anag.PadiglioneId,
// Stand = anag.Stand,
// FlagSolvenza = anag.FlagSolvenza,
// FlagEstero = anag.FlagEstero,
// TipologiaAnagrafica = anag.TipologiaAnagrafica,
// Padiglione = anag.Padiglione
// }).ToList();
// }
// return result;
//}
// ---------------------------------------------------------------------------------------------- //
//public static AnagraficaViewModel One(Func<AnagraficaViewModel, bool> predicate)
//{
// return All().Where(predicate).FirstOrDefault();
//}
// ---------------------------------------------------------------------------------------------- //
//public void Insert(AnagraficaViewModel anagview)
//{
// if (anagview != null)
// {
// Anagrafica anag = AutoMapper.Mapper.Map<AnagraficaViewModel, Anagrafica>(anagview);
// context.odl_Anagrafica.Add(anag);
// }
//}
public
void
Insert(AnagraficaViewModel anagview)
{
if
(anagview !=
null
)
{
Anagrafica anag = AutoMapper.Mapper.Map<AnagraficaViewModel, Anagrafica>(anagview);
// valore forzato
anag.ManifestazioneId = anagview.ManifestazioneId;
context.odl_Anagrafica.Add(anag);
}
}
//public void Insert(AnagraficaViewModel anagview)
//{
// Anagrafica anag = new Anagrafica();
// anag.Id = anagview.Id;
// anag.AccountNumber = anagview.AccountNumber;
// anag.RagioneSociale = anagview.RagioneSociale;
// anag.TipologiaAnagraficaId = anagview.TipologiaAnagraficaId;
// anag.Descrizione = anagview.Descrizione;
// anag.ManifestazioneId = anagview.ManifestazioneId;
// anag.PadiglioneId = anagview.PadiglioneId;
// anag.Stand = anagview.Stand;
// anag.FlagSolvenza = anagview.FlagSolvenza;
// anag.FlagEstero = anagview.FlagEstero;
// anag.TipologiaAnagrafica = anagview.TipologiaAnagrafica;
// anag.Padiglione = anagview.Padiglione;
// context.odl_Anagrafica.Add(anag);
//}
//public static void Insert(AnagraficaViewModel anag)
//{
// anag.Id = All().OrderByDescending(p => p.Id).First().Id + 1;
// All().Insert(0, anag);
//}
// ---------------------------------------------------------------------------------------------- //
public
void
Update(AnagraficaViewModel anagview)
{
if
(anagview !=
null
)
{
Anagrafica anag = AutoMapper.Mapper.Map<AnagraficaViewModel,Anagrafica>(anagview);
context.odl_Anagrafica.Attach(anag);
context.Entry(anag).State = EntityState.Modified;
}
}
//public void Update(AnagraficaViewModel anagview)
//{
// Anagrafica anag = context.odl_Anagrafica.Find(anagview.Id);
// if (anag != null)
// {
// anag.Id = anagview.Id;
// anag.AccountNumber = anagview.AccountNumber;
// anag.RagioneSociale = anagview.RagioneSociale;
// anag.TipologiaAnagraficaId = anagview.TipologiaAnagraficaId;
// anag.Descrizione = anagview.Descrizione;
// anag.ManifestazioneId = anagview.ManifestazioneId;
// anag.PadiglioneId = anagview.PadiglioneId;
// anag.Stand = anagview.Stand;
// anag.FlagSolvenza = anagview.FlagSolvenza;
// anag.FlagEstero = anagview.FlagEstero;
// anag.TipologiaAnagrafica = anagview.TipologiaAnagrafica;
// anag.Padiglione = anagview.Padiglione;
// context.Entry(anag).State = EntityState.Modified;
// }
//}
//public static void Update(AnagraficaViewModel anag)
//{
// AnagraficaViewModel target = One(p => p.Id == anag.Id);
// if (target != null)
// {
// target.AccountNumber = anag.AccountNumber;
// target.RagioneSociale = anag.RagioneSociale;
// target.TipologiaAnagraficaId = anag.TipologiaAnagraficaId;
// target.Descrizione = anag.Descrizione;
// target.ManifestazioneId = anag.ManifestazioneId;
// target.PadiglioneId = anag.PadiglioneId;
// target.Stand = anag.Stand;
// target.FlagSolvenza = anag.FlagSolvenza;
// target.FlagEstero = anag.FlagEstero;
// target.TipologiaAnagrafica = anag.TipologiaAnagrafica;
// target.Padiglione = anag.Padiglione;
// }
//}
// ---------------------------------------------------------------------------------------------- //
public
void
Delete(AnagraficaViewModel anagview)
{
Anagrafica anag = context.odl_Anagrafica.Find(anagview.Id);
if
(anag !=
null
)
{
context.odl_Anagrafica.Remove(anag);
}
}
//public static void Delete(AnagraficaViewModel anag)
//{
// AnagraficaViewModel target = One(p => p.Id == anag.Id);
// if (target != null)
// {
// All().Remove(target);
// }
//}
// ---------------------------------------------------------------------------------------------- //
public
void
Save()
{
context.SaveChanges();
}
private
bool
disposed =
false
;
protected
virtual
void
Dispose(
bool
disposing)
{
if
(!
this
.disposed)
{
if
(disposing)
{
// dispose della classe context <--- dispose della classe ODLModelContainer
context.Dispose();
}
}
this
.disposed =
true
;
}
public
void
Dispose()
{
// dispose della classe IDisposable ---> GC ---> liberazione della memoria
Dispose(
true
);
GC.SuppressFinalize(
this
);
}
}
}
/* TO DO:
* - aggiungere la possibilità di scegliere, per ogni record della grid, una manifestazione
* - collegamento tra la pagina manifestazioni e questa pagina (anagrafica in bianco)
* - migliorare l'interfaccia grafica, in particolare l'aspetto della grid
* - controllo ad inserimento per la ragione sociale: stabilire se una voce è già stata inserita nel database
*/
AnagraficaController.cs
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Threading.Tasks;
using
System.Web.Mvc;
using
Kendo.Mvc.Extensions;
using
Kendo.Mvc.UI;
using
Sopra.Fmspa.BusinessLayer.Models;
using
Sopra.Fmspa.BusinessLayer.DAL;
using
Sopra.Fmspa.BusinessLayer.ViewModels;
using
System.Data.Entity.Validation;
using
System.Diagnostics;
using
AutoMapper.Configuration;
using
AutoMapper.Mappers;
/* SINTASSI AUTOMAPPER
AutoMapper.Mapper.CreateMap<Sorgente,Destinatario>();
Destinatario dest = AutoMapper.Mapper.Map<Sorgente,Destinatario>(sorg); */
namespace
Sopra.Fmspa.BusinessLayer.Controllers
{
public
class
AnagraficaController : Controller
{
ODLModelContainer db =
new
ODLModelContainer();
private
IAnagraficaRepository anagraficaRepository;
//public AnagraficaController()
//{
// this.anagraficaRepository = new AnagraficaRepository(new ODLModelContainer());
// AutoMapper.Mapper.CreateMap<TipologiaAnagrafica,TipologiaAnagraficaViewModel>();
// AutoMapper.Mapper.CreateMap<Padiglione,PadiglioneViewModel>();
// AutoMapper.Mapper.CreateMap<Manifestazione,ManifestazioneViewModel>();
// AutoMapper.Mapper.CreateMap<TipologiaAnagraficaViewModel,TipologiaAnagrafica>();
// AutoMapper.Mapper.CreateMap<PadiglioneViewModel,Padiglione>();
// AutoMapper.Mapper.CreateMap<ManifestazioneViewModel,Manifestazione>();
// AutoMapper.Mapper.CreateMap<Anagrafica,AnagraficaViewModel>()
// .ForMember(dest => dest.TipologiaAnagrafica, opt => opt.MapFrom(src => src.TipologiaAnagrafica))
// .ForMember(dest => dest.Padiglione, opt => opt.MapFrom(src => src.Padiglione))
// .ForMember(dest => dest.Manifestazione, opt => opt.MapFrom(src => src.Manifestazione));
// AutoMapper.Mapper.CreateMap<AnagraficaViewModel,Anagrafica>()
// .ForMember(dest => dest.TipologiaAnagrafica, opt => opt.MapFrom(src => src.TipologiaAnagrafica))
// .ForMember(dest => dest.Padiglione, opt => opt.MapFrom(src => src.Padiglione))
// .ForMember(dest => dest.Manifestazione, opt => opt.MapFrom(src => src.Manifestazione));
// //AutoMapper.Mapper.CreateMap<AnagraficaViewModel,AnagraficaViewModel>();
//}
public
AnagraficaController()
{
this
.anagraficaRepository =
new
AnagraficaRepository(
new
ODLModelContainer());
AutoMapper.Mapper.CreateMap<TipologiaAnagrafica,TipologiaAnagraficaViewModel>();
AutoMapper.Mapper.CreateMap<Padiglione,PadiglioneViewModel>();
//AutoMapper.Mapper.CreateMap<Manifestazione,ManifestazioneViewModel>();
AutoMapper.Mapper.CreateMap<TipologiaAnagraficaViewModel,TipologiaAnagrafica>();
AutoMapper.Mapper.CreateMap<PadiglioneViewModel,Padiglione>();
//AutoMapper.Mapper.CreateMap<ManifestazioneViewModel,Manifestazione>();
AutoMapper.Mapper.CreateMap<Anagrafica,AnagraficaViewModel>()
.ForMember(dest => dest.TipologiaAnagrafica, opt => opt.MapFrom(src => src.TipologiaAnagrafica))
.ForMember(dest => dest.Padiglione, opt => opt.MapFrom(src => src.Padiglione));
//.ForMember(dest => dest.Manifestazione, opt => opt.MapFrom(src => src.Manifestazione));
AutoMapper.Mapper.CreateMap<AnagraficaViewModel,Anagrafica>()
.ForMember(dest => dest.TipologiaAnagrafica, opt => opt.Ignore())
.ForMember(dest => dest.Padiglione, opt => opt.Ignore())
.ForMember(dest => dest.Manifestazione, opt => opt.Ignore());
//AutoMapper.Mapper.CreateMap<AnagraficaViewModel,AnagraficaViewModel>();
}
public
AnagraficaController(IAnagraficaRepository anagraficaRepository)
{
this
.anagraficaRepository = anagraficaRepository;
}
public
ActionResult Remote_Data()
{
return
View(
"AjaxBinding"
);
}
// ---------------------------------------------------------------------------------------------- //
public
ActionResult AnagraficaRistoratoriEspositori()
{
IList<AnagraficaViewModel> anagview = anagraficaRepository.GetAnagraficaList();
PopulateTipologiaAnagrafica();
PopulatePadiglione();
return
View(anagview);
}
//public ActionResult AnagraficaRistoratoriEspositori()
//{
// IEnumerable<Anagrafica> anag = anagraficaRepository.GetAnagrafica();
// PopulateTipologiaAnagrafica();
// PopulatePadiglione();
// return View(anag);
//}
// ---------------------------------------------------------------------------------------------- //
public
ActionResult Anagrafiche_Read([DataSourceRequest] DataSourceRequest request)
{
return
Json(anagraficaRepository.GetAnagraficaList().ToDataSourceResult(request));
}
//public ActionResult Anagrafiche_Read([DataSourceRequest] DataSourceRequest request)
//{
// return Json(AnagraficaRepository.All().ToDataSourceResult(request));
//}
// ---------------------------------------------------------------------------------------------- //
public
ActionResult Anagrafiche_RagioneSocialeFilter()
{
return
Json(anagraficaRepository.GetAnagrafica().Select(e => e.RagioneSociale).Distinct(), JsonRequestBehavior.AllowGet);
}
public
ActionResult Anagrafiche_TipologiaAnagraficaFilter()
{
return
Json(anagraficaRepository.GetAnagrafica().Select(e => e.TipologiaAnagrafica).Distinct(), JsonRequestBehavior.AllowGet);
}
public
ActionResult Anagrafiche_PadiglioneFilter()
{
return
Json(anagraficaRepository.GetAnagrafica().Select(e => e.Padiglione).Distinct(), JsonRequestBehavior.AllowGet);
}
public
ActionResult Anagrafiche_FlagEsteroFilter()
{
return
Json(anagraficaRepository.GetAnagrafica().Select(e => e.FlagEstero).Distinct(), JsonRequestBehavior.AllowGet);
}
// ---------------------------------------------------------------------------------------------- //
//[AcceptVerbs(HttpVerbs.Post)]
//public ActionResult Anagrafiche_Create([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<AnagraficaViewModel> anagrafiche)
//{
// if (anagrafiche != null && ModelState.IsValid)
// {
// foreach (var anag in anagrafiche)
// {
// anagraficaRepository.Insert(anag);
// }
// anagraficaRepository.Save();
// }
// return Json(ModelState.ToDataSourceResult());
//}
[AcceptVerbs(HttpVerbs.Post)]
public
ActionResult Anagrafiche_Create([DataSourceRequest] DataSourceRequest request, [Bind(Prefix =
"models"
)]IEnumerable<AnagraficaViewModel> anagrafiche)
{
if
(anagrafiche !=
null
&& ModelState.IsValid)
{
foreach
(var anag
in
anagrafiche)
{
anag.Id = anagraficaRepository.GetAnagrafica().OrderByDescending(p => p.Id).First().Id + 1;
anag.TipologiaAnagraficaId = anag.TipologiaAnagrafica.Id;
anag.PadiglioneId = anag.Padiglione.Id;
// valore forzato
if
(anag.ManifestazioneId ==
null
)
{
//anag.Manifestazione.Id = anagraficaRepository.GetAnagrafica().OrderByDescending(p => p.Id).First().Manifestazione.Id;
anag.ManifestazioneId = anagraficaRepository.GetAnagrafica().OrderByDescending(p => p.Id).First().ManifestazioneId;
}
//anag.ManifestazioneId = anag.Manifestazione.Id;
anagraficaRepository.Insert(anag);
}
anagraficaRepository.Save();
}
return
Json(ModelState.ToDataSourceResult());
}
//[AcceptVerbs(HttpVerbs.Post)]
//public ActionResult Anagrafiche_Create([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<AnagraficaViewModel> anagrafiche)
//{
// var results = new List<AnagraficaViewModel>();
// if (anagrafiche != null && ModelState.IsValid)
// {
// foreach (var anag in anagrafiche)
// {
// anagraficaRepository.Insert(anag);
// results.Add(anag);
// }
// anagraficaRepository.Save();
// }
// return Json(results.ToDataSourceResult(request, ModelState));
//}
// ---------------------------------------------------------------------------------------------- //
private
void
PopulateTipologiaAnagrafica()
{
ViewData[
"TipologiaAnagrafiche"
] = AutoMapper.Mapper.Map<IList<TipologiaAnagrafica>,IList<TipologiaAnagraficaViewModel>>(db.odl_TipologiaAnagrafica.ToList());
}
private
void
PopulatePadiglione()
{
ViewData[
"Padiglioni"
] = AutoMapper.Mapper.Map<IList<Padiglione>,IList<PadiglioneViewModel>>(db.odl_Padiglione.ToList());
}
// ---------------------------------------------------------------------------------------------- //
//[AcceptVerbs(HttpVerbs.Post)]
//public ActionResult Anagrafiche_Update([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<AnagraficaViewModel> anagrafiche)
//{
// if (anagrafiche != null && ModelState.IsValid)
// {
// foreach (var anag in anagrafiche)
// {
// anag.TipologiaAnagrafica.Id = anag.TipologiaAnagraficaId;
// anag.Padiglione.Id = anag.PadiglioneId;
// anag.Manifestazione.Id = anag.ManifestazioneId;
// anagraficaRepository.Update(anag);
// }
// anagraficaRepository.Save();
// }
// return Json(ModelState.ToDataSourceResult());
//}
[AcceptVerbs(HttpVerbs.Post)]
public
ActionResult Anagrafiche_Update([DataSourceRequest] DataSourceRequest request, [Bind(Prefix =
"models"
)]IEnumerable<AnagraficaViewModel> anagrafiche)
{
if
(anagrafiche !=
null
&& ModelState.IsValid)
{
foreach
(var anag
in
anagrafiche)
{
anag.TipologiaAnagrafica.Id = anag.TipologiaAnagraficaId;
anag.Padiglione.Id = anag.PadiglioneId;
//anag.Manifestazione.Id = anag.ManifestazioneId;
anagraficaRepository.Update(anag);
}
anagraficaRepository.Save();
}
return
Json(ModelState.ToDataSourceResult());
}
//[AcceptVerbs(HttpVerbs.Post)]
//public ActionResult Anagrafiche_Update([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<AnagraficaViewModel> anagrafiche)
//{
// if (anagrafiche != null && ModelState.IsValid)
// {
// foreach (var anag in anagrafiche)
// {
// var target = AnagraficaRepository.One(p => p.Id == anag.Id);
// if (target != null)
// {
// target = AutoMapper.Mapper.Map<AnagraficaViewModel, AnagraficaViewModel>(anag);
// anagraficaRepository.Update(target);
// }
// }
// anagraficaRepository.Save();
// }
// return Json(ModelState.ToDataSourceResult());
//}
//[AcceptVerbs(HttpVerbs.Post)]
//public ActionResult Anagrafiche_Update([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<AnagraficaViewModel> anagrafiche)
//{
// if (anagrafiche != null && ModelState.IsValid)
// {
// foreach (var anag in anagrafiche)
// {
// var target = AnagraficaRepository.One(p => p.Id == anag.Id);
// if (target != null)
// {
// target.AccountNumber = anag.AccountNumber;
// target.RagioneSociale = anag.RagioneSociale;
// target.TipologiaAnagraficaId = anag.TipologiaAnagraficaId;
// target.Descrizione = anag.Descrizione;
// target.ManifestazioneId = anag.ManifestazioneId;
// target.PadiglioneId = anag.PadiglioneId;
// target.Stand = anag.Stand;
// target.FlagSolvenza = anag.FlagSolvenza;
// target.FlagEstero = anag.FlagEstero;
// target.TipologiaAnagrafica = anag.TipologiaAnagrafica;
// target.Padiglione = anag.Padiglione;
// anagraficaRepository.Update(target);
// }
// }
// anagraficaRepository.Save();
// }
// return Json(ModelState.ToDataSourceResult());
//}
// ---------------------------------------------------------------------------------------------- //
public
ActionResult Anagrafiche_Delete([Bind(Prefix =
"models"
)]IEnumerable<AnagraficaViewModel> anagrafiche)
{
if
(anagrafiche.Any())
{
Anagrafiche_Destroy(anagrafiche);
}
else
{
return
HttpNotFound();
}
return
Json(ModelState.ToDataSourceResult());
}
[HttpPost, ActionName(
"Anagrafiche_Delete"
)]
public
void
Anagrafiche_Destroy([Bind(Prefix =
"models"
)]IEnumerable<AnagraficaViewModel> anagrafiche)
{
if
(ModelState.IsValid)
{
foreach
(var anag
in
anagrafiche)
{
anagraficaRepository.Delete(anag);
}
}
anagraficaRepository.Save();
}
//[AcceptVerbs(HttpVerbs.Post)]
//public ActionResult Anagrafiche_Destroy([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<AnagraficaViewModel> anagrafiche)
//{
// if (anagrafiche.Any() && ModelState.IsValid)
// {
// foreach (var anag in anagrafiche)
// {
// anagraficaRepository.Delete(anag);
// }
// }
// anagraficaRepository.Save();
// return Json(ModelState.ToDataSourceResult());
//}
// ---------------------------------------------------------------------------------------------- //
}
}
/* TO DO:
* - aggiungere la possibilità di scegliere, per ogni record della grid, una manifestazione
* - collegamento tra la pagina manifestazioni e questa pagina (anagrafica in bianco)
* - migliorare l'interfaccia grafica, in particolare l'aspetto della grid
* - controllo ad inserimento per la ragione sociale: stabilire se una voce è già stata inserita nel database