public ActionResult DeleteComposantDetail(int idToDelete) { CardComposantViewModel modelOut = new CardComposantViewModel(); CompositionDTO cpstion = new CompositionDTO(); ModuleDTO mdl = new ModuleDTO(); int idModule; decimal prixComposant; try { cpstion = Mapper.Map <Composition, CompositionDTO>(_compositionService.Get(idToDelete)); prixComposant = Convert.ToDecimal(cpstion.composant.prixHT * (1 + (cpstion.composant.gamme.pourcentageGamme / 100))); _compositionService.Delete(idToDelete, _donneNomPrenomUtilisateur()); _compositionService.Save(); //On récupère les caractéristiques du module idModule = _compositionService.Get(idToDelete).module.id; mdl = Mapper.Map <Module, ModuleDTO>(_moduleService.Get(idModule)); mdl.prix = Decimal.Subtract(mdl.prix, prixComposant); _moduleService.Update(Mapper.Map <ModuleDTO, Module>(mdl), _donneNomPrenomUtilisateur()); _moduleService.Save(); //On reconstruit le tableau récapitulant les composants de l'employé modelOut.tableauComposant.avecActionCrud = false; modelOut.tableauComposant.lesLignes.Add(new List <object> { "Composant", "Prix fournisseur", "Prix de vente", "Gamme", "" }); List <Composition> composition1 = new List <Composition>(); composition1 = _compositionService.DonneTousComposants(idModule); if (composition1.Count != 0) { foreach (Composition cpst1 in composition1) { modelOut.tableauComposant.lesLignes.Add(new List <object> { cpst1.composant.libe, cpst1.composant.prixHT.ToString(), (cpst1.composant.prixHT * (1 + (cpst1.composant.gamme.pourcentageGamme / 100))).ToString(), cpst1.composant.gamme.libe, cpst1.id }); } } modelOut.lesComposants = _donneListeComposants(); FlashMessage.Confirmation("Composant mis à jour avec succès"); } catch (Exception e) { FlashMessage.Danger("Erreur lors de la mise à jour du composant"); return(PartialView("~/Areas/RechercheDeveloppement/Views/Module/_CardComposantPartial.cshtml", modelOut)); } return(PartialView("~/Areas/RechercheDeveloppement/Views/Module/_CardComposantPartial.cshtml", modelOut)); }