Ejemplo n.º 1
0
        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)));
        }