public Resultat<Topic> CreateTopic(CreateTopicCommand command) { return Resultat<Topic>.SafeExecute<ForumService>( result => { var topic = new Topic { CategorieId = command.CategorieId, Contenu = command.Contenu, CreateurId = command.CreateurId, DateCreation = command.DateCreation, Nom = command.Nom }; context.Topics.AddObject(topic); context.SaveChanges(); }); }
public ActionResult Index(IList<CategorieViewModel> categorieViewModel) { if (!ModelState.IsValid) { return Redirect("Forum/Index"); } else { //On récupère l'utilisateur courant var pseudo = UtilisateurService.GetUtilisateurCourantPseudo().Valeur; var utilisateurCourant = UtilisateurService.GetEntityByPseudo(pseudo); //On récupère la catégorie selectionné par l'utilisateur var categorie = ForumService.GetCategorieByNom(categorieViewModel[0].Nom); // On crée la commande // A l'ancienne cousin ! CreateTopicCommand createTopicCommand = new CreateTopicCommand { CategorieId = categorie.Valeur.Id, Nom = categorieViewModel[0].TitreNewTopic, Contenu = categorieViewModel[0].MessageNewTopic, DateCreation = DateTime.Now, CreateurId = utilisateurCourant.Valeur.Id }; var result = ForumService.CreateTopic(createTopicCommand); if (result.IsValid) { return Redirect("Forum/Index"); } else { //Pour les dev foreach (var erreur in result.Erreurs) { ModelState.AddModelError(erreur.ExecutionException.Source, erreur.ExecutionException); } //Pour les gens (affiche la page error.cshtml throw new Exception("Erreur inattendue dans l'application"); } } }