예제 #1
0
 public IEnumerable <FileManager.DataStructure.Folder> GetParents(Guid websiteId)
 {
     try
     {
         var list              = FileManagerComponent.Instance.FolderFacade.GetParents(true);
         var listfolder        = new List <FileManager.DataStructure.Folder>();
         var congressFoldersBo = new FolderBO();
         foreach (var folder in list)
         {
             var congressFolders = congressFoldersBo.Get(this.ConnectionHandler, websiteId, folder.Id);
             if (congressFolders == null)
             {
                 continue;
             }
             listfolder.Add(folder);
         }
         return(listfolder.OrderBy(folder => folder.Title));
     }
     catch (KnownException knownException)
     {
         throw new KnownException(knownException.Message, knownException);
     }
     catch (Exception ex)
     {
         throw new KnownException(ex.Message, ex);
     }
 }
예제 #2
0
 public override bool Delete(params object[] keys)
 {
     try
     {
         this.ConnectionHandler.StartTransaction(IsolationLevel.ReadUncommitted);
         this.FileManagerConnection.StartTransaction(IsolationLevel.ReadUncommitted);
         var folderBo = new FolderBO();
         var obj      = folderBo.Get(this.ConnectionHandler, keys);
         if (!folderBo.Delete(this.ConnectionHandler, keys))
         {
             throw new Exception("خطایی در حذف پوشه فایل  وجود دارد");
         }
         if (!FileManagerComponent.Instance.FolderTransactionalFacade(this.FileManagerConnection).Delete(obj.FolderId))
         {
             throw new Exception("خطایی در حذف پوشه فایل  وجود دارد");
         }
         this.ConnectionHandler.CommitTransaction();
         this.FileManagerConnection.CommitTransaction();
         return(true);
     }
     catch (KnownException knownException)
     {
         this.ConnectionHandler.RollBack();
         this.FileManagerConnection.RollBack();
         throw new KnownException(knownException.Message, knownException);
     }
     catch (Exception ex)
     {
         this.ConnectionHandler.RollBack();
         this.FileManagerConnection.RollBack();
         throw new KnownException(ex.Message, ex);
     }
 }
        public ActionResult FolderContent(int folderID)
        {
            var dto = FolderBO.GetFolderInfoByID(folderID);

            ViewBag.FolderID   = dto.ID;
            ViewBag.FolderName = dto.Name;
            return(View());
        }
        public String RenameFolder(string foldername, int fid)
        {
            int rev = FolderBO.RenameFolder(foldername, fid);

            if (rev > 0)
            {
                return("Folder name updated");
            }
            return("Error for updating folder name");
        }
        public String RemoveFolder(int fid)
        {
            int rev = FolderBO.DeleteFolder(fid);

            if (rev > 0)
            {
                return("Deleted");
            }
            return("Error");
        }
예제 #6
0
        public async Task CreateFolderAsync(FolderBO folder)
        {
            Validation.Validate.NotNull(folder);

            var entity = new Entities.Folder
            {
                Name           = folder.Name,
                ParentFolderId = folder.ParentFolderId
            };

            await uow.FolderRepository.CreateAsync(entity);
        }
예제 #7
0
        public void UpdateFolder(FolderBO folder)
        {
            Validation.Validate.NotNull(folder);

            var entity = new Entities.Folder
            {
                Id             = folder.Id,
                Name           = folder.Name,
                ParentFolderId = folder.ParentFolderId
            };

            uow.FolderRepository.Update(entity);
        }
        public String CreateFolder(String fname, int uid, int pid)
        {
            FolderDTO folder = FolderBO.FindFolderName(fname, uid, pid);

            if (folder.Id == 0)
            {
                // Insert Folder into DB
                FolderBO.SaveFolder(fname, uid, pid);
                return("Folder Created!");
            }
            else
            {
                return("Folder Exits Already!");
            }
        }
        public String CreateFolder(string foldername, int parentid, int ownerid)
        {
            var dto = new FolderDTO();

            dto.Name           = foldername;
            dto.ParentFolderID = parentid;
            dto.CreatedOn      = DateTime.Now;
            dto.IsActive       = true;
            int ID = FolderBO.SaveFolderInfo(dto);

            if (ID > 0)
            {
                dto.ID = ID;
            }
            return("New child folder created");
        }
