コード例 #1
0
 public ActionResult Create(SnippetBindingModel model,string language, string labels)
 {
     if (model != null && this.ModelState.IsValid)
     {
         var userId = this.User.Identity.GetUserId();
         var snippet = new Snippet()
         {
             Title = model.Title,
             Description = model.Description,
             Author = this.Data.Users.Find(userId),
             Language = this.Data.Languages.All().FirstOrDefault(l => l.Name == language),
         };
         if (!labels.IsEmpty())
         {
             var allLabels = labels.Split(';');
             foreach (var l in allLabels)
             {
                 var labelToCheck = l.Trim();
                 var label = this.Data.Labels.All().FirstOrDefault(la => la.Text.ToLower() == labelToCheck.ToLower());
                 if (label == null)
                 {
                     var newLabel = new Label(){Text = l};
                     this.Data.Labels.Add(newLabel);
                     this.Data.SaveChanges();
                 }
                 label = this.Data.Labels.All().FirstOrDefault(la => la.Text == l);
                 snippet.Labels.Add(label);
             }
         }
         this.Data.SaveChanges();
         return RedirectToAction("Details", "Snippets", new { id = snippet.Id });
     }
     return RedirectToAction("Index", "Users");
 }
コード例 #2
0
ファイル: SnippetsController.cs プロジェクト: ASP-MVC/Snippy
 public ActionResult Create(SnippetBindingModel model)
 {
     if (model != null && this.ModelState.IsValid)
     {
         var snippet = Mapper.Map<Snippet>(model);
         snippet.AuthorId = this.UserProfile.Id;
         snippet.CreatedAt = DateTime.Now;
         var labels = this.GetLabels(model.LabelsAsText);
         this.PopulateLabelsToSnippet(snippet, labels);
         this.Data.Snippets.Add(snippet);
         snippet.ProgrammingLanguage =
             this.Data.ProgrammingLanguages.All()
                 .FirstOrDefault(
                     x => x.Id == model.ProgrammingLanguageId);
         this.Data.SaveChanges();
         return this.RedirectToAction("Details", new { id = snippet.Id });
     }
     this.PopulateLangues(model);
     return this.View(model);
 }
コード例 #3
0
ファイル: SnippetsController.cs プロジェクト: ASP-MVC/Snippy
 private void PopulateLangues(SnippetBindingModel model)
 {
     model.Languages = this.populator.GetLanguages();
 }
コード例 #4
0
ファイル: SnippetsController.cs プロジェクト: ASP-MVC/Snippy
 public ActionResult Create()
 {
     var snippetBindinModel = new SnippetBindingModel();
     this.PopulateLangues(snippetBindinModel);
     return this.View(snippetBindinModel);
 }
コード例 #5
0
ファイル: SnippetsController.cs プロジェクト: ASP-MVC/Snippy
        public ActionResult Edit(SnippetBindingModel model)
        {
            if (model != null && this.ModelState.IsValid)
            {
                var snippet = this.Data.Snippets.Find(model.Id);
                snippet.Title = model.Title;
                snippet.Code = model.Code;
                snippet.Description = model.Description;
                snippet.ProgrammingLanguageId = model.ProgrammingLanguageId;

                var labels = this.GetLabels(model.LabelsAsText);
                this.AttachNewLabels(snippet, labels);
                this.Data.Snippets.Add(snippet);
                snippet.ProgrammingLanguage =
                    this.Data.ProgrammingLanguages.All()
                        .FirstOrDefault(
                            x => x.Id == model.ProgrammingLanguageId);
                this.Data.SaveChanges();
                return this.RedirectToAction("Details", new { id = snippet.Id });
            }
            this.PopulateLangues(model);
            return this.View(model);
        }