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;
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
        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();
            }
        }
Esempio n. 6
0
 public void SaveFranchiseDataVersion(FranchiseDataVersion model)
 {
     DbEntities.FranchiseDataVersion.Add(model);
     DbEntities.SaveChanges();
 }