コード例 #1
0
        public ActionResult CreateNewSnippet(CreateSnippetModel inModel)
        {
            UserDTO user = GetCurrentUserData();
            var model = new CreateSnippetModel(_displayLanguages);

            if (ModelState.IsValid)
            {
                try
                {
                    var newSnippet = new SnippetDTO
                                         {
                                             Guid = Guid.NewGuid(),
                                             Name = inModel.Name,
                                             Description = inModel.Description,
                                             Data = Encoding.UTF8.GetBytes(inModel.Data),
                                             IsPublic = true,
                                             Language_Id = inModel.LanguageId,
                                             LastModified = DateTime.UtcNow,
                                             User_Id = user.Id,
                                             User_FormsAuthId = user.FormsAuthId
                                         };

                    var files = new List<FileDTO>();
                    if (CurrentSnippet.UploadModel.Files.Any())
                    {
                        for (int i = 0; i < CurrentSnippet.UploadModel.Files.Count(); i++)
                        {
                            NamedFileWithDescription file =
                                ((List<NamedFileWithDescription>) CurrentSnippet.UploadModel.Files)[i];
                            var temp = new FileDTO
                                           {
                                               Name = file.Name,
                                               Description = file.Description,
                                               Data = file.File.Data,
                                               LastModified = DateTime.UtcNow
                                           };
                            files.Add(temp);
                        }
                    }

                    // The new Guid and snippet id should be returned to us
                    newSnippet = _managerService.CreateSnippet(
                        newSnippet,
                        new LanguageDTO {Id = inModel.LanguageId},
                        user,
                        files.ToArray(),
                        CurrentSnippet.Hyperlinks.ToArray());

                    var detailsModel = new SnippetDetailsModel
                                           {
                                               UserId = user.Id,
                                               UserGuid = user.FormsAuthId,
                                               UserName = user.LoginName,
                                               UserAvatar = user.AvatarImage,
                                               PreviewData = Encoding.UTF8.GetString(newSnippet.PreviewData),
                                               Data = Encoding.UTF8.GetString(newSnippet.Data),
                                               Name = newSnippet.Name,
                                               Description = newSnippet.Description,
                                               IsPublic = inModel.IsPublic,
                                               SnippetId = newSnippet.Guid,
                                               SnippetUrl = newSnippet.Guid.ToString(),
                                               Languages = _displayLanguages,
                                               Files =
                                                   CurrentSnippet.UploadModel.Files ??
                                                   new List<NamedFileWithDescription>(),
                                               Hyperlinks =
                                                   CurrentSnippet.Hyperlinks ?? new List<HyperlinkDTO>(),
                                               LanguageId = inModel.LanguageId
                                           };
                    UploadedFiles = null;
                    CurrentSnippet.Hyperlinks = null;
                    TempData["Message"] = "Saved Snippet Id: " + newSnippet.Guid + " Successfully";

                    return PartialView("_SnippetDetailsTablePartial", detailsModel);
                }
                catch (Exception ex)
                {
                    Logger.LogError("CreateNewSnippet action method failed", ex);
                    if (inModel.Languages == null) inModel.Languages = _displayLanguages;
                    if (inModel.Hyperlinks == null) inModel.Hyperlinks = CurrentSnippet.Hyperlinks;
                    if (inModel.UploadModel == null) inModel.UploadModel = CurrentSnippet.UploadModel;
                    TempData["Error"] = "Unknown error occurred.";
                    return View(inModel);
                }
            }
            else
            {
                inModel.Languages = _displayLanguages;
                TempData["Error"] = "Please fix any errors to continue";
                return View(inModel);
            }
        }
コード例 #2
0
        public ActionResult CreateNewSnippet()
        {
            var viewModel = new CreateSnippetModel(_displayLanguages)
                                {
                                    Data = string.Empty,
                                    Name = string.Empty,
                                    Description = string.Empty,
                                    IsPublic = true,
                                    Hyperlinks = new List<HyperlinkDTO>(),
                                    UploadModel = new UploadPublicFileModel
                                                      {
                                                          Files = new List<NamedFileWithDescription>()
                                                      },
                                    Languages = _displayLanguages,
                                    LanguageId = 1,
                                    IsPrivate = false
                                };

            return View(viewModel);
        }