예제 #10
0
        public List <Folder> GetWithChilds(Guid folderId)
        {
            try
            {
                var folder  = new FolderBO().Get(this.ConnectionHandler, folderId);
                var folders = new List <Folder> {
                    folder
                };
                FillChild(folder, folders);
                return(folders);
            }

            catch (KnownException knownException)
            {
                Log.Save(knownException.Message, LogType.ApplicationError, knownException.Source, knownException.StackTrace);
                throw new KnownException(knownException.Message, knownException);
            }
            catch (Exception ex)
            {
                Log.Save(ex.Message, LogType.ApplicationError, ex.Source, ex.StackTrace);
                throw new KnownException(ex.Message, ex);
            }
        }
 public List <FolderDTO> GetAllFolder(int parentid, int ownerid)
 {
     return(FolderBO.GetAllFolderInfo(parentid, ownerid));
 }
 public List <FolderDTO> GetAllFolder(int ownerid)
 {
     return(FolderBO.GetAllFolderInfo(ownerid));
 }
 public int DeleteFolder(int fid)
 {
     return(FolderBO.DeleteFolder(fid));
 }
 public List <FolderDTO> GetAllFolders(int uid, int pid)
 {
     return(FolderBO.GetAllMainFoldersByUser(uid, pid));
 }
예제 #15
0
 public async Task CreateFolderAsync(FolderBO folder)
 {
     Validate(folder);
     await ns.CreateFolderAsync(folder);
 }
