public ModelError Validate(WebIscrizioneViewModel viewModel) { var ret = new ModelError(); ret.FieldRequired("EventoDettaglioId", viewModel.EventoDettaglioId); ret.FieldDate("DataIscrizione", viewModel.DataIscrizione); ret.FieldDate("DataSmarcatura", viewModel.DataSmarcatura); if (!ret.IsOk()) return ret; var dett = _dettaglio.GetById(viewModel.EventoDettaglioId); ret.FieldCheck("EventoDettaglioId", "EventoDettaglioId Valore non valido", dett == null || dett.Evento.Disciplina.Id != UserIdDisciplina); if (dett != null) ret.FieldCheck("DataIscrizione", "La data di iscrizione non può essere successiva alla data dell'evento", viewModel.DataIscrizione > dett.Evento.DataEvento); if (viewModel.TesseraId.GetValueOrDefault(0) != 0) { var tessera = _tessera.GetById(viewModel.TesseraId); ret.FieldCheck("TesseraId", "Tessera non valida", tessera == null); ret.FieldCheck("TesseraId", "Tessera con disciplina non valida", tessera != null && tessera.Squadra.Disciplina.Id != UserIdDisciplina); if (tessera != null && dett != null) { //COntrolla scadenza certificato solo se evento dettaglio è agonistico ret.FieldCheck("TesseraId", "Certificato scaduto", tessera.Persona.ScadenzaCertificato.GetValueOrDefault(DateTime.MinValue).Date <= dett.Evento.DataEvento.Date); //Verifica se la persona è già iscritta all'evento var cnt = _iscrizione.GetAll() .FirstOrDefault( x => x.Tessera.Persona.Id == tessera.Persona.Id && x.EventoDettaglio.Evento == dett.Evento && x.Id != viewModel.Id); ret.FieldCheck("TesseraId", "La persona è già iscritta all'evento", cnt!=null); //FORZA DATI DEL TESSERATO UISP DENTRO L'ISCRIZIONE viewModel.SocietaTesserato = tessera.Squadra.Societa.Descrizione; viewModel.TesseraNumero = tessera.Descrizione; viewModel.Nome = tessera.Persona.Nome; viewModel.Cognome = tessera.Persona.Cognome; viewModel.Indirizzo = tessera.Persona.Indirizzo; viewModel.NCivico = tessera.Persona.NCivico; viewModel.Localita = tessera.Persona.Localita; viewModel.DataNascita = tessera.Persona.DataNascita; viewModel.Sesso = tessera.Persona.Sesso; viewModel.EMail = tessera.Persona.EMail; viewModel.ScadenzaCertificato = tessera.Persona.ScadenzaCertificato; } } if (viewModel.Pettorale != null) { ret.FieldCheck("Pettorale", "il campo PETTORALE deve essere maggiore di 0", viewModel.Pettorale < 1); var cnt = _iscrizione.GetAll().FirstOrDefault( x => x.Pettorale!=null && x.Pettorale==viewModel.Pettorale && x.EventoDettaglio.Evento == dett.Evento && x.Id != viewModel.Id); ret.FieldCheck("Pettorale", "Pettorale già attribuito", cnt != null); } if (viewModel.OrdineArrivo != null) { ret.FieldCheck("OrdineArrivo", "il campo ORDINE DI ARRIVO deve essere maggiore di 0", viewModel.OrdineArrivo < 1 ); var cnt = _iscrizione.GetAll().FirstOrDefault( x => x.Pettorale != null && x.OrdineArrivo == viewModel.OrdineArrivo && x.EventoDettaglio.Evento == dett.Evento && x.Id != viewModel.Id); ret.FieldCheck("OrdineArrivo", "Ordine di Arrivo già attribuito", cnt != null); } return ret; }
public ModelError Validate(WebEventoViewModel viewModel) { var ret = new ModelError(); ret.FieldRequired("Descrizione", viewModel.Descrizione); ret.FieldRequired("Luogo", viewModel.Luogo); ret.FieldDate("DataEvento", viewModel.DataEvento ); return ret; }