Example #1
0
        public ActionResult Create()
        {
            var languages = this.Data.Languages.All()
                .Select(l =>
                    new SelectListItem()
                    {
                        Text = l.Name
                    });
            var createSnippetModel = new CreateSnippetModel();

            createSnippetModel.SnippetBindingModel = new SnippetBindingModel();
            createSnippetModel.Languages = languages;

            return this.View(createSnippetModel);
        }
Example #2
0
        public ActionResult Create(CreateSnippetModel model)
        {
            string userId = this.User.Identity.GetUserId();

            var newSnippet = new Snippet()
            {
                Title = model.SnippetBindingModel.Title,
                Description = model.SnippetBindingModel.Description,
                Code = model.SnippetBindingModel.Code,
                CreationTime = DateTime.Now,
                LanguageName = model.SnippetBindingModel.Language,
                AuthorId = userId
            };

            this.Data.Snippets.Add(newSnippet);
            this.Data.SaveChanges();

            var snippet = this.Data.Snippets.All()
                .FirstOrDefault(s => s.Id == newSnippet.Id);
            var labels = model.SnippetBindingModel.Labels.Split(';');

            foreach (var labelText in labels)
            {
                var label = this.Data.Labels.All()
                    .FirstOrDefault(l => l.Text == labelText.Trim());

                if (label == null)
                {
                    var newLabel = new Label()
                    {
                        Text = labelText.Trim()
                    };

                    snippet.Labels.Add(newLabel);
                }
                else
                {
                    snippet.Labels.Add(label);
                }
            }

            this.Data.SaveChanges();

            return this.RedirectToAction("Details", "Snippets", new { id = snippet.Id });
        }