예제 #16
0
 public void UpdateFolderAsync(FolderBO folder)
 {
     Validate(folder);
     ns.UpdateFolder(folder);
 }
        public void GetMetaData(int uid, int pid)
        {
            FolderDTO        main       = FolderBO.GetFolder(uid, pid);
            List <FolderDTO> folderList = FolderBO.GetAllMainFoldersByUser(uid, pid);
            String           dest       = "D:\\Extras\\MetaData.pdf";
            var writer   = new PdfWriter(dest);
            var pdf      = new PdfDocument(writer);
            var document = new Document(pdf);

            document.Add(new Paragraph("Meta Information of Folder: " + main.Name));
            document.Add(new Paragraph("Name: " + main.Name));
            document.Add(new Paragraph("Type: Folder"));
            document.Add(new Paragraph("Size: None"));
            if (main.ParentFolderId == -1)
            {
                document.Add(new Paragraph("Parent: Root"));
            }
            else
            {
                FolderDTO folder1 = FolderBO.GetFolder(main.CreatedBy, main.ParentFolderId);
                document.Add(new Paragraph("Parent: " + folder1.Name));
            }
            int count = folderList.Count;
            Queue <FolderDTO> foldersQueue = new Queue <FolderDTO>();

            for (int i = 0; i < count; i++)
            {
                foldersQueue.Enqueue(folderList[i]);
            }

            List <FileDTO> fileList = FileBO.GetAllFiles(uid, pid);

            count = fileList.Count;
            Queue <FileDTO> filesQueue = new Queue <FileDTO>();

            for (int i = 0; i < count; i++)
            {
                filesQueue.Enqueue(fileList[i]);
            }

            while (foldersQueue.Count > 0)
            {
                FolderDTO folder = foldersQueue.Dequeue();
                document.Add(new Paragraph("Name: " + folder.Name));
                document.Add(new Paragraph("Type: Folder"));
                document.Add(new Paragraph("Size: None"));
                if (folder.ParentFolderId == -1)
                {
                    document.Add(new Paragraph("Parent: Root"));
                }
                else
                {
                    FolderDTO folder1 = FolderBO.GetFolder(folder.CreatedBy, folder.ParentFolderId);
                    document.Add(new Paragraph("Parent: " + folder1.Name));
                }
                document.Add(new Paragraph(""));
                folder.ParentFolderId = folder.Id;
                folderList            = FolderBO.GetAllMainFoldersByUser(folder.CreatedBy, folder.ParentFolderId);
                count = folderList.Count;
                for (int i = 0; i < count; i++)
                {
                    foldersQueue.Enqueue(folderList[i]);
                }

                fileList = FileBO.GetAllFiles(folder.CreatedBy, folder.ParentFolderId);
                count    = fileList.Count;
                for (int i = 0; i < count; i++)
                {
                    filesQueue.Enqueue(fileList[i]);
                }
            }



            while (filesQueue.Count > 0)
            {
                FileDTO file = filesQueue.Dequeue();
                document.Add(new Paragraph("Name: " + file.Name));
                document.Add(new Paragraph("Type: File"));
                document.Add(new Paragraph("Size: " + file.FileSizeInKB + " KB"));
                if (file.ParentFolderId == -1)
                {
                    document.Add(new Paragraph("Parent: Root"));
                }
                else
                {
                    FolderDTO folder1 = FolderBO.GetFolder(uid, file.ParentFolderId);
                    document.Add(new Paragraph("Parent: " + folder1.Name));
                }
                document.Add(new Paragraph(""));
            }
            document.Add(new Paragraph(""));
            document.Close();
            return;
        }
        public Object GenerateMetadata(int folderid, int ownerid)
        {
            var ParentFolderDTO = FolderBO.GetFolderInfoByID(folderid);
            var ChildFolderDTO  = FolderBO.GetAllFolderInfo(folderid, ownerid);

            var FileDTO = FileBO.GetAllFileInfo(folderid);


            // Generating Guid
            String fileName = Guid.NewGuid().ToString() + ".pdf";

            // Physical path of root folder
            var rootPath     = HttpContext.Current.Server.MapPath("~/Files");
            var filefullpath = Path.Combine(rootPath, fileName);

            // Making pdf file
            var writer   = new PdfWriter(filefullpath);
            var pdf      = new PdfDocument(writer);
            var document = new Document(pdf);

            document.Add(new Paragraph("Name: " + ParentFolderDTO.Name));
            document.Add(new Paragraph("Type: Folder"));
            document.Add(new Paragraph("Size: NILL"));
            if (ParentFolderDTO.ParentFolderID == 0)
            {
                document.Add(new Paragraph("Parent: ROOT"));
            }
            else
            {
                document.Add(new Paragraph("Parent: " + FolderBO.GetParentName(ParentFolderDTO.ParentFolderID)));
            }
            document.Add(new Paragraph(Environment.NewLine));

            //Child Folders info
            if (ChildFolderDTO.Any(item => item.ID != 0))
            {
                document.Add(new Paragraph(" ******* Sub Directories Information ******"));
                document.Add(new Paragraph(Environment.NewLine));
                foreach (var item in ChildFolderDTO)
                {
                    document.Add(new Paragraph("Name: " + item.Name));
                    document.Add(new Paragraph("Type: Folder"));
                    document.Add(new Paragraph("Size: NILL"));
                    document.Add(new Paragraph("Parent: " + ParentFolderDTO.Name));
                    document.Add(new Paragraph(Environment.NewLine));
                }
            }
            if (FileDTO.Any(item => item.ID != 0))
            {
                // Files information
                document.Add(new Paragraph("******* File Information ********"));
                document.Add(new Paragraph(Environment.NewLine));
                foreach (var item in FileDTO)
                {
                    document.Add(new Paragraph("Name: " + item.Name));
                    document.Add(new Paragraph("Type: " + item.FileType));
                    document.Add(new Paragraph("Size: " + (item.Size) + " KB"));
                    document.Add(new Paragraph("Parent: " + ParentFolderDTO.Name));
                    document.Add(new Paragraph(Environment.NewLine));
                }
            }
            document.Close();


            if (fileName != null)
            {
                HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);

                byte[]       file = File.ReadAllBytes(filefullpath);
                MemoryStream ms   = new MemoryStream(file);

                response.Content = new ByteArrayContent(file);
                response.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment");

                response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/pdf");
                response.Content.Headers.ContentDisposition.FileName = fileName;
                return(response);
            }
            else
            {
                HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.NotFound);
                return(response);
            }
        }
