public Resultat<Message> CreateMessage(CreateMessageCommand command) { return Resultat<Message>.SafeExecute<ForumService>( result => { var message = new Message { Contenu = command.Contenu, CreateurId = command.CreateurId, DateCreation = command.DateCreation, TopicId = command.TopicId }; context.Messages.AddObject(message); context.SaveChanges(); }); }
public ActionResult Topic(TopicViewModel topicViewModel) { if (!ModelState.IsValid) { return Redirect(topicViewModel.Id.ToString()); } else { //On récupère l'utilisateur courant var pseudo = UtilisateurService.GetUtilisateurCourantPseudo().Valeur; var utilisateurCourant = UtilisateurService.GetEntityByPseudo(pseudo); // On crée la commande // A l'ancienne cousin ! CreateMessageCommand createMessageCommand = new CreateMessageCommand { Contenu = topicViewModel.MessageNewTopic, TopicId = topicViewModel.Id, DateCreation = DateTime.Now, CreateurId = utilisateurCourant.Valeur.Id }; var result = ForumService.CreateMessage(createMessageCommand); if (result.IsValid) { return Redirect(topicViewModel.Id.ToString());//("Topic", new { id = topicViewModel.Id }); } 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"); } } }