Example #1
0
        async public Task download(downloadUnit re)
        {
            WebClient wc = new WebClient();

            try
            {
                wc.DownloadFile(re.url, re.savePath + "\\" + re.fileName);
            }
            catch (Exception e)
            {
                Console.WriteLine($"ну ты и {e.Message}");
                //return false;
            }

            //return true;
        }
Example #2
0
        static void Main(string[] args)
        {
            telescope ts = new telescope();

            while (true)
            {
                Console.Clear();

                Console.WriteLine("1-> скачать файл.\n2-> журнал загрузок\n3-> журнал загрузок по меткам\n4-> управление загруженными файлами.");
                char mt = Console.ReadKey().KeyChar;
                Console.Clear();
                switch (mt)
                {
                case '1':
                {
                    Console.WriteLine("ссылка:");
                    string url = Console.ReadLine();
                    Console.WriteLine("название файла:");
                    string fileName = Console.ReadLine();
                    Console.WriteLine("место захоронения файла:");
                    string savePath = Console.ReadLine();

                    Console.WriteLine("метки (через запятую)(можно и без них):");
                    string        data   = Console.ReadLine();
                    string        temple = string.Empty;
                    List <string> tags   = new List <string>();
                    for (int i = 0; i < data.Length; i++)
                    {
                        if (data[i] == ',' || i == data.Length)
                        {
                            tags.Add(temple);
                            temple = string.Empty;
                        }
                        else if (data[i] == ' ')
                        {
                            ;
                        }
                        else
                        {
                            temple += data[i];
                        }
                    }

                    DateTime ae = DateTime.Now;

                    downloadUnit ui = new downloadUnit(url, savePath, fileName, tags, ae);


                    Console.Clear();

                    Task re = Task.Run(() =>
                        {
                            ts.download(ui);
                            Console.WriteLine("дело сделано.");
                            ui.success = true;
                            ts.units.Add(ui);
                        });
                    Task.Run(() =>
                        {
                            while (!re.IsCompleted)
                            {
                                bool pause = false;
                                ConsoleKeyInfo key;
                                key = Console.ReadKey();
                                if (key.Key == ConsoleKey.Spacebar)
                                {
                                    if (pause == false)
                                    {
                                        re.Wait();
                                        pause = true;
                                    }
                                    else
                                    {
                                        re = Task.Factory.StartNew(() =>
                                        {
                                            ts.download(ui);
                                            Console.WriteLine("дело сделано.");
                                            ui.success = true;
                                            ts.units.Add(ui);
                                        });
                                        pause = false;
                                    }
                                }
                            }
                        });

                    Console.ReadKey();
                } break;

                case '2':
                {
                    Console.WriteLine("успешно:");
                    foreach (downloadUnit item in ts.units)
                    {
                        if (item.success == true)
                        {
                            Console.WriteLine($"{item.fileName} ({item.url}), {item.unl}");
                        }
                    }
                    Console.WriteLine("провалено:");
                    foreach (downloadUnit item in ts.units)
                    {
                        if (item.success == false)
                        {
                            Console.WriteLine($"{item.fileName} ({item.url}), {item.unl}");
                        }
                    }

                    Console.ReadKey();
                } break;

                case '3':
                {
                    Console.WriteLine("метки (через запятую):");
                    string        income = Console.ReadLine();
                    List <string> vs     = new List <string>();

                    string msg = string.Empty;
                    for (int i = 0; i < income.Length; i++)
                    {
                        if (income[i] == ',' || i == income.Length)
                        {
                            vs.Add(msg);
                            msg = string.Empty;
                        }
                        else if (income[i] == ' ')
                        {
                            ;
                        }
                        else
                        {
                            msg += income[i];
                        }
                    }

                    foreach (string item in vs)
                    {
                        foreach (downloadUnit obj in ts.units)
                        {
                            foreach (string sbj in obj.tags)
                            {
                                if (sbj == item)
                                {
                                    Console.WriteLine($"{obj.fileName} ({obj.url}), {obj.unl}");
                                }
                            }
                        }
                    }

                    Console.ReadKey();
                } break;

                case '4':
                {
                    Console.WriteLine("работа с загрузками.\n");

                    List <string> weight = new List <string>();
                    foreach (downloadUnit unit in ts.units)
                    {
                        weight.Add($"{unit.savePath}\\{unit.fileName}");
                    }

                    while (true)
                    {
                        int unl = graphicMenu.VerticalMenu(weight.ToArray());
                        if (unl == -2)
                        {
                            break;
                        }

                        #region newUnit
                        string        url      = ts.units[unl].url;
                        string        savePath = ts.units[unl].savePath;
                        string        fileName = ts.units[unl].fileName;
                        List <string> tags     = ts.units[unl].tags;
                        DateTime      dv       = ts.units[unl].unl;
                        bool?         success  = ts.units[unl].success;
                        #endregion

                        Console.Clear();

                        FileInfo vh = new FileInfo(weight[unl]);

                        Console.WriteLine("1-> переместить\n2-> переименовать\n3-> удалить");
                        char ch = Console.ReadKey().KeyChar;
                        Console.Clear();
                        switch (ch)
                        {
                        case '1':
                        {
                            Console.WriteLine("новое место жительства:");
                            string path = Console.ReadLine();

                            File.Move(vh.FullName, path + "\\" + vh.Name);

                            downloadUnit temp = new downloadUnit(url, path, fileName, tags, dv, success);
                            ts.units[unl] = temp;

                            Console.WriteLine("дело сделано.");
                        }
                        break;

                        case '2':
                        {
                            Console.WriteLine("новое имя:");
                            string tempName = Console.ReadLine() + vh.Extension;
                            string newName  = vh.DirectoryName + "\\" + tempName;

                            File.Move(vh.FullName, newName);

                            downloadUnit temp = new downloadUnit(url, savePath, tempName, tags, dv, success);
                            ts.units[unl] = temp;

                            Console.WriteLine("дело сделано");
                        }
                        break;

                        case '3':
                        {
                            File.Delete(vh.FullName);
                            ts.units.RemoveAt(unl);

                            Console.WriteLine("дело сделано.");
                        }
                        break;
                        }

                        Console.Clear();
                    }
                } break;

                default:
                {
                    Console.WriteLine("неправильно!");
                } break;
                }
            }
        }