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
         }));
     }
 }
Esempio n. 4
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();
            }
        }