private bool setMetaData(MetaDataTable target, MetaDataTable source)
        {
            if (target == null)
            {
                return(true);
            }

            MetaDataRow newRow = (MetaDataRow)target.NewRow();

            for (var i = 0; i < newRow.ItemArray.Length; i++)
            {
                if (!source.Columns.ItemByIndex(i).IsColumnUsedForGrouping)
                {
                    newRow[i] = source.Rows.ItemByIndex(0)[i];
                }
            }

            if (target.Rows.Count == 0)
            {
                target.Rows.Add(newRow);
            }
            else
            {
                target.Rows.ItemByIndex(0).ItemArray = newRow.ItemArray;
            }
            target.AcceptChanges();
            return(false);
        }
예제 #2
0
        /// <summary>
        /// Method for accepting the meta data.
        /// </summary>
        public void AcceptDataChanges()
        {
            if (_data.Rows.Count == 0)
            {
                var row = (MetaDataRow)_data.NewRow();
                foreach (var editor in getEditors())
                {
                    var col = getEditorColumn(editor);
                    if (col == null)
                    {
                        continue;
                    }
                    if (col.DataType == typeof(double))
                    {
                        var editorValue = getEditorValue(editor);
                        row[col] = editorValue ?? (object)DBNull.Value;
                    }
                    else
                    {
                        row[col] = editor.EditValue ?? DBNull.Value;
                    }
                }
                _data.Rows.Add(row);
            }

            _data.AcceptChanges();
            OnMetaDataChanged?.Invoke(this, new EventArgs());
        }
예제 #3
0
        private void ExtractInitialData()
        {
            FileInfo fi            = new FileInfo(FileName);
            string   fullName      = fi.FullName;
            string   name          = fi.Name;
            string   directoryName = fi.DirectoryName;
            bool     isReadOnly    = fi.IsReadOnly;
            string   readOnly;

            if (isReadOnly == true)
            {
                readOnly = "True";
            }
            else
            {
                readOnly = "False";
            }

            string utcCreationTime = fi.CreationTimeUtc.ToString("yyyy-MM-dd HH:mm:ss");
            string extension       = fi.Extension;
            string utcLastAccessed = fi.LastAccessTimeUtc.ToString("yyyy-MM-dd HH:mm:ss");
            string utcLastWrite    = fi.LastWriteTimeUtc.ToString("yyyy-MM-dd HH:mm:ss");
            string FileLength      = fi.Length.ToString("N0");

            MetaDataTable.Rows.Add("BasicData", "Full Name", fullName);
            MetaDataTable.Rows.Add("BasicData", "Name", name);
            MetaDataTable.Rows.Add("BasicData", "Directory Name", directoryName);
            MetaDataTable.Rows.Add("BasicData", "Is Read Only", readOnly);
            MetaDataTable.Rows.Add("BasicData", "UTC Creation Time", utcCreationTime);
            MetaDataTable.Rows.Add("BasicData", "UTC Last Access Time", utcLastAccessed);
            MetaDataTable.Rows.Add("BasicData", "UTC Last Write Time", utcLastWrite);
            MetaDataTable.Rows.Add("BasicData", "File Extension", extension);
            MetaDataTable.Rows.Add("BasicData", "File Length Bytes", FileLength);
            MetaDataTable.AcceptChanges();
        }
예제 #4
0
        private void ExtractExtendedData()
        {
            //Dictionary<int, KeyValuePair<string, string>> metadataProperties = GetFileProperties();
            List <KeyValuePair <string, string> > propertyList = GetExtendedDataProperties();

            foreach (KeyValuePair <string, string> property in propertyList)
            {
                MetaDataTable.Rows.Add("ExtendedData", property.Key, property.Value);
                MetaDataTable.AcceptChanges();
            }
        }