public IActionResult AddFacture([FromBody] int CompteId) { try { Compte compte = _context.Comptes.Where(c => c.CompteId.Equals(CompteId)).FirstOrDefault(); Panier panier = _context.Paniers.Where(p => p.CompteId.Equals(compte.CompteId)).FirstOrDefault(); Client client = _context.Clients.Where(c => c.UtilisateurId.Equals(compte.ClientId)).FirstOrDefault(); List <Article> articlesDansPanier = _context.Articles.Where(a => a.PanierId.Equals(panier.PanierId)).ToList(); int montantTotal = 0; articlesDansPanier.ForEach(article => { montantTotal += article.Prix; }); // Ne devrait jamais arriver puisque on fait la vérification coté client if (montantTotal > client.Solde) { return(BadRequest()); } else { Facture facture = new Facture() { Compte = compte, DateEmission = DateTime.Now, Montant = montantTotal }; _context.Factures.Add(facture); // On retire les articles du panier articlesDansPanier.ForEach(article => { panier.SupprimerPanierArticle(article); _context.Articles.Remove(article); }); // Le gestionnaire associé gagne 15% du montant total Gestionnaire gestionnaireAssocie = _context.Gestionnaires.Where(g => g.UtilisateurId.Equals(client.GestionnaireAssocieId)).FirstOrDefault(); gestionnaireAssocie.ajoutFacture(facture); // On réduit évidemment le solde du client client.GenererFacture(facture); _context.SaveChanges(); return(Ok()); } } catch (Exception) { } return(BadRequest()); }
public IActionResult EnlevementPanierArticle(int ArticleId, [FromBody] int PanierId) { try { Panier panier = _context.Paniers.Where(p => p.PanierId.Equals(PanierId)).FirstOrDefault(); Article article = _context.Articles.Where(a => a.ArticleId.Equals(ArticleId)).FirstOrDefault(); panier.SupprimerPanierArticle(article); _context.SaveChanges(); return(Ok()); } catch (Exception) { } return(BadRequest()); }