Beispiel #1
0
        public void ShowFiles(List <WebFile> dataFiles)
        {
            EnableSearchControls(false);

            var stopWatch = new Stopwatch();

            Program.log.Info("Searching files started");
            imageSearchFiles.Image = Properties.Resources.loader;
            BackGroundWorker.RunWorkAsync <List <WebFile> >(() => Query.Search(dataFiles, textBoxSearchFiles.Text, SelectedFilesSort), (data) =>
            {
                if (tabSearch.InvokeRequired)
                {
                    var b = new loadFilesCallBack(ShowFiles);
                    Invoke(b, new object[] { dataFiles });
                }
                else
                {
                    dataGridFiles.Rows.Clear();

                    comboBoxFilterFiles.Items.Clear(); comboBoxFilterFiles.Items.Add("Any");

                    stopWatch.Start();

                    foreach (var jsonData in data)
                    {
                        if (SelectedFilesType.Contains(jsonData.Type) && jsonData.Host.Contains(SelectedFilesHost))
                        {
                            dataGridFiles.Rows.Add(jsonData.Type, jsonData.Name, TextExtensions.BytesToString(jsonData.Size), TextExtensions.GetTimeAgo(jsonData.DateUploaded), jsonData.Host, jsonData.URL);
                            if (!(comboBoxFilterFiles.Items.Contains(jsonData.Host)))
                            {
                                comboBoxFilterFiles.Items.Add(jsonData.Host);
                            }
                        }
                    }

                    stopWatch.Stop(); TimeSpan ts = stopWatch.Elapsed;
                    labelResultsInfo.Text         = TextExtensions.GetFormattedNumber(dataGridFiles.Rows.Count.ToString()) + " / " + TextExtensions.GetFormattedNumber(dataFiles.Count.ToString()) + " Files (" + String.Format("{0:0.000}", ts.TotalSeconds) + " Seconds)"; stopWatch.Reset();

                    tab.SelectedTab = CurrentTab;

                    comboBoxFilterFiles.DropDownWidth = ControlExtensions.DropDownWidth(comboBoxFilterFiles);

                    imageSearchFiles.Image = Properties.Resources.magnify_orange;

                    if (dataGridFiles.Rows.Count == 0)
                    {
                        labelNoResultsFound.Visible = true;
                    }
                    else
                    {
                        labelNoResultsFound.Visible = false;
                    }

                    EnableSearchControls(true);

                    Program.log.Info("Successfully returned search results");
                }
            });
        }
Beispiel #2
0
        /// <summary>
        /// Show details/info for a WebFile
        /// </summary>
        /// <param name="File">WebFile object</param>
        /// <param name="createNewInstance">Whether to create a new instance</param>
        public void ShowFileDetails(WebFile File, bool createNewInstance = true)
        {
            Program.log.Info("Showing file details dialog : " + File.URL);

            if (createNewInstance)
            {
                FrmFileDetails = new FileDetails();
            }

            FrmFileDetails.currentFile       = File;
            FrmFileDetails.infoFileName.Text = File.Name;
            FrmFileDetails.infoName.Text     = File.Name;
            FrmFileDetails.infoReferrer.Text = File.Host;
            FrmFileDetails.infoType.Text     = File.Type;
            FrmFileDetails.infoFileURL.Text  = Uri.UnescapeDataString(File.URL);

            // Builds parts of the URL into a better presented string, simply replaces '/' with '>' and no filename
            var url         = new Uri(File.URL);
            var directories = new StringBuilder();

            if (!File.URL.StartsWith(LocalExtensions.userDownloadsDirectory))
            {
                directories.Append(File.Host);
            }
            else
            {
                FrmFileDetails.infoReferrer.Text = "Local";
            }                                                                                                                                                        // Appends the Host at the start if not Local, else it will be named 'Local'
            foreach (string path in url.LocalPath.Split('/', '\\'))
            {
                if (!Path.HasExtension(path))
                {
                    directories.Append(path + "> ");
                }
            }
            FrmFileDetails.infoDirectory.Text = directories.ToString();

            FrmFileDetails.infoSize.Text = TextExtensions.BytesToString(File.Size);
            FrmFileDetails.infoAge.Text  = TextExtensions.GetTimeAgo(File.DateUploaded);

            FrmFileDetails.Dock = DockStyle.Fill;
            if (!createNewInstance)
            {
                FrmFileDetails.CheckFileEvents();
            }
            if (createNewInstance)
            {
                tabBlank.Controls.Clear(); tabBlank.Controls.Add(FrmFileDetails);
            }
            tab.SelectedTab = tabBlank;

            Program.log.Info("Successfully loaded file details dialog");
        }
