コード例 #1
0
        public SnippetDTO CreateSnippet(SnippetDTO snippet, LanguageDTO language, UserDTO user,
                                        IEnumerable<FileDTO> files,
                                        IEnumerable<HyperlinkDTO> links)
        {
            SnippetDTO returnDTO = snippet;

            if (snippet.Data == null || (language == null || language.Id <= 0)) return null;

            if (snippet.Language_Id > 0)
            {
                snippet.Language_Id = language.Id;
                snippet.PreviewData = GetPreviewData(snippet.Data);
                snippet.LastModified = DateTime.UtcNow;
                snippet.User_Id = user.Id;
                snippet.User_FormsAuthId = user.FormsAuthId;
            }

            int result = _snippetOperationsEngine.CreateNewSnippet(snippet);
            if (result > 0)
            {
                returnDTO.Id = snippet.Id;
                returnDTO.Guid = snippet.Guid;

                // Snippet creation was successult. Now we have a SnippetId and can insert
                // any hyperlinks or files

                // Hyperlinks first
                if (links != null && links.Any())
                {
                    foreach (HyperlinkDTO hyperlinkDTO in links)
                    {
                        // Update the hyperlink's Snippet Id since we successfully sved it
                        hyperlinkDTO.Snippet_Id = result;
                        int createHyperlinkResponse = _snippetOperationsEngine.CreateNewHyperlink(hyperlinkDTO);
                        if (createHyperlinkResponse <= 0)
                            Logger.LogInfo(
                                string.Format("Failed to create hyperlink uri {0} for snippet id {1}", hyperlinkDTO.Uri,
                                              hyperlinkDTO.Snippet_Id), LogType.Notify);
                    }
                }

                // Files now
                if (files != null && files.Any())
                {
                    foreach (FileDTO fileDTO in files)
                    {
                        // Update the SnippetId with newly created id
                        fileDTO.Snippet_Id = result;
                        int createFileResponse = _snippetOperationsEngine.CreateNewFile(fileDTO);
                        if (createFileResponse <= 0)
                            Logger.LogInfo(string.Format("Failed to create new file {0} for snippet id {1}", fileDTO.Id,
                                                         fileDTO.Snippet_Id), LogType.Notify);
                    }
                }
            }

            return returnDTO;
        }
コード例 #2
0
        public int CreateNewSnippet(SnippetDTO snippet)
        {
            Guard.ArgNotNull(snippet, "snippet");
            int newSnippetId = -1;
            try
            {
                CreateSnippetResponse result = _dataService.CreateSnippet(
                    new CreateSnippetRequest
                        {
                            IsPublic = snippet.IsPublic,
                            Name = snippet.Name,
                            Description = snippet.Description,
                            PreviewData = snippet.PreviewData,
                            Data = snippet.Data,
                            LastModified = snippet.LastModified,
                            Language_Id = snippet.Language_Id,
                            User_Id = snippet.User_Id,
                            User_FormsAuthId = snippet.User_FormsAuthId,
                            Id = -1,
                            Guid = snippet.Guid
                        });

                if (result.Success)
                    newSnippetId = result.SnippetId;
            }
            catch (Exception ex)
            {
                Logger.LogError("Error creating new snippet", ex);
            }

            return newSnippetId;
        }
コード例 #3
0
        public SnippetDTO GetSnippetByGuid(string guid)
        {
            SnippetDTO returnValue;
            Guid parsedGuid;
            if (Guid.TryParse(guid, out parsedGuid))
                returnValue = _snippetOperationsEngine.GetSnippetByGuid(parsedGuid);
            else
                returnValue = new SnippetDTO();

            return returnValue;
        }
コード例 #4
0
        public ActionResult CreateNewPrivateSnippet(CreateSnippetModelPrivate 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 = false,
                        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);
            }
        }
コード例 #5
0
        public SnippetDTO CreateSnippet(SnippetDTO snippet, LanguageDTO language, UserDTO user,
                                        IEnumerable<FileDTO> files,
                                        IEnumerable<HyperlinkDTO> links)
        {
            SnippetDTO newSnippet = SnippetManager.CreateSnippet(snippet, language, user, files, links);

            return newSnippet;
        }
コード例 #6
0
        public GetPagedSnippetListResponse GetPagedSnippetList(GetPagedSnippetListRequest request)
        {
            var response = new GetPagedSnippetListResponse();

            try
            {
                int skipCount = 0;
                int takeCount = request.SnippetsPerPage;

                if (request.CurrentPage == 0) request.CurrentPage = 1;
                if (request.CurrentPage == 1)
                    takeCount = request.SnippetsPerPage;
                else
                {
                    skipCount = (request.CurrentPage - 1)*request.SnippetsPerPage;
                    takeCount = request.SnippetsPerPage;
                }

                List<Snippet> snippets =
                    _unitOfWork.SnippetRepository.Get(
                        d => d.Id > 0
                             && ((request.IncludePrivate) ? d.IsPublic == (true | false) : d.IsPublic)
                             &&
                             (!(request.IncludePrivate) || (d.User_Id == request.UserId && d.Guid == request.UserGuid)))
                        .OrderByDescending(d => d.LastModified)
                        .Skip(skipCount).Take(takeCount).ToList();

                response.Snippets = new List<SnippetDTO>();
                foreach (Snippet snippet in snippets)
                {
                    var temp = new SnippetDTO
                                   {
                                       Id = snippet.Id,
                                       Data = snippet.Data,
                                       Description = snippet.Description,
                                       Guid = snippet.Guid,
                                       IsPublic = snippet.IsPublic,
                                       Name = snippet.Name,
                                       Language_Id = snippet.Language_Id,
                                       PreviewData = snippet.PreviewData,
                                       LastModified = snippet.LastModified,
                                       User_FormsAuthId = snippet.User_FormsAuthId,
                                       User_Id = snippet.User_Id
                                   };
                    ((List<SnippetDTO>) response.Snippets).Add(temp);
                }
                response.Success = true;
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.FailureInformation = ex.Message;
                Logger.LogError("GetPagedSnippetList method failed", ex);
            }

            return response;
        }
コード例 #7
0
        public GetSnippetByGuidResponse GetSnippetByGuid(GetSnippetByGuidRequest request)
        {
            var response = new GetSnippetByGuidResponse();

            try
            {
                Snippet returnValue = _unitOfWork.SnippetRepository.Get(d => d.Guid == request.Guid).First();
                if (returnValue != null)
                {
                    var dto = new SnippetDTO
                                  {
                                      Id = returnValue.Id,
                                      Guid = returnValue.Guid,
                                      Name = returnValue.Name,
                                      Description = returnValue.Description,
                                      PreviewData = returnValue.PreviewData,
                                      Data = returnValue.Data,
                                      IsPublic = returnValue.IsPublic,
                                      LastModified = returnValue.LastModified,
                                      Language_Id = returnValue.Language_Id,
                                      User_FormsAuthId = returnValue.User_FormsAuthId,
                                      User_Id = returnValue.User_Id
                                  };
                    response.Snippet = dto;
                }
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.FailureInformation = ex.Message;
                Logger.LogError("GetSnippetByGuid Method Failed", ex);
            }

            return response;
        }