Beispiel #1
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, DataGridView parentDataGrid, bool createNewInstance = true)
        {
            Program.log.Info("Showing file details dialog : " + File.URL);

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

            FrmFileDetails.parentDataGrid          = parentDataGrid;
            FrmFileDetails.currentFile             = File;
            FrmFileDetails.labelFileName.Text      = File.Name;
            FrmFileDetails.labelValueName.Text     = File.Name;
            FrmFileDetails.labelValueRefferer.Text = File.Host;
            FrmFileDetails.labelValueType.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.pathDownloadsDirectory))
            {
                directories.Append(File.Host);
            }
            else
            {
                FrmFileDetails.labelValueRefferer.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.labelValueDirectory.Text = directories.ToString();

            FrmFileDetails.labelValueSize.Text = StringExtensions.BytesToPrefix(File.Size);
            FrmFileDetails.labelValueAge.Text  = StringExtensions.TimeSpanAge(File.DateUploaded);

            FrmFileDetails.Dock = DockStyle.Fill;
            if (!createNewInstance)
            {
                FrmFileDetails.CheckFileEvents();
            }
            else
            {
                ControlExtensions.ShowControlWindow(FrmFileDetails);
            }

            Program.log.Info("Successfully loaded file details dialog");
        }