Advertisement
Guest User

Presenter

a guest
Dec 16th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 32.62 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Diagnostics;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Net;
  7. using System.Text;
  8. using System.Text.RegularExpressions;
  9. using System.Threading.Tasks;
  10. using System.Windows.Forms;
  11.  
  12. namespace File_managers
  13. {
  14.     interface IView
  15.     {
  16.         string DirectoryPath { get; set; }
  17.         string FilePath { get; set; }
  18.         string NewName { get; set; }
  19.         string NewPassword { get; set; }
  20.         string NewLogin { get; set; }
  21.         string SearchingName { get; set; }
  22.         string PassforDonload { get; set; }
  23.         string Key { get; set; }
  24.         string NewNameFile { get; set; }
  25.         string NewNameFolder { get; set; }
  26.         event EventHandler listBox1_MouseDouble;
  27.         event EventHandler BackClick;
  28.         event EventHandler CopyToolStripMenuItem_Click;
  29.         event EventHandler DeleteToolStripMenuItem1_Click;
  30.         event EventHandler InsertToolStripMenuItem_Click;
  31.         event EventHandler RenameToolStripMenuItem_Click;
  32.         event EventHandler ImageToolStripMenuItem_Click;
  33.         event EventHandler ChangePasswordToolStripMenuItem_Click;
  34.         event EventHandler CreateArchiveToolStripMenuItem_Click_1;
  35.         event EventHandler ChangeLoginToolStripMenuItem_Click;
  36.         event EventHandler PassportIDToolStripMenuItem_Click;
  37.         event EventHandler PhoneNumberToolStripMenuItem_Click;
  38.         event EventHandler INNToolStripMenuItem_Click;
  39.         event EventHandler EmailAddressToolStripMenuItem_Click;
  40.         event EventHandler FTPAddressToolStripMenuItem_Click;
  41.         event EventHandler VKPagesToolStripMenuItem_Click;
  42.         event EventHandler button3Click;
  43.         event EventHandler button4Click;
  44.         event EventHandler textBox4TextChanged;
  45.         event EventHandler Form1Load;
  46.         event EventHandler button5Click;
  47.         event EventHandler CalculateMD5ToolHashlStripMenuItem_Click;
  48.         event EventHandler CryptToolStripMenuItem_Click_1;
  49.         event EventHandler DecryptToolStripMenuItem_Click;
  50.         event EventHandler MoveToolStripMenuItem_Click;
  51.         event EventHandler CreateFileClick;
  52.         event EventHandler CreateFolderClick;
  53.         event EventHandler DeleteImage;
  54.         void OnSerializing();
  55.         void DeSerializing();
  56.         void DisplayItems(string[] items);
  57.         void Watcher_Changed(object sender, FileSystemEventArgs e);
  58.         void Watcher_Renamed(object sender, RenamedEventArgs e);
  59.  
  60.     }
  61.     class Presenter
  62.     {
  63.         UserPrefers user = new UserPrefers();
  64.         SearchingStrategy searchingStrategy = new SearchingStrategy();
  65.        
  66.         public Presenter(IView view)
  67.         {
  68.             this.view = view;
  69.            
  70.             view.BackClick += new EventHandler(Back);
  71.             view.button3Click += new EventHandler(button3);
  72.             view.button4Click += new EventHandler(button4);
  73.             view.button5Click += new EventHandler(button5);
  74.             view.listBox1_MouseDouble += new EventHandler(ListBoxDoubleClick);
  75.             view.textBox4TextChanged += new EventHandler(TextBox4TextChange);
  76.             view.InsertToolStripMenuItem_Click += new EventHandler(Insert);
  77.             view.CalculateMD5ToolHashlStripMenuItem_Click += new EventHandler(Calculate);
  78.             view.CryptToolStripMenuItem_Click_1 += new EventHandler(Encrypt);
  79.             view.DecryptToolStripMenuItem_Click += new EventHandler(Decrypt);
  80.             view.ChangeLoginToolStripMenuItem_Click += new EventHandler(ChangeLog);
  81.             view.ChangePasswordToolStripMenuItem_Click += new EventHandler(ChangePassword);
  82.             view.PassportIDToolStripMenuItem_Click += new EventHandler(PassportID);
  83.             view.PhoneNumberToolStripMenuItem_Click += new EventHandler(PhoneNumber);
  84.             view.INNToolStripMenuItem_Click += new EventHandler(INN);
  85.             view.EmailAddressToolStripMenuItem_Click += new EventHandler(EmailAddress);
  86.             view.FTPAddressToolStripMenuItem_Click += new EventHandler(FtpAddress);
  87.             view.VKPagesToolStripMenuItem_Click += new EventHandler(VkPages);
  88.             view.Form1Load += new EventHandler(Load);
  89.             view.DeleteToolStripMenuItem1_Click += new EventHandler(DeleteObj);
  90.             view.CopyToolStripMenuItem_Click += new EventHandler(CopyObj);
  91.             view.MoveToolStripMenuItem_Click += new EventHandler(Move);
  92.             view.RenameToolStripMenuItem_Click += new EventHandler(Renamed);
  93.             view.ImageToolStripMenuItem_Click += new EventHandler(CreateBackgroundImage);
  94.             view.CreateArchiveToolStripMenuItem_Click_1 += new EventHandler (CreateArchive);
  95.             view.CreateFileClick += new EventHandler(CreateFile);
  96.             view.CreateFolderClick += new EventHandler(CreateFolder);
  97.             view.DeleteImage += new EventHandler(Deleteimage);
  98.         }
  99.  
  100.         private void Deleteimage(object sender, EventArgs e)
  101.         {
  102.             view.DeSerializing();
  103.             user.pas = null;
  104.             view.OnSerializing();
  105.         }
  106.  
  107.         private void CreateFolder(object sender, EventArgs e)
  108.         {
  109.             var curSelection = Factory.Get(view.DirectoryPath);
  110.             if (curSelection is Folder)
  111.             {
  112.                 new Folder(view.DirectoryPath + '\\' + view.NewNameFolder).Create();
  113.             }
  114.             if (curSelection is ZippedFolder)
  115.             {
  116.                 new ZippedFolder(view.DirectoryPath).CreateFolder(view.NewNameFolder);
  117.             }
  118.         }
  119.  
  120.         private void CreateFile(object sender, EventArgs e)
  121.         {
  122.             var curSelection = Factory.Get(view.DirectoryPath);
  123.             if (curSelection is Folder)
  124.             {
  125.                 new File1(view.DirectoryPath + '\\' + view.NewNameFile).Create().Close();
  126.             }
  127.             if (curSelection is ZippedFolder)
  128.             {
  129.                 new ZippedFolder(view.DirectoryPath).CreateFile(view.NewNameFile);
  130.             }
  131.  
  132.         }
  133.  
  134.         FileSystemWatcher watcher = new FileSystemWatcher();
  135.         private void Load(object sender, EventArgs e)
  136.         {
  137.             watcher.Path = view.DirectoryPath;
  138.             watcher.Changed += view.Watcher_Changed;
  139.             watcher.Created += view.Watcher_Changed;
  140.             watcher.Deleted += view.Watcher_Changed;
  141.             watcher.Renamed += new RenamedEventHandler(view.Watcher_Renamed);
  142.             watcher.EnableRaisingEvents = true;
  143.         }
  144.  
  145.  
  146.         ArchivationRunner runner;
  147.  
  148.         private void CreateArchive(object sender, EventArgs e)
  149.         {
  150.             DialogResult vibor2 = MessageBox.Show("Архивировать с помощью Task?" + '\n' + "Иначе архивация будет выполнена с помощью async-await ", "Архивация", MessageBoxButtons.YesNo);
  151.             if (vibor2 == DialogResult.Yes) { runner = new Archivation2(); }
  152.             if (vibor2 == DialogResult.No) { runner = new Archivation1(); }
  153.  
  154.            
  155.             runner.Archivation(view.DirectoryPath  , view.FilePath);
  156.  
  157.             List<string> filenames = new List<string>();
  158.             var listfiles = new Folder(view.DirectoryPath).GetFiles().ToList();
  159.             var listDir = new Folder(view.DirectoryPath).GetAllDirectories().ToList();
  160.             foreach (var f in listfiles.Concat(listDir))
  161.             {
  162.                 filenames.Add(new File1(f).GetName());
  163.             }
  164.             view.DisplayItems(filenames.ToArray());
  165.  
  166.  
  167.             view.DisplayItems(new Folder(view.DirectoryPath).GetAllFiles(new Folder(view.DirectoryPath).FolderWork()));
  168.             MessageBox.Show("Выполнено");
  169.         }
  170.  
  171.         private void Renamed(object sender, EventArgs e)
  172.         {
  173.             var curSelection = Factory.Get(view.DirectoryPath + '\\' + view.FilePath);
  174.             if (curSelection is File1)
  175.  
  176.             {
  177.                 string adress = view.DirectoryPath + '\\';
  178.                 string oldname = new File1(adress).Combine(adress, view.FilePath);
  179.                 int count = oldname.IndexOf('.');
  180.                 string resol = oldname.Substring(count + 1);
  181.                 string newname =view.NewName + '.' + resol;
  182.  
  183.  
  184.                 new File1(adress + view.FilePath).Moving(adress + '\\' + newname);
  185.             }
  186.            
  187.             if (curSelection is Folder)
  188.             {
  189.  
  190.                 new Folder(view.DirectoryPath + '\\' + view.NewName).Create();
  191.                 EnumerationObjects(view.DirectoryPath + '\\' + view.FilePath,
  192.                 view.DirectoryPath + '\\' + view.NewName);
  193.                 new Folder(view.DirectoryPath + '\\' + view.FilePath).Delete(true);
  194.  
  195.             }
  196.            
  197.         }
  198.        
  199.         private void Back(object sender, EventArgs e)
  200.         {
  201.  
  202.             if (view.DirectoryPath.Length - 1 == '\\')
  203.             {
  204.                 List<string> filenames = new List<string>();
  205.                 view.DirectoryPath = view.DirectoryPath.Remove(view.DirectoryPath.Length - 1, 1);
  206.                 while (view.DirectoryPath[view.DirectoryPath.Length - 1] != '\\')
  207.                 {
  208.                     view.DirectoryPath = view.DirectoryPath.Remove(view.DirectoryPath.Length - 1, 1);
  209.                 }
  210.  
  211.  
  212.             }
  213.             else if (view.DirectoryPath[view.DirectoryPath.Length - 1] != '\\')
  214.             {
  215.                 List<string> filenames = new List<string>();
  216.                 while (view.DirectoryPath[view.DirectoryPath.Length - 1] != '\\')
  217.                 {
  218.                     view.DirectoryPath = view.DirectoryPath.Remove(view.DirectoryPath.Length - 1, 1);
  219.                 }
  220.                 if (view.DirectoryPath == "C:\\")
  221.                 {
  222.                     var listfiles = new Folder(view.DirectoryPath).GetFiles().ToList();
  223.                     var listDir = new Folder(view.DirectoryPath).GetAllDirectories().ToList();
  224.  
  225.                     foreach (var f in listfiles.Concat(listDir))
  226.                     {
  227.                         filenames.Add(new File1(f).GetName());
  228.                     }
  229.                     view.DisplayItems(filenames.ToArray());
  230.                 }
  231.                 else
  232.                 {
  233.                     var listfiles = new Folder(view.DirectoryPath.Remove(view.DirectoryPath.Length - 1, 1)).GetFiles().ToList();
  234.                     var listDir = new Folder(view.DirectoryPath.Remove(view.DirectoryPath.Length - 1, 1)).GetAllDirectories().ToList();
  235.  
  236.                     foreach (var f in listfiles.Concat(listDir))
  237.                     {
  238.                         filenames.Add(new File1(f).GetName());
  239.                     }
  240.                     view.DisplayItems(filenames.ToArray());
  241.                 }
  242.              
  243.  
  244.             }
  245.             view.DirectoryPath = view.DirectoryPath.Remove(view.DirectoryPath.Length - 1, 1);
  246.             if (view.DirectoryPath == "C:")
  247.             {
  248.                 view.DirectoryPath = @"C:\";
  249.             }
  250.  
  251.         }
  252.         private void Move(object sender, EventArgs e)
  253.         {
  254.             name = view.DirectoryPath + '\\' + view.FilePath;
  255.             count = 1;
  256.         }
  257.  
  258.         public string pass;
  259.  
  260.         private void CreateBackgroundImage(object sender, EventArgs e)
  261.         {
  262.             string adress1 = view.FilePath;
  263.  
  264.             int count1 = adress1.IndexOf('.');
  265.             string resol1 = adress1.Remove(count1);
  266.             var curSelection = Factory.Get(view.DirectoryPath + '\\' + resol1 + ".jpg");
  267.             var curSelection1 = Factory.Get(view.DirectoryPath + '\\' + resol1 + ".bmp");
  268.             var curSelection2 = Factory.Get(view.DirectoryPath + '\\' + resol1 + ".tif");
  269.  
  270.             if (curSelection is File1 || curSelection1 is File1 ||
  271.                 curSelection2 is File1)
  272.             {
  273.                 new File1(view.DirectoryPath + '\\' + view.FilePath).Copy(new Folder(view.DirectoryPath).CurrentDirectory() + view.FilePath, true);
  274.                view.DeSerializing();
  275.                
  276.                 pass = new Folder(view.DirectoryPath).CurrentDirectory() + view.FilePath;
  277.                 user.pas = new Folder(view.DirectoryPath).CurrentDirectory() + view.FilePath;
  278.               view.OnSerializing();
  279.             }
  280.             else
  281.             {
  282.                 MessageBox.Show("Данный формат не поддерживается");
  283.             }
  284.         }
  285.  
  286.        
  287.         string name;
  288.         int count = 0;
  289.  
  290.         private void CopyObj(object sender, EventArgs e)
  291.         {
  292.             name = view.DirectoryPath + '\\' + view.FilePath;
  293.         }
  294.  
  295.         private void DeleteObj(object sender, EventArgs e)
  296.         {
  297.             var curSelection = Factory.Get(view.DirectoryPath + '\\' + view.FilePath);
  298.            
  299.              if (curSelection is Folder)
  300.             {
  301.                 if (view.DirectoryPath.Contains(".archive.zip"))
  302.                 {
  303.                     new ZippedFolder(view.DirectoryPath + '\\' + view.FilePath).Delete(view.FilePath);
  304.                 }
  305.                 else
  306.                 {
  307.                     new Folder(view.DirectoryPath + '\\' + view.FilePath).Delete(true);
  308.                 }
  309.             }
  310.           else
  311.  
  312.             {
  313.                 if (view.DirectoryPath.Contains(".archive.zip"))
  314.                 {
  315.                     new ZippedFile(view.DirectoryPath).Delete(view.FilePath);
  316.                 }
  317.                 else
  318.                 {
  319.                     new File1(view.DirectoryPath + '\\' + view.FilePath).Delete();
  320.                 }
  321.             }
  322.             //if (curSelection is ZippedFile)
  323.             //{
  324.  
  325.             //}
  326.             //if (curSelection is ZippedFolder)
  327.             //{
  328.  
  329.             //}
  330.             view.DisplayItems(GetAllEntries(view.DirectoryPath).ToArray());
  331.         }
  332.  
  333.         WebClient wc = new WebClient();
  334.         string timename;
  335.  
  336.         private async void button3(object sender, EventArgs e)
  337.         {
  338.             timename = Guid.NewGuid().ToString() + ".txt";
  339.             string Text = await new WebClient().DownloadStringTaskAsync(view.PassforDonload);
  340.             new File1(@"C:\Project\Download" + "//" + timename).AppendText(Text, Encoding.Default);
  341.             MessageBox.Show("Загрузка завершена");
  342.         }
  343.         private void button4(object sender, EventArgs e)
  344.         {
  345.             wc.CancelAsync();
  346.  
  347.             MessageBox.Show("Загрузка отменена");
  348.             new File1(@"C:\Project\Download" + '\\' + timename).Delete();
  349.  
  350.         }
  351.         private void button5(object sender, EventArgs e)
  352.         {
  353.             view.DisplayItems(new Folder(view.DirectoryPath).GetAllFiles(new Folder(view.DirectoryPath).FolderWork()));
  354.             watcher.Path = view.DirectoryPath;
  355.  
  356.         }
  357.         public List<string> GetAllEntries(string directory)
  358.         {
  359.             var curSelection = Factory.Get(directory);
  360.             List<string> filenames = new List<string>();
  361.             if (curSelection is Folder)
  362.             {
  363.                 int ZipPlace = view.DirectoryPath.IndexOf(".zip\\");
  364.                 if (view.DirectoryPath[view.DirectoryPath.Length - 1] == '\\')
  365.                 {
  366.                     var listfiles = new Folder(view.DirectoryPath.Remove(view.DirectoryPath.Length - 1, 1)).GetFiles().ToList();
  367.                     var listDir = new Folder(view.DirectoryPath.Remove(view.DirectoryPath.Length - 1, 1)).GetAllDirectories().ToList();
  368.                     foreach (var f in listfiles.Concat(listDir))
  369.                     {
  370.                         filenames.Add(new File1(f).GetName());
  371.                     }
  372.                 }
  373.                 else
  374.                 {
  375.                     var listfiles = new Folder(view.DirectoryPath).GetFiles().ToList();
  376.                     var listDir = new Folder(view.DirectoryPath).GetAllDirectories().ToList();
  377.                     foreach (var f in listfiles.Concat(listDir))
  378.                     {
  379.                         filenames.Add(new File1(f).GetName());
  380.                     }
  381.                 }
  382.                
  383.                
  384.             }
  385.             if (curSelection is ZippedFolder)
  386.             {
  387.                filenames= new ZippedFolder(directory).GetAllFiles();
  388.             }
  389.             return filenames;
  390.         }
  391.      
  392.        
  393.         private void ListBoxDoubleClick(object sender, EventArgs e)
  394.         {
  395.             var curSelection = Factory.Get(view.DirectoryPath);
  396.  
  397.             if (view.DirectoryPath=="\\\\C:\\")
  398.             {
  399.                 var enumr = new Folder("C:\\").Getcollect();
  400.                 List<string> folders = new List<string>();
  401.                 try
  402.                 {
  403.                     while (enumr.MoveNext())
  404.                     {
  405.  
  406.                         folders.Add(enumr.Current.Name);
  407.  
  408.                     }
  409.  
  410.                 }
  411.                 catch { }
  412.                
  413.                 view.DisplayItems(folders.ToArray());
  414.                
  415.             }
  416.             if ((curSelection is Folder)&&(view.DirectoryPath != "\\\\C:\\"))
  417.             {
  418.                 List<string> Entries = new List<string>();
  419.                 if (view.DirectoryPath.Contains(".archive.zip"))
  420.                 {
  421.                     view.DirectoryPath = view.DirectoryPath + view.FilePath.Replace('/', '\\');
  422.                 //    Entries = new ZippedFolder(view.DirectoryPath).OpenFolderInZip(view.FilePath);
  423.                  
  424.                 }
  425.                 else
  426.                 {
  427.                     var dirs = new Folder(view.DirectoryPath).GetAllDirectories();
  428.  
  429.  
  430.                     foreach (string crrdir in dirs)
  431.                     {
  432.                         var name = new Folder(crrdir).GetName();
  433.                         Entries.Add(name);
  434.                     }
  435.  
  436.                     var files = new Folder(view.DirectoryPath).GetFiles();
  437.  
  438.                     foreach (string crrfiles in files)
  439.                     {
  440.                         var namefile = new Folder(crrfiles).GetName();
  441.                         Entries.Add(namefile);
  442.                     }
  443.                 }
  444.                 view.DisplayItems(Entries.ToArray());
  445.  
  446.                 watcher.Path = view.DirectoryPath + '\\' + view.FilePath;
  447.             }
  448.             if (curSelection is File1)
  449.             {
  450.                 if (view.DirectoryPath.Contains(".zip"))
  451.                 {
  452.                     new ZippedFile(view.DirectoryPath).OpenFile(view.FilePath);
  453.                     int ZipPlace = view.DirectoryPath.IndexOf(".zip\\");
  454.                     string name = view.FilePath;
  455.                     string path1 = view.DirectoryPath.Substring(0, ZipPlace + 4);
  456.                     string ArchiveWay = view.DirectoryPath.Substring(ZipPlace + 5);
  457.                     while (path1[path1.Length - 1] != '\\')
  458.                     {
  459.                         path1 = path1.Remove(path1.Length - 1, 1);
  460.                     }
  461.  
  462.                     while (view.DirectoryPath[view.DirectoryPath.Length - 1] != '\\')
  463.                     {
  464.                         view.DirectoryPath = view.DirectoryPath.Remove(view.DirectoryPath.Length - 1, 1);
  465.                     }
  466.                     Process.Start(path1 + name);
  467.  
  468.  
  469.                 }
  470.                 else
  471.                 {
  472.                     while (view.DirectoryPath[view.DirectoryPath.Length - 1] != '\\')
  473.                     {
  474.                         view.DirectoryPath = view.DirectoryPath.Remove(view.DirectoryPath.Length - 1, 1);
  475.                     }
  476.  
  477.                     Process.Start(new File1(view.DirectoryPath).Combine(view.DirectoryPath, view.FilePath));
  478.                 }
  479.             }
  480.             if (curSelection is ZippedFolder)
  481.             {
  482.               var files=  new ZippedFolder(view.DirectoryPath ).OpenFolder(view.FilePath);
  483.                
  484.               view.DisplayItems(files.ToArray());
  485.             }
  486.             if (curSelection is ZippedFile)
  487.             {
  488.                 while (view.DirectoryPath[view.DirectoryPath.Length - 1] != '\\')
  489.                 {
  490.                     view.DirectoryPath = view.DirectoryPath.Remove(view.DirectoryPath.Length - 1, 1);
  491.                 }
  492.                 var files = new ZippedFolder(view.DirectoryPath).OpenFolder(view.FilePath);
  493.                 view.DisplayItems(files.ToArray());
  494.  
  495.             }
  496.  
  497.         }
  498.        
  499.         private void TextBox4TextChange(object sender, EventArgs e)
  500.         {
  501.             List<string> Allnames = new List<string>();
  502.             List<string> Entries = new List<string>();
  503.  
  504.            
  505.             var dir = new Folder(view.DirectoryPath).FolderWork();
  506.             var dirs = new Folder(view.DirectoryPath).GetDirectories(dir);
  507.  
  508.             Parallel.ForEach(dirs, crrdir =>
  509.             {
  510.                 var files1 = new Folder(crrdir).GetFiles();
  511.                 foreach (string name in files1)
  512.  
  513.                 {
  514.                     Allnames.Add(name);
  515.                 }
  516.  
  517.             });
  518.  
  519.             Parallel.ForEach(dirs, crrdir =>
  520.             {
  521.                 Allnames.Add(crrdir.ToString());
  522.             });
  523.  
  524.             var files = new Folder(view.DirectoryPath).GetAllFiles(dir);
  525.  
  526.             Parallel.ForEach(files, crrfiles =>
  527.             {
  528.                 Allnames.Add(crrfiles);
  529.             });
  530.  
  531.  
  532.  
  533.             string last = "";
  534.             if (view.SearchingName != "")
  535.             {
  536.                 if (view.SearchingName.Contains("?"))
  537.                 {
  538.                     last = view.SearchingName.Replace("?", "");
  539.  
  540.  
  541.                     List<string> result2 = Allnames.FindAll(name => (name.Length == last.Length + 1));
  542.                     List<string> result3 = result2.FindAll(names => names.Contains(last));
  543.                     foreach (string stri in result3)
  544.                     {
  545.                        Entries.Add(stri);
  546.                     }
  547.                 }
  548.                 if (view.SearchingName.Contains("*"))
  549.                 {
  550.                     last = view.SearchingName.Replace("*", "");
  551.                     if (last != "")
  552.                     {
  553.                         List<string> result = Allnames.FindAll(names => names.Contains(last));
  554.                         foreach (string str in result)
  555.                         { Entries.Add(str); }
  556.                     }
  557.                     else
  558.                     {
  559.                         foreach (string stri in Allnames)
  560.                         {
  561.                             Entries.Add(stri);
  562.                         }
  563.                     }
  564.  
  565.                 }
  566.                 else
  567.                 {
  568.                     last = view.SearchingName;
  569.                     List<string> result1 = Allnames.FindAll(names => names.Equals(last));
  570.                     foreach (string str in result1)
  571.                     { Entries.Add(str); }
  572.  
  573.                 }
  574.  
  575.             }
  576.             view.DisplayItems(Entries.ToArray());
  577.         }
  578.         private void Insert(object sender, EventArgs e)
  579.         {
  580.             try
  581.             {
  582.                 var curSelection = Factory.Get(name);
  583.                 if (curSelection is Folder)
  584.                 {
  585.                     new Folder(view.DirectoryPath + '\\' + new Folder(name).GetName()).Create();
  586.                     EnumerationObjects(name, view.DirectoryPath);
  587.                     if (count == 1)
  588.                     {
  589.                         new Folder(name).Delete(true);
  590.                     }
  591.                     count = 0;
  592.                 }
  593.                else
  594.                 {
  595.  
  596.                     new File1(view.DirectoryPath + '\\' + new File1(name).GetName()).Create().Close();
  597.                     new File1(name).Copy((view.DirectoryPath + '\\' + new File1(name).GetName()), true);
  598.  
  599.                     if (count == 1)
  600.                     {
  601.                         new File1(name).Delete();
  602.                     }
  603.                     count = 0;
  604.                 }
  605.                
  606.                
  607.  
  608.             }
  609.             catch (PersonalException)
  610.             {
  611.                 MessageBox.Show("Windows не разрешает");
  612.             }
  613.  
  614.         }
  615.         private void Calculate(object sender, EventArgs e)
  616.         {
  617.             IVisitorHash visitor = new Visitor();
  618.             var curSelection = Factory.Get(view.DirectoryPath + '\\' + view.FilePath);
  619.             if (curSelection is File1)
  620.             {
  621.                 Hash hashcount = new HashCountFile();
  622.                 var finalcount = hashcount.hash(view.DirectoryPath + '\\' + view.FilePath, visitor);
  623.                 MessageBox.Show(finalcount);
  624.             }
  625.             if (curSelection is Folder)
  626.             {
  627.                 Hash hashcount = new HashCountDirectory();
  628.                 var finalcount = hashcount.hash(view.DirectoryPath + '\\' + view.FilePath, visitor);
  629.                 MessageBox.Show(finalcount);
  630.             }
  631.  
  632.  
  633.  
  634.         }
  635.         public void EnumerationObjects(string begin_dir, string end_dir)
  636.         {
  637.             try
  638.             {
  639.                 var dir_inf = new Folder(begin_dir).FolderWork();
  640.  
  641.                 foreach (string dir in new Folder(view.DirectoryPath).GetDirectories(dir_inf))
  642.                 {
  643.  
  644.                     if (new Folder(end_dir + '\\' + new Folder(dir).GetName()).Existing() != true)
  645.                     {
  646.                         new Folder(end_dir + '\\' + new Folder(dir).GetName()).Create();
  647.                     }
  648.  
  649.                     EnumerationObjects(new Folder(dir).GetFullName(dir), end_dir + '\\' + new Folder(dir).GetName());
  650.                 }
  651.  
  652.  
  653.                 foreach (string fil in new Folder(begin_dir).GetFiles())
  654.                 {
  655.                     string filik = fil.Substring(fil.LastIndexOf('\\'), fil.Length - fil.LastIndexOf('\\'));
  656.  
  657.                     new File1(fil).Copy(end_dir + '\\' + filik, true);
  658.                 }
  659.             }
  660.             catch (PersonalException)
  661.             { }
  662.         }
  663.  
  664.  
  665.         private void Encrypt(object sender, EventArgs e)
  666.         {
  667.             IVisitorCrypt visitorcode = new VisitorCode();
  668.             var keytext = view.Key;
  669.             var curSelection = Factory.Get(view.DirectoryPath + '\\' + view.FilePath);
  670.             File1 file = new File1(view.DirectoryPath + '\\' + view.FilePath);
  671.  
  672.             if (curSelection is File1)
  673.                   visitorcode.Crypt(file, Convert.ToInt32(keytext));
  674.             else
  675.             {
  676.                 Folder folder = new Folder(view.DirectoryPath + '\\' + view.FilePath);
  677.                 if (curSelection is Folder)
  678.  
  679.                     visitorcode.Crypt(folder, Convert.ToInt32(keytext));
  680.  
  681.             }
  682.  
  683.         }
  684.         private void Decrypt(object sender, EventArgs e)
  685.         {
  686.             IVisitorCrypt visitorcode = new VisitorCode();
  687.             var keytext = view.Key;
  688.             File1 file = new File1(view.DirectoryPath + '\\' + view.FilePath);
  689.             var curSelection = Factory.Get(view.DirectoryPath + '\\' + view.FilePath);
  690.             if (curSelection is File1)
  691.                 visitorcode.DeCrypt(file, Convert.ToInt32(keytext));
  692.             else
  693.             {
  694.                 Folder folder = new Folder(view.DirectoryPath + '\\' + view.FilePath);
  695.  
  696.                 if (curSelection is Folder)
  697.                     visitorcode.DeCrypt(folder, Convert.ToInt32(keytext));
  698.             }
  699.         }
  700.         private void ChangeLog(object sender, EventArgs e)
  701.         {
  702.  
  703.            view. DeSerializing();
  704.             user.Login = view.NewLogin;
  705.            view. OnSerializing();
  706.             MessageBox.Show("Ваш логин успешно изменен");
  707.            
  708.  
  709.         }
  710.         private void ChangePassword(object sender, EventArgs e)
  711.         {
  712.            view.DeSerializing();
  713.             user.Password = view.NewPassword;
  714.            view.OnSerializing();
  715.             MessageBox.Show("Ваш пароль успешно изменен");
  716.  
  717.         }
  718.         static int numer = Environment.ProcessorCount;
  719.         List<string>[] group = new List<string>[numer];
  720.  
  721.         private void PassportID(object sender, EventArgs e)
  722.         {
  723.             Regex pattern2 = new Regex(@"\d{4}\s\d{6}");
  724.             var s1 = new Strategy1();
  725.             var s2 = new Strategy2();
  726.             DialogResult vibor2 = MessageBox.Show("Выполнить поиск с помощью Task?" + '\n' + "Иначе поиск будет выполнен с помощью async-await ", "Поиск", MessageBoxButtons.YesNo);
  727.  
  728.        
  729.                 if (vibor2 == DialogResult.Yes) { searchingStrategy.SearchRegular(pattern2, "Номера паспорта:", view.DirectoryPath,  s1); }
  730.                 if (vibor2 == DialogResult.No) { searchingStrategy.SearchRegular(pattern2, "Номера паспорта:", view.DirectoryPath, s2); }
  731.            
  732.          
  733.         }
  734.         private void PhoneNumber(object sender, EventArgs e)
  735.         {
  736.             Regex pattern3 = new Regex(@"([+][0-9]{10})|([8][0-9]{10}) ");
  737.             var s3 = new Strategy1();
  738.             var s4 = new Strategy2();
  739.  
  740.             DialogResult vibor2 = MessageBox.Show("Выполнить поиск с помощью Task?" + '\n' + "Иначе поиск будет выполнен с помощью async-await ", "Поиск", MessageBoxButtons.YesNo);
  741.  
  742.                 if (vibor2 == DialogResult.Yes) { searchingStrategy.SearchRegular(pattern3, "Номера телефона:", view.DirectoryPath, s3); }
  743.                 if (vibor2 == DialogResult.No) { searchingStrategy.SearchRegular(pattern3, "Номера телефона:", view.DirectoryPath, s4); }
  744.            
  745.            
  746.         }
  747.         private void INN(object sender, EventArgs e)
  748.         {
  749.            
  750.                Regex pattern4 = new Regex(@"(\b([0-9]{10})\b)|(\b([0-9]{12})\b)");
  751.                 var s5 = new Strategy1();
  752.                 var s6 = new Strategy2();
  753.                 DialogResult vibor2 = MessageBox.Show("Выполнить поиск с помощью Task?" + '\n' + "Иначе поиск будет выполнен с помощью async-await ", "Поиск", MessageBoxButtons.YesNo);
  754.  
  755.            
  756.                 if (vibor2 == DialogResult.Yes) { searchingStrategy.SearchRegular(pattern4, "Номера ИНН:", view.DirectoryPath, s5); }
  757.                 if (vibor2 == DialogResult.No) { searchingStrategy.SearchRegular(pattern4, "Номера ИНН:", view.DirectoryPath, s6); }
  758.            
  759.          
  760.         }
  761.         void EmailAddress(object sender, EventArgs e)
  762.         {
  763.             Regex pattern6 = new Regex(@"[a-zA-Z1-9\-\._]+@[a-z1-9]+(.[a-z1-9]+){1,}");
  764.             var s7 = new Strategy1();
  765.             var s8 = new Strategy2();
  766.             DialogResult vibor2 = MessageBox.Show("Выполнить поиск с помощью Task?" + '\n' + "Иначе поиск будет выполнен с помощью async-await ", "Поиск", MessageBoxButtons.YesNo);
  767.  
  768.          
  769.                 if (vibor2 == DialogResult.Yes) { searchingStrategy.SearchRegular(pattern6, "Email адреса:", view.DirectoryPath,s7); }
  770.                 if (vibor2 == DialogResult.No) { searchingStrategy.SearchRegular(pattern6, "Email адреса:", view.DirectoryPath,s8); }
  771.            
  772.            
  773.  
  774.         }
  775.         private void FtpAddress(object sender, EventArgs e)
  776.         {
  777.             Regex pattern7 = new Regex(@"https?://([a-z1-9]+.)?[a-z1-9\-]+(\.[a-z]+){1,}/?");
  778.             var s9 = new Strategy1();
  779.             var s10 = new Strategy2();
  780.             DialogResult vibor2 = MessageBox.Show("Выполнить поиск с помощью Task?" + '\n' + "Иначе поиск будет выполнен с помощью async-await ", "Поиск", MessageBoxButtons.YesNo);
  781.            
  782.            
  783.                 if (vibor2 == DialogResult.Yes) { searchingStrategy.SearchRegular(pattern7, "http адреса:", view.DirectoryPath, s9); }
  784.                 if (vibor2 == DialogResult.No) { searchingStrategy.SearchRegular(pattern7, "http адреса:", view.DirectoryPath, s10); }
  785.          
  786.  
  787.         }
  788.         private void VkPages(object sender, EventArgs e)
  789.         {
  790.             Regex pattern8 = new Regex(@"id[0-9]{9}");
  791.             var s11 = new Strategy1();
  792.             var s12 = new Strategy2();
  793.             DialogResult vibor2 = MessageBox.Show("Выполнить поиск с помощью Task?" + '\n' + "Иначе поиск будет выполнен с помощью async-await ", "Поиск", MessageBoxButtons.YesNo);
  794.             var curSelection = Factory.Get(view.DirectoryPath + '\\' + view.FilePath);
  795.            
  796.                 if (vibor2 == DialogResult.Yes) { searchingStrategy.SearchRegular(pattern8, "Страницы Вконтакте:", view.DirectoryPath,  s11); }
  797.                 if (vibor2 == DialogResult.No) { searchingStrategy.SearchRegular(pattern8, "Страницы Вконтакте:", view.DirectoryPath,  s12); }
  798.            
  799.            
  800.  
  801.         }
  802.        
  803.         private IView view;
  804.     }
  805. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement