Пример #1
0
        private AppVersion Find_(string name)
        {
            try
            {
                string[]      Apps         = Directory.GetDirectories(RootPath);                                                                               // массив приложений(папки с названиями всех приложений)
                string        App          = (from app in Apps where (Path.GetFileNameWithoutExtension(app.ToLower()) == name.ToLower()) select app).Single(); //Строка содержащая суть к нужному приложению(к версиям)
                string[]      VersionsApps = (from vers in Directory.GetDirectories(App) orderby vers descending select vers.ToString()).ToArray();            //отсортированный по убыванию массив версий
                VersionNumber Vers         = Directory.GetDirectories(App).Select(x =>
                {
                    VersionNumber version;
                    VersionNumber.TryParse(Path.GetFileNameWithoutExtension(x.ToString()), out version);
                    return(version);
                }).Where(x => x != null).OrderByDescending(x => x).First();
                List <FileOfVersion> fileApp  = new List <FileOfVersion>();
                List <string>        ListFile = new List <string>();
                ListFile = GetFiles_app(name, Vers);
                for (int x = 0; x < ListFile.Count; x++)
                {
                    FileOfVersion verss = new FileOfVersion(ListFile[x], fileContain(RootPath + "\\" + name + "\\" + Vers.ToString() + ListFile[x]), File.GetCreationTime(RootPath + "\\" + name + "\\" + Vers.ToString() + ListFile[x]));
                    fileApp.Add(verss);
                }
                AppVersion res = null;
                res = new AppVersion(Path.GetFileNameWithoutExtension(App), Vers, fileApp);
                return(res);
            }
            catch (AppVersionIsNullException ex)
            {
                return(null);

                throw new AppVersionIsNullException();
            }
        }
        private AppVersion Find_(string name)
        {
            try
            {
                string[]             Apps         = Directory.GetDirectories(RootPath);                                                                               // массив приложений(папки с названиями всех приложений)
                string               App          = (from app in Apps where (Path.GetFileNameWithoutExtension(app.ToLower()) == name.ToLower()) select app).Single(); //Строка содержащая суть к нужному приложению(к версиям)
                string[]             VersionsApps = (from vers in Directory.GetFiles(App) orderby vers descending select vers.ToString()).ToArray();
                string               js           = File.ReadAllText(VersionsApps[0]);
                JavaScriptSerializer serializer   = new JavaScriptSerializer();
                VersionMeta          meta         = serializer.Deserialize <VersionMeta>(js);
                VersionNumber        Vers         = new VersionNumber(meta.Num, meta.Bild);
                List <FileOfVersion> fileApp      = new List <FileOfVersion>();
                List <string>        ListFile     = new List <string>();
                ListFile = GetFiles_app(name, Vers);
                for (int x = 0; x < ListFile.Count; x++)
                {
                    FileOfVersion verss = new FileOfVersion(ListFile[x], fileContain(RootPath + "\\" + name + ListFile[x]), File.GetCreationTime(RootPath + "\\" + name + ListFile[x]));
                    fileApp.Add(verss);
                }
                AppVersion res = new AppVersion(Path.GetFileNameWithoutExtension(App), Vers, fileApp);
                return(res);
            }
            catch (AppVersionIsNullException ex)
            {
                return(null);

                throw new AppVersionIsNullException();
            }
        }
Пример #3
0
 /// <summary>Получение содержимого файла версии приложения</summary><param name="version"></param><param name="name"></param><returns>byte[]</returns>
 public byte[] GetFile(AppVersion version, FileOfVersion name)
 {
     try
     {
         byte[] contains = null;
         mydb = new DB.SQLite.SQLite(BDPath);
         SQLiteCommand command = new SQLiteCommand();
         command.CommandText = "SELECT * FROM FilesContains WHERE Applications = @Applications AND AppVersions = @AppVersions AND FilePath = @FilePath";
         command.Parameters.Add("@Applications", DbType.String).Value = version.VersionName;
         command.Parameters.Add("@AppVersions", DbType.String).Value  = version.VersionNumber.ToString();
         command.Parameters.Add("@FilePath", DbType.String).Value     = name.FilePath;
         DataRow[] datarows = mydb.Select(command);
         if (datarows == null)
         {
             logger.Add("Не удалось подключиться к базе данных");
             throw new FilePathIsNullException();
         }
         foreach (var dr in from DataRow dr in datarows select dr)
         {
             contains = (byte[])dr["Contains"];
         }
         return(contains);
     }
     catch
     {
         throw new FilePathIsNullException();;
     }
 }
