예제 #1
0
 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();
          });
 }
예제 #2
0
        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");
                }
            }
        }