예제 #19
0
        /// <summary>
        /// This method is used to construct the notification message and send the notification for the alert
        /// </summary>
        /// <param name="task"></param>
        /// <param name="originalQuery"></param>
        /// <param name="searchBizEntityObj"></param>
        private void ConstructNotificationMessage(SearchAlertsTaskBEO task, string originalQuery,
                                                  DocumentQueryEntity searchBizEntityObj)
        {
            /* send notification only if
             *        - All result count between prev alert and current alert is changed
             *        - All result count is same but new results found for current alert
             *        - if alert is running for the first time
             *        - if the prev query and current query is not same */
            if ((m_LastResultCount != m_AllResultCount) ||
                ((m_LastResultCount == m_AllResultCount) && m_NewResultCount > 0) ||
                (m_AlertLastRunTimestamp.Equals(DateTime.MinValue) ||
                 m_AlertLastRunTimestamp.Equals(Constants.MSSQL2005_MINDATE)) ||
                (!String.IsNullOrEmpty(m_PrevSearchQuery) && (!m_PrevSearchQuery.Equals(originalQuery))))
            {
                var dataSetName = (searchBizEntityObj != null && searchBizEntityObj.QueryObject.DatasetId > 0)
                    ? FolderBO.GetFolderDetails(searchBizEntityObj.QueryObject.DatasetId.ToString()).FolderName
                    : String.Empty;
                var reviewSetName = (searchBizEntityObj != null && searchBizEntityObj.QueryObject.MatterId > 0 &&
                                     !String.IsNullOrEmpty(searchBizEntityObj.QueryObject.ReviewsetId))
                    ? ReviewSetBO.GetReviewSetDetails(searchBizEntityObj.QueryObject.MatterId.ToString(),
                                                      searchBizEntityObj.QueryObject.ReviewsetId).ReviewSetName
                    : String.Empty;
                // Send notification
                var alertMessage = Constants.ALERT_NOTIFICATION_MESSAGE;
                // modify the notification message if this needs to be sent as part of manual alert
                if (m_ManualAlertNextRunDate != DateTime.MinValue)
                {
                    alertMessage += Constants.MANUAL_ALERT_MESSAGE;
                }
                if (string.IsNullOrEmpty(reviewSetName))
                {
                    alertMessage = m_AllResultCount + alertMessage + Constants.Hyphen +
                                   HttpUtility.HtmlDecode(task.SearchAlert.Name) + Constants.FOR + Constants.DATASET +
                                   HttpUtility.HtmlDecode(dataSetName);
                }
                else
                {
                    alertMessage = m_AllResultCount + alertMessage + Constants.Hyphen +
                                   HttpUtility.HtmlDecode(task.SearchAlert.Name) + Constants.FOR + Constants.DATASET +
                                   HttpUtility.HtmlDecode(dataSetName) + Constants.INREVIEWSET +
                                   HttpUtility.HtmlDecode(reviewSetName);
                }
                if ((((m_LastResultCount == m_AllResultCount) && m_NewResultCount > 0) ||
                     ((m_LastResultCount > m_AllResultCount) && m_NewResultCount == 0)) &&
                    (m_AlertLastRunTimestamp != DateTime.MinValue))
                {
                    alertMessage += Constants.SEARCH_ALERT_RESULTS_CHANGED;
                }
                // this is required to get the details of the person who actually created the alert
                if (!string.IsNullOrEmpty(task.SearchAlert.CreatedBy))
                {
                    m_UserBusinessEntity = UserBO.GetUserUsingGuid(task.SearchAlert.CreatedBy);
                }

                var messageBuilder = new StringBuilder();
                messageBuilder.Append(Constants.Table);
                messageBuilder.Append(Constants.Row);
                messageBuilder.Append(Constants.Column);
                messageBuilder.Append(HttpUtility.HtmlEncode(alertMessage));
                messageBuilder.Append(Constants.CloseColumn);
                messageBuilder.Append(Constants.CloseRow);
                messageBuilder.Append(Constants.Row);
                messageBuilder.Append(Constants.Column);
                messageBuilder.Append(Constants.MessageSearchQuery);
                messageBuilder.Append(HttpUtility.HtmlDecode(originalQuery));
                messageBuilder.Append(Constants.CloseColumn);
                messageBuilder.Append(Constants.CloseRow);
                messageBuilder.Append(Constants.Row);
                messageBuilder.Append(Constants.Column);
                messageBuilder.Append(Constants.MessageDatasetName);
                messageBuilder.Append(HttpUtility.HtmlDecode(dataSetName));
                messageBuilder.Append(Constants.CloseColumn);
                messageBuilder.Append(Constants.CloseRow);
                if (!(string.IsNullOrEmpty(reviewSetName)))
                {
                    messageBuilder.Append(Constants.Row);
                    messageBuilder.Append(Constants.Column);
                    messageBuilder.Append(Constants.MessageReviewsetName);
                    messageBuilder.Append(HttpUtility.HtmlDecode(reviewSetName));
                    messageBuilder.Append(Constants.CloseColumn);
                    messageBuilder.Append(Constants.CloseRow);
                }
                messageBuilder.Append(Constants.CloseTable);
                SendNotification(task.SearchAlert, alertMessage, messageBuilder.ToString());
            }
        }