Пример #4
0
 /// <summary>Список метаданных файлов приложения</summary><param name="ver"></param>
 public IList <FileOfVersion> FindFileOfVersions(AppVersion ver)// попробовать рпеределать не по индексу а по ключу
 {
     try
     {
         mydb = new DB.SQLite.SQLite(BDPath);
         SQLiteCommand command = new SQLiteCommand();
         command.CommandText = "SELECT * FROM FilesContains WHERE Applications = @Applications";
         command.Parameters.Add("@Applications", DbType.String).Value = ver.VersionName;
         DataRow[] datarows = mydb.Select(command);
         if (datarows == null)
         {
             logger.Add("Не удалось подключиться к базе данных");
             throw new FilePathIsNullException();
         }
         string[]      versss = (from vers in datarows orderby vers.ItemArray[0] descending select vers.ItemArray[1].ToString()).ToArray();//поиск наибольшей версии
         VersionNumber Vers;
         VersionNumber.TryParse(versss[0], out Vers);
         List <FileOfVersion> fileApp = new List <FileOfVersion>();
         foreach (var dr in from DataRow dr in datarows where Vers.ToString() == dr["AppVersions"].ToString().Trim() select dr)// Заполнение списка мета данных файлов
         {
             FileOfVersion verss = new FileOfVersion(dr["FilePath"].ToString(),
                                                     (byte[])dr["Contains"], File.GetCreationTime(dr["FilePath"].ToString()));
             fileApp.Add(verss);
         }
         return(fileApp);
     }
     catch (VersionInFileSystemRepo.FilePathIsNullException ex)
     {
         logger.Add(ex);
         throw new FilePathIsNullException();
     }
 }
        private AppVersion Result(SQLiteCommand command)
        {
            string appVersion = "";
            string app_name   = "";

            DataRow[] datarows = mydb.Select(command);
            if (datarows == null)
            {
                logger.Add("Не удалось подключиться к базе данных");
                throw new FilePathIsNullException();
            }
            string[]      versss = (from vers in datarows orderby vers.ItemArray[0] descending select vers.ItemArray[0].ToString()).ToArray();//поиск наибольшей версии
            VersionNumber Vers;

            VersionNumber.TryParse(versss[0], out Vers);
            List <FileOfVersion> fileApp = new List <FileOfVersion>();

            foreach (var dr in from DataRow dr in datarows where Vers.ToString() == dr.ItemArray[0].ToString().Trim() select dr)
            {
                app_name   = dr["Applications"].ToString();
                appVersion = dr["AppVersions"].ToString().Trim();
                FileOfVersion verss = new FileOfVersion(dr["FileHash"].ToString().Trim(), Convert.ToDateTime(dr["CreationDate"].ToString().Trim()), new AppFileSize(Convert.ToInt32(dr["FileSize"].ToString().Trim())), dr["FilePath"].ToString().Trim());
                fileApp.Add(verss);
            }
            VersionNumber version;

            VersionNumber.TryParse(appVersion, out version);
            AppVersion res = new AppVersion(app_name, version, fileApp);

            return(res);
        }
Пример #6
0
 /// <summary>Список метаданных файлов приложения</summary><param name="ver"></param>
 public IList <FileOfVersion> FindFileOfVersions(AppVersion ver)
 {
     try
     {
         string[]             Apps         = Directory.GetDirectories(RootPath);                                                                                                                                 // массив приложений(папки с названиями всех приложений)
         string               App          = (from app in Apps where (Path.GetFileNameWithoutExtension(app.ToLower()) == ver.VersionName.ToLower()) select app).Single();                                        //Строка содержащая суть к нужному приложению(к версиям)
         string               VersionsApps = (from vers in Directory.GetFiles(App) where (Path.GetFileNameWithoutExtension(vers) == ver.VersionName + "-" + ver.VersionNumber.ToString()) select vers).Single(); //отсортированный по убыванию массив версий
         string               js           = File.ReadAllText(VersionsApps);
         JavaScriptSerializer serializer   = new JavaScriptSerializer();
         VersionMeta          meta         = serializer.Deserialize <VersionMeta>(js);
         VersionNumber        Vers         = new VersionNumber(meta.Num, meta.Bild);
         List <FileOfVersion> fileApp      = new List <FileOfVersion>();
         List <string>        ListFile     = new List <string>();
         ListFile = GetFiles_app(ver.VersionName, Vers);
         for (int x = 0; x < ListFile.Count; x++)
         {
             FileOfVersion verss = new FileOfVersion(ListFile[x], fileContain(RootPath + "\\" + ver.VersionName + ListFile[x]), File.GetCreationTime(RootPath + "\\" + ver.VersionName + ListFile[x]));
             fileApp.Add(verss);
         }
         return(fileApp);
     }
     catch (FilePathIsNullException ex)
     {
         throw new FilePathIsNullException();
     }
 }
 /// <summary>Получение содержимого файла версии приложения</summary><param name="version"></param><param name="name"></param><returns>byte[]</returns>
 public byte[] GetFile(AppVersion version, FileOfVersion name)
 {
     try
     {
         return(fileContain(RootPath + "\\" + version.VersionName + "\\" + version.VersionNumber.ToString() + "\\" + name.FilePath));
     }
     catch
     {
         throw new FilePathIsNullException();;
     }
 }
        ///<summary>Поиск последней версии приложения</summary><param name="version_name"></param><param name="versionNumber"></param>
        public AppVersion Find(string version_name, VersionNumber versionNumber)
        {
            string[]             Apps     = Directory.GetDirectories(RootPath);                                                                                       // массив приложений(папки с названиями всех приложений)
            string               App      = (from app in Apps where (Path.GetFileNameWithoutExtension(app.ToLower()) == version_name.ToLower()) select app).Single(); //Строка содержащая суть к нужному приложению(к версиям)
            List <FileOfVersion> fileApp  = new List <FileOfVersion>();
            List <string>        ListFile = new List <string>();

            ListFile = GetFiles_app(version_name, versionNumber);
            for (int x = 0; x < ListFile.Count; x++)
            {
                FileOfVersion verss = new FileOfVersion(ListFile[x], fileContain(RootPath + "\\" + version_name + ListFile[x]), File.GetCreationTime(RootPath + "\\" + version_name + ListFile[x]));
                fileApp.Add(verss);
            }
            AppVersion res = new AppVersion(Path.GetFileNameWithoutExtension(App), versionNumber, fileApp);

            return(res);
        }