Exemple #1
0
 //Create
 public Resources(FileCheckDone a, FileCheckError b, FileCheckDownloading c)
 {
     fcd  = a;
     fce  = b;
     Down = c;
     t    = new List <Piece>();
     wc   = new WebClient();
     if (!Directory.Exists(localpath))
     {
         Directory.CreateDirectory(localpath);
     }
     if (!File.Exists(localpath + "b.down"))
     {
         File.WriteAllText(localpath + "b.down", "??????");
     }
 }
Exemple #2
0
        public void ValidateXmlAndLocal()
        {
            Ipaybox.UpdateState = 1;

            Ipaybox.AddToLog(Ipaybox.Logs.Update, "Запуск обновления. Download core file...");
            Ipaybox.NeedUpdates.Core = false;

            list = new XmlDocument();

            try
            {
                string xml = TryDownloadUpdateXml();

                if (xml != null)
                {
                    if (xml.Length > 0 && xml.IndexOf("result") == -1)
                    {
                        Ipaybox.Incass.bytesRead += xml.Length;
                        Ipaybox.FlushStatistic();
                        Ipaybox.AddToLog(Ipaybox.Logs.Update, "\t Успешно.");
                    }
                    else
                    {
                        Ipaybox.AddToLog(Ipaybox.Logs.Update, "\t  НЕ Успешно.");
                        // Останавливаем обновление
                        Ipaybox.NeedUpdates.Core = true;
                        Ipaybox.Working          = false;
                        return;
                    }
                }
                else
                {
                    //Останавливаем обновление
                    Ipaybox.NeedUpdates.Core = true;
                    Ipaybox.Working          = false;
                    return;
                }
            }
            catch
            {
                //Останавливаем обновление
                Ipaybox.NeedUpdates.Core = true;
                Ipaybox.Working          = false;
                return;
            }

            if (!(list.DocumentElement != null && list.DocumentElement.Name == "fileinfo"))
            {
                Ipaybox.NeedUpdates.Core = true;
                Ipaybox.Working          = false;
                return;
            }

            XmlElement root = list.DocumentElement;

            for (int i = 0; i < root.ChildNodes.Count; i++)
            {
                XmlElement row = (XmlElement)root.ChildNodes[i];

                if (row.Name == "file")
                {
                    // Сравнить данные по файлу
                    CheckDirExist(row.GetAttribute("filepath"));
                    FileCheckError err = ValidateLocalFile(row.GetAttribute("filepath"), row.GetAttribute("length"), row.GetAttribute("crc"));


                    //Ipaybox.AddToLog(Ipaybox.Logs.Update, "\t Проверка файла " + row.GetAttribute("filepath") +" - "+ err.ToString());
                    switch (err)
                    {
                    case FileCheckError.UPDATE:
                        bool result = DownloadFileGZ(row.GetAttribute("filepath"), row.GetAttribute("length"), row.GetAttribute("crc"));

                        if (!result)
                        {
                            //Файл не скачался обновление остановить.

                            Ipaybox.AddToLog(Ipaybox.Logs.Update, "\t Файл не скачался обновление остановить.");

                            Ipaybox.NeedUpdates.Core = true;
                            Ipaybox.Working          = false;
                            return;
                        }
                        break;
                    }
                }
            }
            if (Needtorestart)
            {
                Ipaybox.NeedToRestart = true;
            }

            Ipaybox.UpdateState = 0;
            Ipaybox.AddToLog(Ipaybox.Logs.Update, "Выход из обновления.");
        }