public async Task <IActionResult> GetHistorique([FromRoute] String login, [FromRoute] String pass) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var personne = await _context.Personnes.SingleOrDefaultAsync(m => m.Email.Equals(login)); if (personne == null) { return(NotFound()); } if (!personne.Pass.Equals(pass)) { return(NotFound()); } var historiques = _context.Historiques.Where(h => h.Personne == personne).ToList(); var periodiques = _context.Periodiques.Where(h => h.Personne == personne).ToList(); foreach (var periodique in periodiques) { bool found = false; foreach (var historique in historiques) { if (historique.Periodique != null) { if (historique.Periodique.Equals(periodique) & !found) { found = true; DateTime d = historique.Date; while (d.AddDays(periodique.Periode) < DateTime.Now) { d = d.AddDays(periodique.Periode); historiques.Add(new Historique { valeur = periodique.valeur, isRevenu = periodique.isRevenu, Commentaire = periodique.Commentaire, Date = d, Personne = periodique.Personne }); } } } } if (!found) { DateTime d = DateTime.Parse("08/04/2018"); while (d.AddDays(periodique.Periode) < DateTime.Now) { d = d.AddDays(periodique.Periode); historiques.Add(new Historique { valeur = periodique.valeur, isRevenu = periodique.isRevenu, Commentaire = periodique.Commentaire, Date = d, Personne = periodique.Personne }); } } } _context.SaveChanges(); return(Ok(historiques.OrderBy(h => h.Date))); }