public ActionResult New(SnippetBindingModel model) { if (model == null || !this.ModelState.IsValid) { return this.View(); } var userId = this.User.Identity.GetUserId(); var snippet = new Snippet() { AuthorId = userId, Title = model.Title, Description = model.Description, Code = model.Code, CreatedOn = DateTime.Now, }; snippet.LanguageId = this.GetLanguage(model.Language).Id; var labels = this.GetLabels(model.Labels); foreach (var label in labels) { snippet.Labels.Add(label); } this.Data.Snippets.Add(snippet); this.Data.SaveChanges(); this.AddNotification("New snippet created", NotificationType.SUCCESS); return this.RedirectToAction("My", "Snippets"); }
public ActionResult Add(SnippetBindingModel model) { if (model != null && this.ModelState.IsValid) { var languagesAll = this.LoadLanguages(); var snippet = new Snippet() { Code = model.Code, Title = model.Title, Description = model.Description, LanguageId = model.LanguageId, Language = this.Data.Languages.Find(model.LanguageId), UserId = this.User.Identity.GetUserId(), CreationTime = DateTime.Now }; this.Data.Snippets.Add(snippet); var regex = @"\s*;*([a-zA-Z\-]+);*\s*"; var labels = Regex.Matches(model.Labels, regex); foreach (Match labelFromInput in labels) { foreach (Capture text in labelFromInput.Captures) { var label = this.Data.Labels .All() .FirstOrDefault(l => l.Text == text.Value); if (label != null) { snippet.Labels.Add(label); this.Data.SaveChanges(); } else { string labelValue = text.Value.Replace(";", "").Replace(" ", ""); var newLabel = new Label() { Text = labelValue }; this.Data.Labels.Add(newLabel); this.Data.SaveChanges(); var newlyCreatedLabel = this.Data.Labels .All() .FirstOrDefault(l => l.Text == text.Value); snippet.Labels.Add(newlyCreatedLabel); this.Data.SaveChanges(); } } } this.Data.SaveChanges(); this.AddNotification(GlobalConstants.SnippetCreate, NotificationType.SUCCESS); return this.RedirectToAction(x => x.Details(snippet.Id)); } this.LoadLanguages(); return this.View(model); }
public ActionResult New() { var userName = this.User.Identity.GetUserName(); var newSnippet = new SnippetBindingModel() { AuthorUserName = userName }; return this.View(newSnippet); }
public ActionResult Edit(int id, SnippetBindingModel model) { var snippetToEdit = this.Data.Snippets.Find(id); if (snippetToEdit == null) { this.AddNotification(GlobalConstants.SnippetMissing, NotificationType.ERROR); return this.RedirectToAction("MySnippets"); } if (model != null && this.ModelState.IsValid) { snippetToEdit.Code = model.Code; snippetToEdit.Title = model.Title; snippetToEdit.Description = model.Description; snippetToEdit.CreationTime = snippetToEdit.CreationTime; snippetToEdit.LanguageId = model.LanguageId; var regex = @"\s*;*([a-zA-Z\-]+);*\s*"; var labels = Regex.Matches(model.Labels, regex); foreach (Match labelFromInput in labels) { foreach (Capture text in labelFromInput.Captures) { var label = this.Data.Labels .All() .FirstOrDefault(l => l.Text == text.Value); if (label != null) { snippetToEdit.Labels.Add(label); this.Data.SaveChanges(); } else { string labelValue = text.Value.Replace(";", "").Replace(" ", ""); var newLabel = new Label() { Text = labelValue }; this.Data.Labels.Add(newLabel); this.Data.SaveChanges(); var newlyCreatedLabel = this.Data.Labels .All() .FirstOrDefault(l => l.Text == text.Value); snippetToEdit.Labels.Add(newlyCreatedLabel); this.Data.SaveChanges(); } } } this.Data.SaveChanges(); this.AddNotification(GlobalConstants.SnippetEdited, NotificationType.SUCCESS); return this.RedirectToAction(x => x.Details(snippetToEdit.Id)); } this.LoadLanguages(); return this.View(model); }