Beispiel #3
0
        /// <summary>
        /// Show file details for a WebFile
        /// </summary>
        /// <param name="file">WebFile object</param>
        /// <param name="createNewInstance">Whether to create a new instance</param>
        public void ShowFileDetails(WebFile file, bool createNewInstance = true)
        {
            Program.log.Info("Showing file details dialog : " + file.URL);

            if (createNewInstance)
            {
                FrmFileDetails = new FileDetails();
            }

            FrmFileDetails.currentFile       = file;
            FrmFileDetails.infoFileName.Text = file.Name;
            FrmFileDetails.infoName.Text     = file.Name;
            FrmFileDetails.infoReferrer.Text = file.Host;
            FrmFileDetails.infoType.Text     = file.Type;
            FrmFileDetails.infoFileURL.Text  = Uri.UnescapeDataString(file.URL);

            // Build all parts of the URL into a better presented string
            var url         = new Uri(file.URL);
            var directories = new StringBuilder(file.Host);

            foreach (string path in url.LocalPath.Split('/'))
            {
                if (!Path.HasExtension(path))
                {
                    directories.Append(path + "> ");
                }
            }
            FrmFileDetails.infoDirectory.Text = directories.ToString();

            FrmFileDetails.infoSize.Text = TextExtensions.BytesToString(file.Size);
            FrmFileDetails.infoAge.Text  = TextExtensions.GetTimeAgo(file.DateUploaded);

            FrmFileDetails.Dock = DockStyle.Fill;
            if (!createNewInstance)
            {
                FrmFileDetails.CheckFileEvents();
            }
            if (createNewInstance)
            {
                tabBlank.Controls.Clear(); tabBlank.Controls.Add(FrmFileDetails);
            }
            tab.SelectedTab = tabBlank;

            Program.log.Info("Successfully loaded file details dialog");
        }
Beispiel #4
0
        /// <summary>
        /// Gets recently added files in the database by checking if file was uploaded in the last two weeks
        /// </summary>
        public void LoadRecentlyAddedFiles()
        {
            try
            {
                int itemCount  = 1;
                var addedHosts = new List <string>();
                Program.log.Info("Getting recently added files");
                var copiedItems = new List <WebFile>(FilesOpenDatabase);
                copiedItems.Shuffle();
                foreach (var jsonData in copiedItems)
                {
                    if (DateTime.Today < jsonData.DateUploaded.Date.AddDays(14) && jsonData.Size > 0 && !addedHosts.Contains(jsonData.Host) && itemCount <= 6)
                    {
                        itemCount++;
                        addedHosts.Add(jsonData.Host);
                        dataGridRecentlyAdded.Rows.Add(jsonData.Type, jsonData.Name, TextExtensions.BytesToString(jsonData.Size), TextExtensions.GetTimeAgo(jsonData.DateUploaded), jsonData.Host, jsonData.URL);
                    }
                }

                Program.log.Info("Recently added files successful");
            }
            catch (Exception ex) { labelRecentlyAdded.Visible = false; splitterHeaderRecentlyAdded.Visible = false; dataGridRecentlyAdded.Visible = false; Program.log.Error("Error getting recently added files", ex); } /* Error occurred, so hide controls/skip... */
        }
Beispiel #5
0
 private void btnRequestFileSize_ClickButtonArea(object Sender, MouseEventArgs e)
 {
     // Request file size from URL
     buttonRequestFileSize.Visible = false;
     BackGroundWorker.RunWorkAsync <string>(() => TextExtensions.BytesToString(WebFileExtensions.GetFileSize(currentFile.URL)), (data) => { infoSize.Text = data; });
 }
Beispiel #6
0
        /*************************************************************************/
        /* Home Tab                                                              */
        /*************************************************************************/

        /// <summary>
        /// Get database info located on the first line of the file
        /// </summary>
        public void GetDatabaseInfo()
        {
            Program.log.Info("Getting latest database information");

            long totalSize = 0;

            try
            {
                // Total size of all files in database

                Program.log.Info("Getting absolute total size of all files");

                foreach (var jsonData in FilesOpenDatabase)
                {
                    totalSize += jsonData.Size;
                }

                labelDatabaseStats.Text = String.Format(labelDatabaseStats.Text, TextExtensions.GetFormattedNumber(FilesOpenDatabase.Count.ToString()), TextExtensions.BytesToString(totalSize), TextExtensions.GetFormattedNumber(DataOpenDirectories.Count.ToString()));

                Program.log.Info("Total size of all files successful");
            }
            catch (Exception ex)
            {
                labelDatabaseStats.Text = String.Format(labelDatabaseStats.Text, TextExtensions.GetFormattedNumber(FilesOpenDatabase.Count.ToString()), TextExtensions.BytesToString(totalSize), TextExtensions.GetFormattedNumber(DataOpenDirectories.Count.ToString()));
                Program.log.Error("Unable to get absolute total size of all files", ex);
            }

            try
            {
                // Get database stats

                if (TextExtensions.IsValidJSON(DatabaseInfo))
                {
                    Program.log.Info("Getting latest database update date");
                    var dataJsonInfo = JsonConvert.DeserializeObject <DatabaseInfo>(DatabaseInfo);
                    labelDatabaseUpdatedDate.Text = String.Format(labelDatabaseUpdatedDate.Text, dataJsonInfo.LastUpdated.ToShortDateString());
                    Program.log.Info("Latest database update date successful");
                }
            }
            catch (Exception ex)
            {
                labelDatabaseUpdatedDate.Text = String.Format(labelDatabaseUpdatedDate.Text, "n/a");
                Program.log.Error("Error getting latest database update date", ex);
            }
        }
Beispiel #7
0
        /*************************************************************************/
        /* Home Tab                                                              */
        /*************************************************************************/

        /// <summary>
        /// Set database to UI
        /// </summary>
        public void SetDatabaseInfo()
        {
            labelDatabaseStats.Text       = String.Format(labelDatabaseStats.Text, TextExtensions.GetFormattedNumber(FilesOpenDatabase.Count.ToString()), TextExtensions.BytesToString(Database.GetTotalFileSize()), TextExtensions.GetFormattedNumber(DataOpenDirectories.Count.ToString()));
            labelDatabaseUpdatedDate.Text = String.Format(labelDatabaseUpdatedDate.Text, Database.GetLastUpdateDate().ToShortDateString());
        }