Esempio n. 1
0
        private async void btnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (SelectFile())
            {
                if (addFileConrtol.FileNames.Length > 0)
                {
                    int index = 0;
                    if (addFileConrtol.FilterIndex > 1)
                    {
                        index = addFileConrtol.FilterIndex - 2;
                    }
                    List <Task> tasks = new List <Task>(addFileConrtol.FileNames.Length);
                    foreach (string path in addFileConrtol.FileNames)
                    {
                        IWillTranslateFile file = FileTypes[index].Create(path);
                        if (file == null)
                        {
                            continue;
                        }
                        Files.Add(new TranslatingFile(file));
                        OnUpdateData();
                        tasks.Add(Files.Last().StatisticsAsync());
                    }
                    if (tasks.Count > 0)
                    {
                        await Task.Factory.ContinueWhenAny(tasks.ToArray(), task => OnUpdateData());

                        await Task.WhenAll(tasks);

                        OnUpdateData(true);
                    }
                }
            }
        }
Esempio n. 2
0
 public TranslatingFile(IWillTranslateFile file)
 {
     File = file;
     if (file.IsFile)
     {
         FullPath = Path.GetFullPath(file.FullPath);
     }
     else
     {
         FullPath = file.FullPath;
     }
     Name          = Path.GetFileName(FullPath);
     DirectoryPath = Path.GetDirectoryName(FullPath);
 }