private WebCategoria GetCategoria(WebIscrizioneViewModel viewModel, WebEventoDettaglio dett) { if (viewModel.DataNascita == null) return null; var age = dett.Evento.DataEvento.Year - viewModel.DataNascita.GetValueOrDefault(DateTime.MinValue).Year; //if (persona.DataNascita > dett.Evento.DataEvento.AddYears(-age)) age--; var cat = _categoria.GetAll() .FirstOrDefault( x => x.Disciplina.Id == UserIdDisciplina && x.DaAnni >= age && x.AdAnni <= age && x.Volontario == dett.Volontari && !x.Obsoleto); return cat; }
public void UpdateModel(WebIscrizione model, WebIscrizioneViewModel viewModel) { model.EventoDettaglio = _dettaglio.GetById(viewModel.EventoDettaglioId); model.Descrizione = viewModel.Descrizione; model.Tessera = _tessera.GetById(viewModel.TesseraId); model.Societa = model.Tessera?.Squadra.Societa; model.DataIscrizione = viewModel.DataIscrizione ?? DateTime.Now; model.IdOperatore = UserIdUtente; model.StampaRicevuta = viewModel.StampaRicevuta; model.DataSmarcatura = viewModel.DataSmarcatura; model.SocietaTesserato = viewModel.SocietaTesserato; model.TesseraNumero = viewModel.TesseraNumero; model.Nome = viewModel.Nome; model.Cognome = viewModel.Cognome; model.Indirizzo = viewModel.Indirizzo; model.NCivico = viewModel.NCivico; model.Localita = viewModel.Localita; model.DataNascita = viewModel.DataNascita; model.Sesso = viewModel.Sesso; model.EMail = viewModel.EMail; model.ScadenzaCertificato = viewModel.ScadenzaCertificato; model.ConsegnataCopiaCertificato= viewModel.ConsegnataCopiaCertificato; model.OrdineArrivo= viewModel.OrdineArrivo; if (string.IsNullOrEmpty(viewModel.Id)) { model.IscrittoDaSocieta = UserIsSocieta && model.Societa!=null && UserIdSocieta == model.Societa.Id; model.Categoria = GetCategoria(viewModel, model.EventoDettaglio); } }
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 Envelope<WebIscrizioneGridViewModel> Save(WebIscrizioneViewModel viewModel) { var ret = new Envelope<WebIscrizioneGridViewModel>(); try { if (viewModel == null) return ret.SetMessage(HelperApi.Forbidden("Oggetto vuoto")); WebIscrizione model; if (string.IsNullOrEmpty(viewModel.Id)) model = new WebIscrizione(); else { model = RepositoryIscrizioni().SingleOrDefault(x => x.Id == viewModel.Id); if (model == null) return ret.SetMessage(HelperApi.NotFound()); } var validation = Validate(viewModel); if (validation.IsError()) return ret.SetMessage(validation.Message()); UpdateModel(model, viewModel); _iscrizione.SaveOrUpdate(model); return GetElement(model.Id); } catch (Exception ex) { return ret.SetMessage(HelperApi.Error("ERRORE:" + ex.Message)); } }
public Envelope<WebIscrizioneGridViewModel> IscriviTessera(WebIscrizioneTesseraViewModel viewModel) { var ret = new Envelope<WebIscrizioneGridViewModel>(); try { if (string.IsNullOrEmpty(viewModel.TesseraNumero) || viewModel.TesseraNumero.Length < UserLenMinTessera) return ret.SetMessage(HelperApi.NotFound("Numero Tessera non trovato")); var tessera = _tessera.GetAll() .FirstOrDefault( x => UserAnniValidi.Contains(x.AnnoCompetenza) && x.Descrizione == viewModel.TesseraNumero); if (tessera == null) return ret.SetMessage(HelperApi.NotFound("Numero Tessera non trovato")); var iscr = new WebIscrizioneViewModel() { Descrizione = viewModel.Descrizione, EventoDettaglioId = viewModel.EventoDettaglioId, TesseraId = tessera.Id, DataIscrizione = DateTime.Now, IscrittoDaSocieta = UserIsSocieta, StampaRicevuta = false, DataSmarcatura = null }; return Save(iscr); } catch (Exception ex) { return ret.SetMessage(HelperApi.Error("ERRORE:" + ex.Message)); } }
public Envelope<WebIscrizioneViewModel> GetByCardAndDetail(string tesseraNumero, string dettaglioEventoId) { var ret = new Envelope<WebIscrizioneViewModel>(); try { WebIscrizioneViewModel vm = null; var iscr = RepositoryIscrizioni() .FirstOrDefault(x => x.Tessera.Descrizione == tesseraNumero && x.EventoDettaglio.Id == dettaglioEventoId); if (iscr != null ) vm = Mapper.Map<WebIscrizioneViewModel>(iscr); else { var tessera = _tessera.GetAll().FirstOrDefault(el => el.Descrizione == tesseraNumero && el.Squadra.Disciplina.Id==UserIdDisciplina); if (tessera != null) vm = new WebIscrizioneViewModel { TesseraId = tessera.Id, SocietaTesserato = tessera.Squadra.Societa.Descrizione, TesseraNumero = tessera.Descrizione, Nome = tessera.Persona.Nome, Cognome = tessera.Persona.Cognome, Indirizzo = tessera.Persona.Indirizzo, NCivico = tessera.Persona.NCivico, Cap = tessera.Persona.Cap, Localita = tessera.Persona.Localita, DataNascita = tessera.Persona.DataNascita, Sesso = tessera.Persona.Sesso, EMail = tessera.Persona.EMail, ScadenzaCertificato = tessera.Persona.ScadenzaCertificato, }; } ret.Obj = vm; ret.Message = ret.Obj != null ? HelperApi.Ok() : HelperApi.NotFound(); } catch (Exception ex) { ret.Message = HelperApi.Error("ERRORE:" + ex.Message); } return ret; }
public void UpdateModel(WebIscrizione model, WebIscrizioneViewModel viewModel) { throw new NotImplementedException(); }
public Envelope<WebIscrizioneGridViewModel> Save(WebIscrizioneViewModel viewModel) { throw new NotImplementedException(); }