public void CreateNewVersion(int franchiseId, ResponseMessageModel response, string userId) { var now = DateTime.Now; var model = new FranchiseDataVersion { FranchiseId = franchiseId, FranchiseDataVersionUid = Guid.NewGuid(), Version = now.Ticks.ToString(CultureInfo.InvariantCulture).ToVersion(4, 3, '.'), Timestamp = now, NumberOfFilesDownloaded = 0, IsCompleted = false, IsListOfFilesReceived = false, TimestampComplete = null, UserInsId = userId, IsObsolete = false }; var wsUrl = _repository.GetUrlSyncWsByFranchiseId(franchiseId); model.TotalNumberOfFiles = FranchiseQueryForFiles(model, response, wsUrl); if (response.HasError) { return; } _repository.SaveFranchiseDataVersion(model); response.HasError = false; }
public void TrySetFranchiseSyncFilesCompleted(int franchiseDataVersionId) { //Si existe al menos un archivo no sincronizado, no es posible completar la sincronización if (DbEntities.FranchiseDataFile.Any(e => e.FranchiseDataVersionId == franchiseDataVersionId && e.IsSync == false)) { return; } DbEntities.Configuration.ValidateOnSaveEnabled = false; var model = new FranchiseDataVersion { FranchiseDataVersionId = franchiseDataVersionId, IsCompleted = true, TimestampComplete = DateTime.Now }; DbEntities.FranchiseDataVersion.Attach(model); DbEntities.Entry(model).Property(e => e.IsCompleted).IsModified = true; DbEntities.Entry(model).Property(e => e.TimestampComplete).IsModified = true; DbEntities.SaveChanges(); }
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 void UpdateSyncOkFile(SyncFileModel syncFile) { DbEntities.Configuration.ValidateOnSaveEnabled = false; var model = new FranchiseDataFile { FranchiseDataFileId = syncFile.FranchiseDataFileId, IsSync = true }; DbEntities.FranchiseDataFile.Attach(model); DbEntities.Entry(model).Property(e => e.IsSync).IsModified = true; DbEntities.SaveChanges(); var countSyncFiles = DbEntities.FranchiseDataFile.Count(e => e.FranchiseDataVersionId == syncFile.FranchiseDataVersionId && e.IsSync); var countModel = new FranchiseDataVersion { FranchiseDataVersionId = syncFile.FranchiseDataVersionId, NumberOfFilesDownloaded = countSyncFiles }; DbEntities.FranchiseDataVersion.Attach(countModel); DbEntities.Entry(countModel).Property(e => e.NumberOfFilesDownloaded).IsModified = true; DbEntities.SaveChanges(); }
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(); } }
public void SaveFranchiseDataVersion(FranchiseDataVersion model) { DbEntities.FranchiseDataVersion.Add(model); DbEntities.SaveChanges(); }