Exemplo n.º 1
0
        public WindowAction(ChangeFolder value)
        {
            InitializeComponent();
            label1.Text = Texts.rm.GetString("FOLDERPLACEHOLDER", Texts.cultereinfo);
            if (value != null)
            {
                window = value;
                if (value.folder != null)
                {
                    comboBox1.SelectedItem = value.folder;
                }
            }

            loadFolders();
        }
Exemplo n.º 2
0
        private void /*List<ImageInformation>*/ GetImagesUponMyCriteria(string path, ISO iso, Date date, ExposureTime et, ExposureProgram ep, Orientation or, bool isDSC, string camName, bool isManualWhiteBalance, bool isFlash, bool isGeo, bool isEdit, CancellationToken token)
        {
            Debug.Assert(String.IsNullOrWhiteSpace(path) == false, "Передана пустая  строка в GetAllImages()");

            // List<ImageInformation> result = new List<ImageInformation>();
            string[] dirs  = null;
            string[] files = null;
            try
            {
                /* string[]*/ dirs  = System.IO.Directory.GetDirectories(path);
                /* string[]*/ files = System.IO.Directory.GetFiles(path, "*.*").Where((s) => s.ToLower().EndsWith(".jpg") || s.ToLower().EndsWith(".jpeg")).ToArray();
            }
            catch (IOException ioe)
            {
                Console.WriteLine(ioe.Message);

                Trace.WriteLine(ioe.Message);
                //выясним, не извлекли ли съемный диск

                DriveInfo drive = new DriveInfo(System.IO.Path.GetPathRoot(path));
                if (!drive.IsReady)
                {
                    Console.WriteLine("Диск " + drive.Name + " был извлечен, или содержит ошибки, мешаюшие поиску");
                    Trace.WriteLine("Диск " + drive.Name + " был извлечен, или содержит ошибки, мешаюшие поиску");
                    return /*result*/;
                }
                if (dirs == null || files == null)
                {
                    Trace.WriteLine("Массивы со списком файлов или папок - null");
                    return /*result*/;
                }
            }

            ChangeFolder?.Invoke(new SearchChangeFolderEventArgs(path, files.Length));

            foreach (var f in files)
            {
                if (token.IsCancellationRequested)
                {
                    return;// result;
                }
                try
                {
                    var dirsPhoto = MetadataExtractor.ImageMetadataReader.ReadMetadata(Path.GetFullPath(f));
                    if (isMatch(f, dirsPhoto, iso, date, et, ep, or, isDSC, camName, isManualWhiteBalance, isFlash, isGeo, isEdit))
                    {
                        ImageInformation ciexif = new ImageInformation(f, dirsPhoto);
                        // result.Add(ciexif);
                        NewFile?.Invoke(new SearchNewFileEventArgs(ciexif));
                    }
                }
                catch (ImageProcessingException ipe)
                {
                    Console.WriteLine(ipe.Message);
                    Trace.WriteLine(ipe.Message);
                }
                catch (IOException ioe)
                {
                    Console.WriteLine(ioe.Message);

                    Trace.WriteLine(ioe.Message);
                    //выясним, не извлекли ли съемный диск
                    DriveInfo drive = new DriveInfo(System.IO.Path.GetPathRoot(f));
                    if (!drive.IsReady)
                    {
                        Console.WriteLine("Диск " + drive.Name + " был извлечен, или содержит ошибки, мешаюшие поиску");
                        Trace.WriteLine("Диск " + drive.Name + " был извлечен, или содержит ошибки, мешаюшие поиску");
                        IOFatalError?.Invoke(this, new EventArgs());
                        return; //result;
                    }
                }
                catch (UnauthorizedAccessException uae)
                {
                    Trace.WriteLine(uae.Message);
                }
            }

            foreach (var d in dirs)
            {
                if ((windirSkipFlag == false) && (systemDirectoryScan == false))
                {
                    if (d.Contains(Environment.GetFolderPath(Environment.SpecialFolder.Windows)))
                    {
                        Trace.WriteLine("Пропуск системного каталога...");
                        windirSkipFlag = true;
                        continue;
                    }
                }

                if (token.IsCancellationRequested)
                {
                    return;// result;
                }
                try
                {
                    //result.AddRange(GetImagesUponMyCriteria(d,iso,date,et,ep,or,isDSC, camName, isManualWhiteBalance,isFlash,isGeo,isEdit, token));
                    GetImagesUponMyCriteria(d, iso, date, et, ep, or, isDSC, camName, isManualWhiteBalance, isFlash, isGeo, isEdit, token);
                }
                catch (UnauthorizedAccessException uae)
                {
                    Trace.WriteLine(uae.Message);
                }
            }

            // return result;
        }
        public void AddChangeToIncrementalDict(Dictionary <string, object> changesDict, string type, string ownerOfChangeUrl, Change change)
        {
            Dictionary <string, object> changeDict = new Dictionary <string, object>();
            ChangeOutput changeOutput = new ChangeOutput();

            changeOutput.change     = change;
            changeOutput.site       = ownerOfChangeUrl;
            changeOutput.changeDict = changeDict;
            changeOutputs.Add(changeOutput);
            if (change is ChangeGroup)
            {
                ChangeGroup changeGroup = (ChangeGroup)change;
                changeDict.Add("GroupId", changeGroup.GroupId);
                //changeGroupList.Add(changeGroup);
            }
            else if (change is ChangeUser)
            {
                ChangeUser changeUser = (ChangeUser)change;
                changeDict.Add("Activate", changeUser.Activate);
                changeDict.Add("UserId", changeUser.UserId);
                //changeUserList.Add(changeUser);
            }
            else if (change is ChangeItem)
            {
                ChangeItem changeItem = (ChangeItem)change;
                changeDict.Add("ItemId", changeItem.ItemId);
                changeDict.Add("ListId", changeItem.ListId);
                changeDict.Add("WebId", changeItem.WebId);
                //changeItemList.Add(changeItem);
            }
            else if (change is ChangeFolder)
            {
                ChangeFolder changeFolder = (ChangeFolder)change;
                changeDict.Add("UniqueId", changeFolder.UniqueId);
                changeDict.Add("WebId", changeFolder.WebId);
            }
            else if (change is ChangeList)
            {
                ChangeList changeList = (ChangeList)change;
                changeDict.Add("ListId", changeList.ListId);
                changeDict.Add("WebId", changeList.WebId);
                //changeListList.Add(changeList);
            }
            else if (change is ChangeFile)
            {
                ChangeFile changeFile = (ChangeFile)change;
                changeDict.Add("UniqueId", changeFile.UniqueId);
                changeDict.Add("WebId", changeFile.WebId);
                //changeFileList.Add(changeFile);
            }
            else if (change is ChangeWeb)
            {
                ChangeWeb changeWeb = (ChangeWeb)change;
                changeDict.Add("WebId", changeWeb.WebId);
                //changeWebList.Add(changeWeb);
            }
            else if (change is ChangeView)
            {
                return;
            }
            else
            {
                Console.WriteLine("Unhandled change type: {0}", change);
            }
            changeDict.Add("OwnerOfChangeType", type);
            changeDict.Add("OwnerOfChangeUrl", ownerOfChangeUrl);
            changeDict.Add("Tag", change.Tag);
            changeDict.Add("ChangeToken", change.ChangeToken);
            changeDict.Add("ChangeType", change.ChangeType.ToString());
            changeDict.Add("Time", change.Time);
            changeDict.Add("SiteId", change.SiteId);
            changeDict.Add("Type", change.GetType().Name);
            changesDict.Add(type + "|;" + ownerOfChangeUrl + "|;" + change.ChangeToken.StringValue, changeDict);
        }