public static void CopyAll(DirectoryInfo source, DirectoryInfo target, Inicio _ini, FtpClient ftp, ScreensGuardian _screen = null) { ScreensGuardian screenAUX = _screen; var _screens = _ini.config.Screens.ToArray(); // Copy each subdirectory using recursion. foreach (DirectoryInfo diSourceSubDir in source.GetDirectories()) { foreach (ScreensGuardian screen in _screens) { if ("p" + screen.Code == diSourceSubDir.Name) { DirectoryInfo nextTargetSubDir = target.CreateSubdirectory(diSourceSubDir.Name); CopyAll(diSourceSubDir, nextTargetSubDir, _ini, ftp, screen); Log TgLog = new Log(); TgLog.SaveLog("DIRECTORIO COPIADO " + diSourceSubDir.Name); } } } { Directory.CreateDirectory(screenAUX.LocalPath); //cambio gonzalo try { Etc.DeleteFiles(screenAUX.LocalPath); System.Threading.Thread.Sleep(2000); } catch (Exception ex) { Log logaux = new Log(); logaux.SaveLog("ERROR CLEAR " + ex.Message); } // Copy each file into the new directory. foreach (FileInfo fi in source.GetFiles()) { //Console.WriteLine(@"Copying {0}\{1}", target.FullName, fi.Name); fi.CopyTo(Path.Combine(screenAUX.LocalPath, fi.Name), true); Log TgLog = new Log(); TgLog.SaveLog("ARCHIVO COPIADO - " + Path.Combine(screenAUX.LocalPath, fi.Name)); } int idx = _ini.config.Screens.FindIndex(s => s.Code == screenAUX.Code); //guardar version nueva screenAUX.VersionActual = screenAUX.VersionRemota.ToString(); _ini.config.Screens[idx] = screenAUX; _ini.db.Save(_ini.config); } }
private void Sync() { var dictionary = new Dictionary <int, int>(); //descargar json using (var webClient = new WebClient()) { //string download link string downloadLink = ini.config.ModePivote[0].Servidor + "pivot/" + ini.config.CodePc + "/get/" + ini.config.ModePivote[0].Contrasena; try { //leer string json var jsonPure = webClient.DownloadString(downloadLink); //generar db ConnectionDBCMS(jsonPure); syncingOn(); //raiz folder string rootFolder = ini.config.CarpetaRaiz + rootCMS.Code; //crear raiz Etc.CreateDir(rootFolder); //------------------------------------------------------------------------------------ //Daniel //Crear archivo Json string json = JsonConvert.SerializeObject(rootCMS); //string path2 = @"C:\\FTP\\Voxline\\Pivotes\\35000" + "/temp6.json"; string path = rootFolder + "/PlayList.json"; //Gustavo if (File.Exists(path)) { File.Delete(path); File.WriteAllText(path, json); } else { System.IO.File.WriteAllText(path, json); } //------------------------------------------------------------------------------------ //recorrer computador foreach (var computer in rootCMS.Computers) { //computador string string computerFolder = rootFolder + "/" + computer.Code; // crear string computador Etc.CreateDir(computerFolder); //auxiliar int aux = 0; foreach (Screens screen in computer.Screens) { //crear carpeta pantalla string screenFolder = computerFolder + "/p" + screen.Code; string screenFolder_TMP = computerFolder + "/p" + screen.Code + "_TMP"; //chequear si existe archivo lock if (!Etc.CheckLock(screenFolder_TMP)) { //crear carpeta pantalla Etc.CreateDir(screenFolder); Etc.CreateDir(screenFolder_TMP); //crear localmente la variable de la pantalla ScreensGuardian _screen = new ScreensGuardian(); //primero? bool first = false; _screen = ini.config.Screens.Find(e => e.Code == screen.Code.ToString()); if (_screen == null) { //Esto no se ocupa ? _screen = new ScreensGuardian(); _screen.Alto = screen.Height.ToString(); _screen.Ancho = screen.Width.ToString(); _screen.Code = screen.Code.ToString(); _screen.Nombre = screen.Name; _screen.VersionActual = "0"; //_screen.VersionActual = (screen.Version-1).ToString();//cambio gonzalo //string versionValidate = screenFolder + "/" + "v" + screen.Version.ToString() + ".txt";//cambio gonzalo //cambio gonzalo //if (File.Exists(versionValidate)) //{ // _screen.VersionActual = screen.Version.ToString(); //} //cambio gonzalo //if (Etc.CheckEmptyFolder(screenFolder)) //{ // first = true; //} first = true; ini.config.Screens.Add(_screen); ini.db.Save(ini.config); Etc.ClearDir(screenFolder); } //si se asigno recientemente if (first) { Etc.ClearDir(screenFolder_TMP); Etc.CreateLock(screenFolder_TMP); //Etc.CreateLock(screenFolder); int auxI = 0; if (screen.Playlist != null) { foreach (var content in screen.Playlist) { try { if (!CheckErrorResponse(content.Download.ToString())) { // string contentName = content.OriginalID + "-"+ content.defOrder + content.Name + "-" + auxI + ".mp4"; string contentName = content.OriginalID + "-" + content.Name + ".mp4"; //Daniel //Comparo si el contenName existe en la carpeta de descarga si es asi no lo descargo. if (Etc.CheckFile(screenFolder + "/" + contentName)) { File.Copy(screenFolder + "/" + contentName, screenFolder_TMP + "/" + contentName); } else { Etc.CreateDir(screenFolder_TMP); // Daniel DownloadFile(content.Download.ToString(), screenFolder_TMP + "/" + contentName); // Daniel //DownloadFile(content.Download.ToString(), screenFolder + "/" + contentName); gLog.SaveLog("First: Se descargo " + contentName + " en " + screenFolder_TMP); auxI++; } } } catch (Exception ex) { gLog.SaveLog("First: No se logro descargar archivos -- " + ex.Message); //throw; } } // End foreach //GUSTAVO //Etc.CreateVersion(screenFolder_TMP, screen.Version.ToString()); //Daniel //Etc.DeleteLock(screenFolder_TMP); // Daniel //Etc.MoveDir(screenFolder_TMP, screenFolder); Directory.Delete(screenFolder, true); // Daniel } else { gLog.SaveLog("First: Sin Contenido asignado"); //Etc.DeleteLock(screenFolder_TMP); Directory.Delete(screenFolder_TMP, true); if (Etc.CheckDir(screenFolder)) { Etc.DeleteFiles(screenFolder); } } /* CAIDA * Etc.CreateVersion(screenFolder_TMP, screen.Version.ToString()); //Daniel * Directory.Delete(screenFolder,true); // Daniel * Etc.DeleteLock(screenFolder_TMP); // Daniel * Etc.MoveDir(screenFolder_TMP, screenFolder); */ //Etc.CreateVersion(screenFolder, screen.Version.ToString()); //Etc.DeleteLock(screenFolder); //Etc.DeleteVersion(screenFolder, _screen.VersionActual); //Etc.CreateVersion(screenFolder, screen.Version.ToString()); _screen.VersionActual = screen.Version.ToString(); ini.config.Screens[aux] = _screen; ini.db.Save(ini.config); Etc.CreateVersion(screenFolder_TMP, screen.Version.ToString()); //Daniel Etc.DeleteLock(screenFolder_TMP); // Daniel Etc.MoveDir(screenFolder_TMP, screenFolder); first = false; } //si la version else if (screen.Version > Int32.Parse(_screen.VersionActual)) { ////------------------------------------------------------------------------------------ ////Daniel ////Crear archivo Json //string json = JsonConvert.SerializeObject(rootCMS); //string path = computerFolder + "/PlayList.json"; //System.IO.File.WriteAllText(path, json); ////------------------------------------------------------------------------------------ gLog.SaveLog("Version Actual " + _screen.VersionActual + " -- Version Remota " + screen.Version); //Etc.DeleteFiles(screenFolder);//cambio gonzalo //Etc.ClearDir(screenFolder); //Etc.CreateLock(screenFolder_TMP); // Daniel Etc.ClearDir(screenFolder_TMP); Etc.CreateLock(screenFolder_TMP); // int auxI = 0; if (screen.Playlist != null) { foreach (var content in screen.Playlist) { try { if (!CheckErrorResponse(content.Download.ToString())) { //string contentName = content.defOrder + content.Name + "-" + auxI + ".mp4"; //Daniel string contentName = content.OriginalID + "-" + content.Name + ".mp4"; //Daniel if (Etc.CheckFile(screenFolder + "/" + contentName)) { File.Copy(screenFolder + "/" + contentName, screenFolder_TMP + "/" + contentName); } else { DownloadFile(content.Download.ToString(), screenFolder_TMP + "/" + contentName); gLog.SaveLog("Se descargo " + contentName + " en " + screenFolder); auxI++; } } } catch (Exception ex) { gLog.SaveLog("No se logro descargar archivos -- " + ex.Message); //throw; } } //end foreach Directory.Delete(screenFolder, true); // Daniel } else { gLog.SaveLog("Sin Contenido asignado"); //Daniel Etc.DeleteLock(screenFolder_TMP); Directory.Delete(screenFolder_TMP, true); if (Etc.CheckDir(screenFolder)) { Etc.DeleteFiles(screenFolder); } //------------------- } //Etc.DeleteVersion(screenFolder, _screen.VersionActual); //Etc.CreateVersion(screenFolder, screen.Version.ToString()); _screen.VersionActual = screen.Version.ToString(); ini.config.Screens[aux] = _screen; ini.db.Save(ini.config); //GUSTAVO Etc.CreateVersion(screenFolder_TMP, screen.Version.ToString()); //Daniel Etc.DeleteLock(screenFolder_TMP); // Daniel Etc.MoveDir(screenFolder_TMP, screenFolder); /////////////////// //Etc.DeleteLock(screenFolder); } } if (Etc.CheckDir(screenFolder_TMP)) { Directory.Delete(screenFolder_TMP, true); // Daniel } aux++; } syncingOff(); } } catch (Exception ex) { gLog.SaveLog("No se logro sincronizar archivos -- " + ex.Message); //throw; } } }
private void Sync() { /*if(initiated) * { * StopTime(); * initiated = false; * }*/ var dictionary = new Dictionary <int, int>(); //descargar json using (var webClient = new WebClient()) { //string download link string downloadLink = ini.config.ModePivote[0].Servidor + "pivot/" + ini.config.CodePc + "/get/" + ini.config.ModePivote[0].Contrasena; gLog.SaveLog("315 - Genera string downloadLink"); try { //leer string json var jsonPure = webClient.DownloadString(downloadLink); gLog.SaveLog("321 - Se conecta y lee Json CMS"); //generar db ConnectionDBCMS(jsonPure); gLog.SaveLog("324 - Genera BD.Json"); syncingOn(); //raiz folder string rootFolder = ini.config.CarpetaRaiz + rootCMS.Code; //crear raiz Etc.CreateDir(rootFolder); gLog.SaveLog(" 398 - Crea la carpeta raiz : " + rootFolder); //------------------------------------------------------------------------------------ //Daniel //Crear archivo Json string json = JsonConvert.SerializeObject(rootCMS); //string path2 = @"C:\\FTP\\Voxline\\Pivotes\\35000" + "/temp6.json"; string path = rootFolder + "\\PlayList.json"; gLog.SaveLog("408 - Crea el json en la carpeta raiz"); //Gustavo if (File.Exists(path)) { File.Delete(path); gLog.SaveLog("342 - File.Delete " + path); File.WriteAllText(path, json); } else { System.IO.File.WriteAllText(path, json); } //------------------------------------------------------------------------------------ //recorrer computador foreach (var computer in rootCMS.Computers) { //computador string string computerFolder = rootFolder + "\\" + computer.Code; // crear string computador gLog.SaveLog("430 - crea carpeta por computador : " + computer.Code); if (!(Directory.Exists(computerFolder))) { Etc.CreateDir(computerFolder); } ///////////////GUSTAVO /*Etc.CreateLock((computerFolder)); * gLgCreateLock.SaveLog("432 - Creando lock en computer folder : " + computerFolder); */ //auxiliar int aux = 0; foreach (Screens screen in computer.Screens) { //URLL carpetas pantalla string screenFolder = computerFolder + "\\p" + screen.Code; string screenFolder_TMP = computerFolder + "\\p" + screen.Code + "_TMP"; if (!(Etc.CheckLock(screenFolder))) { gLog.SaveLog("447 La pantalla se encuentra disponible siguer su curso"); //chequear si existe archivo lock gLog.SaveLog("445 - antes del etc.checklock(screenfolder_tmp)"); if (!Etc.CheckLock(screenFolder_TMP)) { gLog.SaveLog("448 - despues del etc.checklock(screenfolder_tmp)"); //crear carpeta pantalla if (!(Directory.Exists(screenFolder))) { //Si el diecotrio principal no existe lo crea Etc.CreateDir(screenFolder); gLog.SaveLog("405 Crea carpeta definitva pantalla : " + screenFolder); } //CREA lock por pantalla Etc.CreateLock(screenFolder); gLog.SaveLog("LOCK creado por pantalla : " + screenFolder); /*Etc.CreateDir(screenFolder_TMP); * gLog.SaveLog("375 - Etc.CreateDir " + screenFolder_TMP); */ //crear localmente la variable de la pantalla ScreensGuardian _screen = new ScreensGuardian(); //primero? bool first = false; _screen = ini.config.Screens.Find(e => e.Code == screen.Code.ToString()); if (_screen == null) { //Esto no se ocupa ? _screen = new ScreensGuardian(); _screen.Alto = screen.Height.ToString(); _screen.Ancho = screen.Width.ToString(); _screen.Code = screen.Code.ToString(); _screen.Nombre = screen.Name; _screen.VersionActual = "0"; //_screen.VersionActual = (screen.Version-1).ToString();//cambio gonzalo //string versionValidate = screenFolder + "/" + "v" + screen.Version.ToString() + ".txt";//cambio gonzalo //cambio gonzalo //if (File.Exists(versionValidate)) //{ // _screen.VersionActual = screen.Version.ToString(); //} //cambio gonzalo //if (Etc.CheckEmptyFolder(screenFolder)) //{ // first = true; //} first = true; ini.config.Screens.Add(_screen); ini.db.Save(ini.config); //Etc.ClearDir(screenFolder); //gLog.SaveLog("414 - Etc.ClearDir " + screenFolder); } //si se asigno recientemente if (first) { //Etc.ClearDir(screenFolder_TMP); //gLog.SaveLog("421 - Etc.ClearDir " + screenFolder_TMP); //crear carpeta pantalla if (Directory.Exists(screenFolder_TMP)) { //SI existe la carpeta temporal la limpia Etc.ClearDir(screenFolder_TMP); gLog.SaveLog("459 - Limpia temporal " + screenFolder_TMP); } else { //Crear carpeta temporal Etc.CreateDir(screenFolder_TMP); gLog.SaveLog("465 - Crea temporal " + screenFolder_TMP); } Etc.CreateLock(screenFolder_TMP); //Etc.CreateLock(screenFolder); int auxI = 0; if (screen.Playlist != null) { foreach (var content in screen.Playlist) { try { if (!CheckErrorResponse(content.Download.ToString())) { // string contentName = content.OriginalID + "-"+ content.defOrder + content.Name + "-" + auxI + ".mp4"; string contentName = content.OriginalID + "-" + content.Name + ".mp4"; //Daniel //Comparo si el contenName existe en la carpeta de descarga si es asi no lo descargo. if (Etc.CheckFile(screenFolder + "\\" + contentName)) { File.Copy(screenFolder + "\\" + contentName, screenFolder_TMP + "\\" + contentName); gLog.SaveLog("First: Se copio a la temporal " + contentName + " en " + screenFolder_TMP); } else { Etc.CreateDir(screenFolder_TMP); // Daniel DownloadFile(content.Download.ToString(), screenFolder_TMP + "\\" + contentName); // Daniel //DownloadFile(content.Download.ToString(), screenFolder + "/" + contentName); gLog.SaveLog("First: Se descargo a la temporal" + contentName + " en " + screenFolder_TMP); auxI++; } } } catch (Exception ex) { gLog.SaveLog("First: No se logro descargar archivos a la temporal-- " + ex.Message); //throw; } } // End foreach cargar contenido a la temporal //GUSTAVO //Etc.CreateVersion(screenFolder_TMP, screen.Version.ToString()); //Daniel //Etc.DeleteLock(screenFolder_TMP); // Daniel //Etc.MoveDir(screenFolder_TMP, screenFolder); /////////////Directory.Delete(screenFolder, true); // Daniel /////////////gLog.SaveLog("468 - FIRST : Directory.Delete " + screenFolder); } else { gLog.SaveLog("First: Sin Contenido asignado"); //Etc.DeleteLock(screenFolder_TMP); //////////////Directory.Delete(screenFolder_TMP, true); //////////gLog.SaveLog("474 - FIRST : Directory.Delete " + screenFolder_TMP); if (Etc.CheckDir(screenFolder)) { Etc.DeleteFiles(screenFolder); gLog.SaveLog("477 - FIRST : Etc.DeleteFile " + screenFolder_TMP); } } /* CAIDA * Etc.CreateVersion(screenFolder_TMP, screen.Version.ToString()); //Daniel * Directory.Delete(screenFolder,true); // Daniel * Etc.DeleteLock(screenFolder_TMP); // Daniel * Etc.MoveDir(screenFolder_TMP, screenFolder); */ //Etc.CreateVersion(screenFolder, screen.Version.ToString()); //Etc.DeleteLock(screenFolder); //Etc.DeleteVersion(screenFolder, _screen.VersionActual); //Etc.CreateVersion(screenFolder, screen.Version.ToString()); _screen.VersionActual = screen.Version.ToString(); ini.config.Screens[aux] = _screen; ini.db.Save(ini.config); Etc.CreateVersion(screenFolder_TMP, screen.Version.ToString()); //Daniel Etc.DeleteLock(screenFolder_TMP); // Daniel gLog.SaveLog("500 - FIRST : Etc.DeleteLock " + screenFolder_TMP); Etc.DeleteLock(screenFolder); gLog.SaveLog("619 - FIRST Borra el lock de la pantalla antes de mover la temporal a la definitiva Etc.DeleteLock" + screenFolder); Etc.MoveDir(screenFolder_TMP, screenFolder); gLog.SaveLog("620 - FIRST : Contenido movido de la temporal " + screenFolder_TMP + " a la definitiva " + screenFolder); first = false; } //si la version else if (screen.Version > Int32.Parse(_screen.VersionActual)) { //gustavo //_screen.VersionActual = screen.Version.ToString(); ////------------------------------------------------------------------------------------ ////Daniel ////Crear archivo Json //string json = JsonConvert.SerializeObject(rootCMS); //string path = computerFolder + "/PlayList.json"; //System.IO.File.WriteAllText(path, json); ////------------------------------------------------------------------------------------ gLog.SaveLog("Version Actual " + _screen.VersionActual + " -- Version Remota " + screen.Version); //Etc.DeleteFiles(screenFolder);//cambio gonzalo //Etc.ClearDir(screenFolder); //Etc.CreateLock(screenFolder_TMP); // Daniel if (Directory.Exists(screenFolder_TMP)) { //SI existe la carpeta temporal la limpia Etc.ClearDir(screenFolder_TMP); gLog.SaveLog("585 - Limpia temporal " + screenFolder_TMP); } else { //Crear carpeta temporal Etc.CreateDir(screenFolder_TMP); gLog.SaveLog("590 - Crea temporal " + screenFolder_TMP); } // Etc.ClearDir(screenFolder_TMP); gLog.SaveLog("523 - Etc.ClearDir" + screenFolder_TMP); Etc.CreateLock(screenFolder_TMP); gLog.SaveLog("525 - CreateLock" + screenFolder_TMP); // int auxI = 0; if (screen.Playlist != null) { foreach (var content in screen.Playlist) { try { if (!CheckErrorResponse(content.Download.ToString())) { //string contentName = content.defOrder + content.Name + "-" + auxI + ".mp4"; //Daniel string contentName = content.OriginalID + "-" + content.Name + ".mp4"; //Daniel if (Etc.CheckFile(screenFolder + "\\" + contentName)) { File.Copy(screenFolder + "\\" + contentName, screenFolder_TMP + "\\" + contentName); gLog.SaveLog("Se copio a la temporal " + contentName + " en " + screenFolder); } else { DownloadFile(content.Download.ToString(), screenFolder_TMP + "\\" + contentName); gLog.SaveLog("Se descargo a la temporal " + contentName + " en " + screenFolder); auxI++; } } } catch (Exception ex) { gLog.SaveLog("No se logro descargar archivos a la temporal -- " + ex.Message); //throw; } } //end foreach Directory.Delete(screenFolder, true); // Daniel } else { gLog.SaveLog("Sin Contenido asignado"); //Daniel Etc.DeleteLock(screenFolder_TMP); gLog.SaveLog("522 - Etc.DeleteLock" + screenFolder_TMP); Directory.Delete(screenFolder_TMP, true); gLog.SaveLog("573 - Etc.ClearDir" + screenFolder_TMP); if (Etc.CheckDir(screenFolder)) { Etc.DeleteFiles(screenFolder); gLog.SaveLog("Contenido borrado de la carpeta definitiva"); } //------------------- } //Etc.DeleteVersion(screenFolder, _screen.VersionActual); //Etc.CreateVersion(screenFolder, screen.Version.ToString()); _screen.VersionActual = screen.Version.ToString(); ini.config.Screens[aux] = _screen; ini.db.Save(ini.config); //GUSTAVO Etc.CreateVersion(screenFolder_TMP, screen.Version.ToString()); //Daniel gLog.SaveLog("592 - Etc.CreateVersion" + screenFolder_TMP + " " + screen.Version.ToString()); Etc.DeleteLock(screenFolder_TMP); // Daniel gLog.SaveLog("594 - Etc.DeleteLock" + screenFolder_TMP); Etc.DeleteLock(screenFolder); gLog.SaveLog("732 - Borra el lock de la pantalla antes de mover la temporal a la definitiva Etc.DeleteLock" + screenFolder); Etc.MoveDir(screenFolder_TMP, screenFolder); gLog.SaveLog("597 - Contenido movido de latemporal a la definitiva"); /////////////////// //Etc.DeleteLock(screenFolder); } else { gLog.SaveLog("758 - No hay cambio de version"); Etc.DeleteLock(screenFolder_TMP); // Daniel gLog.SaveLog("594 - Etc.DeleteLock" + screenFolder_TMP); Etc.DeleteLock(screenFolder); gLog.SaveLog("732 - Borra el lock de la pantalla antes de mover la temporal a la definitiva Etc.DeleteLock" + screenFolder); } //Fin if comprueba version } //Posible falla if (Etc.CheckDir(screenFolder_TMP)) { ///////////////Directory.Delete(screenFolder_TMP, true); // Daniel /////////////gLog.SaveLog("609 - Delete " + screenFolder_TMP); } aux++; } else { gLog.SaveLog(" 761 - la carpeta se encuentra ocupada , se encontro LOCK.TXT pantalla : " + screenFolder); } } //Fin foreach descargar contenido y mover a la definitiva //Etc.DeleteLock(computerFolder); //gLog.SaveLog("Borrando lock de computer folder : " + computerFolder ); syncingOff(); } } catch (Exception ex) { gLog.SaveLog("634 - No se logro sincronizar archivos -- " + ex.Message); InitTime(); initiated = true; //throw; } } }
//Gustavo private void CopyTemporalToDirAsync2(string _temporalFolder, string _destinyFolder) { //Borrar directiorio actual if (Directory.Exists(_destinyFolder)) { Etc.DeleteFiles(_destinyFolder); } try { if (Directory.Exists(_temporalFolder)) { //comprueba que exista el json if (File.Exists(_temporalFolder + "\\" + "PlayList.json")) { //Crear directorio definitivo // leer json desde un archivo StreamReader file = File.OpenText(_temporalFolder + "\\" + "PlayList.json"); JsonTextReader reader = new JsonTextReader(file); //json object para trabajar JObject jsondata = (JObject)JToken.ReadFrom(reader); var computers = jsondata["computers"]; //recorre la lista de computadores en el JSON foreach (var computer in computers) { //No se crea una carpeta por computador SOLO PANTALLAS //Recorre la lista de pantallas por computador en el JSON foreach (var screen in computer["screens"]) { //nombre de la carpetas string screen_folder_name = "p" + screen["code"]; //crea el directorio definitivo Directory.CreateDirectory(_destinyFolder + "\\" + screen_folder_name); //extrae la version de la pantalla var screen_version = screen["version"]; //url del archivo de version temporal string version_temp_path = _temporalFolder + "\\" + screen_folder_name + "\\" + "v" + screen_version + ".txt"; //url del archivo de version definitivo string version_destiny_path = _destinyFolder + "\\" + screen_folder_name + "\\" + "v" + screen_version + ".txt"; //comprueba si existe el archivo de version temporal if (File.Exists(version_temp_path)) { //copia el archivo de version temporal a la carpeta definitiva File.Copy(version_temp_path, version_destiny_path); //recorre los contenido de la playlist en el json foreach (var content in screen["playlist"]) { //nombre del contenido string content_name = content["name"].ToString(); //id del contenido string content_original_id = content["originalID"].ToString(); //posicion del contenido string content_position = content["defOrder"].ToString(); //url del contenido temporal id-nombre-nombre.mp4 string content_temp_path = _temporalFolder + "\\" + screen_folder_name + "\\" + content_original_id + "-" + content_name + ".mp4"; //url del contenido definitivo orden-id-nombre.mp4 string content_destiny_path = _destinyFolder + "\\" + screen_folder_name + "\\" + content_position + "-" + content_original_id + "-" + content_name + ".mp4"; //Comprueba si existe el contenido temporal if (File.Exists(content_temp_path)) { //Copia el contenido temporal a la carpeta definitiva File.Copy(content_temp_path, content_destiny_path); } } //end foreach playlist } else { gLog.SaveLog("No se encontro el archvio (Version).txt"); } } //end foreach screens } //end foreach computers } else { gLog.SaveLog("PlayList.Json no existe en la carpeta temporal"); } } else { Console.WriteLine("Source path does not exist!"); } } catch (Exception ex) { gLog.SaveLog("No se logro copiar archivos -- " + ex.Message); //throw; } }
//Verificar directorio, si no existe lo crea. public void SyncAsync(string _remotePath) { string Path = _remotePath; int Qty = 0; if (checkRemoteFolder(Path, ftpClient)) { try { DownloadFilesAsync(ftpClient, Path); CloseConnection(); gLog.SaveLog("Se sincronizo archivos"); } catch (Exception ex) { gLog.SaveLog("No se logro sincronizar --" + ex.Message); //throw; } //si hubo descargas //Falta descargar JSON if (Downloaded) { try { //CreateBS(); Etc.KillApp(ini.config.Reproductor); //Cierra el reproductor System.Threading.Thread.Sleep(3000); //CopyTemporalToDirAsync(TemporalStorage, ini.config.CarpetaRaiz); //Copia el directorio temporal a la carpeta raiz //GUSTAVO CopyTemporalToDirAsync2(TemporalStorage, ini.config.CarpetaRaiz); //Copia el directorio temporal a la carpeta raiz //OpenApp(ini.config.Reproductor); //CloseBS(); Downloaded = false; syncingOff(); } catch (Exception ex) { gLog.SaveLog(ex.Message); //Debug.WriteLine(ex.Message); //throw; } //gustavo copya el json a la carpeta final antes de borrar la temporal try { CopyJsonPlayList(TemporalStorage, ini.config.CarpetaRaiz); //Copia el json PLayList del directorio temporal a la carpeta raiz } catch (Exception ex) { gLog.SaveLog("ERROR COPY PlayList.json " + ex.Message); } //cambio gonzalo try { Etc.DeleteFiles(TemporalStorage); } catch (Exception ex) { gLog.SaveLog("ERROR CLEAR TEMPORAL " + ex.Message); } } Etc.OpenApp(ini.config.Reproductor); } else { } }