private Task ExecuteGetUnSync(UnSyncListModel syncListModel, CancellationToken token) { return(Task.Run(() => { try { _eventLog.WriteEntry("Se inicia la petición de los archivos con UID: " + syncListModel.FranchiseDataVersionUid, EventLogEntryType.Information); var response = GetListOfFilesFromFranchiseServer(syncListModel); if (response.HasError) { _eventLog.WriteEntry("Al consultar la lista de archivos se generó el error: " + response.Message, EventLogEntryType.Error); return; } SaveListOfFiles(syncListModel, response); _eventLog.WriteEntry(String.Format("Termina la petición de los archivos con UID: {0}. Total de archivos: {1}", syncListModel.FranchiseDataVersionUid, response.LstFiles.Length), EventLogEntryType.Information); } catch (Exception ex) { _eventLog.WriteEntry(ex.Message + " -ST- " + ex.StackTrace, EventLogEntryType.Error); } }, token)); }
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 SaveListOfFiles(UnSyncListModel syncListModel, ResponseMessageFcUnSync response) { using (var repository = new FranchiseRepository()) { repository.SaveListOfFranchiseDataFile(syncListModel, response.LstFiles.Select(e => new FranchiseDataFile { CheckSum = e.CheckSum, FileName = e.FileName, FranchiseDataVersionId = syncListModel.FranchiseDataVersionId, IsSync = false })); } }
public void SaveListOfFranchiseDataFile(UnSyncListModel syncListModel, IEnumerable <FranchiseDataFile> lstFiles) { DbEntities.Configuration.ValidateOnSaveEnabled = false; using (var dbTrans = DbEntities.Database.BeginTransaction(IsolationLevel.Snapshot)) { DbEntities.FranchiseDataFile.AddRange(lstFiles); DbEntities.SaveChanges(); var franchiseDataVersion = new FranchiseDataVersion { FranchiseDataVersionId = syncListModel.FranchiseDataVersionId, IsListOfFilesReceived = true }; DbEntities.FranchiseDataVersion.Attach(franchiseDataVersion); DbEntities.Entry(franchiseDataVersion).Property(e => e.IsListOfFilesReceived).IsModified = true; DbEntities.SaveChanges(); dbTrans.Commit(); } }