private ResponseMessageFcUnSync GetListOfFilesFromFranchiseServer(UnSyncListModel syncListModel) { using (var client = new SyncFranchiseClient(new BasicHttpBinding(), new EndpointAddress(syncListModel.WsAddress + SettingsData.Constants.Franchise.WS_SYNC_FILES))) { WcfExt.SetMtomEncodingAndSize(client.Endpoint); var res = client.GetUnSyncListOfFiles(syncListModel.FranchiseDataVersionUid); return(res); } }
private void DownloadFilesToSyncWithServer(CancellationToken token) { List <UnSyncListModel> lstDataVersions; _eventLog.WriteEntry("Se inicia la descarga de los archivos", EventLogEntryType.Information); using (var repository = new FranchiseRepository()) { lstDataVersions = repository.GetDataVersionsIdsReadyToDownload(); } if (lstDataVersions == null || lstDataVersions.Any() == false) { _eventLog.WriteEntry("No existen archivos para descargar", EventLogEntryType.Information); return; } foreach (var syncListModel in lstDataVersions) { _eventLog.WriteEntry("Descargando version con UID: " + syncListModel.FranchiseDataVersionUid, EventLogEntryType.Information); try { var syncListModelCs = syncListModel; using (var client = new SyncFranchiseClient(new BasicHttpBinding(BasicHttpSecurityMode.None), new EndpointAddress(syncListModel.WsAddress + SettingsData.Constants.Franchise.WS_SYNC_FILES))) { WcfExt.SetMtomEncodingAndSize(client.Endpoint); var tasks = new List <Task>(); using (var repository = new FranchiseRepository()) { var inClient = client; var query = repository.GetFilesToSyncByVersionId(syncListModel.FranchiseDataVersionId); var subscribe = query.ToObservable().Subscribe(fileModel => tasks.Add(DownloadFileAndVerifyCheckSum(syncListModelCs.FranchiseDataVersionUid, fileModel, token, inClient))); Task.WaitAll(tasks.ToArray(), token); subscribe.Dispose(); repository.TrySetFranchiseSyncFilesCompleted(syncListModelCs.FranchiseDataVersionId); } } _eventLog.WriteEntry("Se terminó la descarga de la version con UID: " + syncListModel.FranchiseDataVersionUid, EventLogEntryType.Information); } catch (Exception ex) { _eventLog.WriteEntry(ex.Message + " -ST- " + ex.StackTrace, EventLogEntryType.Error); } } }
private int FranchiseQueryForFiles(FranchiseDataVersion model, ResponseMessageModel response, string wsUrl) { using (var client = new SyncFranchiseClient(new BasicHttpBinding(), new EndpointAddress(wsUrl + SettingsData.Constants.Franchise.WS_SYNC_FILES))) { WcfExt.SetMtomEncodingAndSize(client.Endpoint); var res = client.QueryForFiles(model.FranchiseDataVersionUid); if (res.HasError == false) { response.HasError = false; return(res.TotalFiles); } response.Message = res.Message; response.HasError = true; return(EntityConstants.NO_VALUE); } }
public static ResponseMessage StartSyncFiles(IList <SyncFranchiseModel> lstFranchiseSyncFiles) { var res = new ResponseMessage(); if (lstFranchiseSyncFiles.Any() == false) { res.IsSuccess = true; return(res); } using (var client = new SyncServerSvcClient()) { WcfExt.SetMtomEncodingAndSize(client.Endpoint); foreach (var syncFranchiseModel in lstFranchiseSyncFiles) { var clientIn = client; var tasks = new List <Task>(); var syncFranchiseModelCopy = syncFranchiseModel; var subscribe = syncFranchiseModel.LstFiles.ToObservable().Subscribe(syncFile => { switch (syncFile.FileType) { case SettingsData.Constants.FranchiseConst.SYNC_FILE_TYPE_DATA: { tasks.Add(CheckFilesAndSync(syncFile, syncFranchiseModelCopy.Code, clientIn, syncFranchiseModelCopy.FranchiseDataVersionUid)); break; } case SettingsData.Constants.FranchiseConst.SYNC_FILE_TYPE_LOGO: case SettingsData.Constants.FranchiseConst.SYNC_FILE_TYPE_IMAGE_NOTIFICATION: { var uriPath = syncFile.FileType == SettingsData.Constants.FranchiseConst.SYNC_FILE_TYPE_LOGO ? SharedConstants.Client.URI_LOGO : SharedConstants.Client.URI_IMAGE_NOTIFICATION; tasks.Add(CheckResourceAndSync(syncFile, uriPath, syncFile.FileType, clientIn)); break; } default: syncFile.HasError = false; break; } }); Task.WaitAll(tasks.ToArray()); subscribe.Dispose(); } var sb = new StringBuilder(); res.IsSuccess = true; foreach (var syncFranchiseModel in lstFranchiseSyncFiles.Where(e => e.FranchiseId != SharedConstants.ALL_FRANCHISES)) { try { var franchiseSuccess = true; foreach (var syncFile in syncFranchiseModel.LstFiles.Where(syncFile => syncFile.HasError)) { sb.AppendLine(syncFile.Message); res.IsSuccess = false; franchiseSuccess = false; } if (franchiseSuccess) { client.SetFranchiseVersionTerminalOk(syncFranchiseModel.FranchiseId, syncFranchiseModel.Version, Cypher.Encrypt(Environment.MachineName)); } } catch (Exception ex) { res.IsSuccess = false; sb.AppendLine(ex.Message + " -ST- " + ex.StackTrace); } } if (res.IsSuccess == false) { res.Message = sb.ToString(); } } return(res); }