/// <summary> /// Preleva una lista delle percentuali per la maggiorazione dei figli in base ad un range di date. /// </summary> /// <param name="idTipologiaFiglio">enumeratore tipologia del figlio</param> /// <param name="dtInizio">data inizio ricerca</param> /// <param name="dtFine">data fine ricerca</param> /// <param name="db">db ise</param> /// <returns>Lista di PercentualeMagFigliModel</returns> public IList <PercentualeMagFigliModel> GetPercentualeMaggiorazioneFigli(EnumTipologiaFiglio idTipologiaFiglio, DateTime dtInizio, DateTime dtFine, ModelDBISE db) { List <PercentualeMagFigliModel> lpmfm = new List <PercentualeMagFigliModel>(); var lpmf = db.PERCENTUALEMAGFIGLI.Where( a => a.ANNULLATO == false && a.IDTIPOLOGIAFIGLIO == (decimal)idTipologiaFiglio && a.DATAINIZIOVALIDITA <= dtFine && a.DATAFINEVALIDITA >= dtInizio) .OrderBy(a => a.DATAINIZIOVALIDITA) .ToList(); if (lpmf?.Any() ?? false) { lpmfm = (from e in lpmf select new PercentualeMagFigliModel() { idPercMagFigli = e.IDPERCMAGFIGLI, idTipologiaFiglio = (EnumTipologiaFiglio)e.IDTIPOLOGIAFIGLIO, dataInizioValidita = e.DATAINIZIOVALIDITA, dataFineValidita = e.DATAFINEVALIDITA, percentualeFigli = e.PERCENTUALEFIGLI, dataAggiornamento = e.DATAAGGIORNAMENTO, annullato = e.ANNULLATO }).ToList(); } return(lpmfm); }
public static ValidationResult VerificaEtaFiglio(string v, ValidationContext context) { ValidationResult vr = ValidationResult.Success; var adm = context.ObjectInstance as AltriDatiFamFiglioModel; if (adm != null) { using (ModelDBISE db = new ModelDBISE()) { var f = db.FIGLI.Find(adm.idFigli); if (f != null && f.IDFIGLI > 0) { EnumTipologiaFiglio idTipologiaFiglio = (EnumTipologiaFiglio)f.IDTIPOLOGIAFIGLIO; if (adm.dataNascita.HasValue) { DateTime dataNascita = adm.dataNascita.Value; int AnnoNascita = dataNascita.Year; int AnnoAttuale = DateTime.Now.Year; int eta = AnnoAttuale - AnnoNascita; switch (idTipologiaFiglio) { case EnumTipologiaFiglio.Residente: if (eta > 18) { vr = new ValidationResult(string.Format("Impossibile inserire il figlio residente ({0}) con età superiore a 18 anni.", f.COGNOME + " " + f.NOME)); } else { vr = ValidationResult.Success; } break; case EnumTipologiaFiglio.NonResidente: if (eta > 18) { vr = new ValidationResult(string.Format("Impossibile inserire il figlio non residente ({0}) con età superiore a 18 anni.", f.COGNOME + " " + f.NOME)); } else { vr = ValidationResult.Success; } break; case EnumTipologiaFiglio.StudenteResidente: if (eta > 26) { vr = new ValidationResult(string.Format("Impossibile inserire il figlio studente residente ({0}) con età superiore a 26 anni.", f.COGNOME + " " + f.NOME)); } else { vr = ValidationResult.Success; } break; case EnumTipologiaFiglio.StudenteNonResidente: if (eta > 26) { vr = new ValidationResult(string.Format("Impossibile inserire il figlio studente non residente ({0}) con età superiore a 26 anni.", f.COGNOME + " " + f.NOME)); } else { vr = ValidationResult.Success; } break; default: throw new ArgumentOutOfRangeException(); } } } } } else { vr = new ValidationResult("Altri dati familiari sono richiesti."); } return(vr); }