private void SaveSyncFileAndVerifyCheckSum(string sfranchiseDataVersionUid, SyncFileModel fileModel, Stream stream)
        {
            var subPath = Path.GetDirectoryName(fileModel.FileName);

            if (subPath == null)
            {
                throw new Exception(String.Format("El archivo {0}, no tiene directorio", fileModel.FileName));
            }

            var rootPath = Path.Combine(SettingsData.Server.PathToSaveSyncFiles, sfranchiseDataVersionUid);
            var path     = Path.Combine(rootPath, subPath);

            path.CreateDirectoryIfNotExist();
            var fullFileName = Path.Combine(rootPath, fileModel.FileName);

            stream.SaveToFile(fullFileName);

            var checksumVerification = fullFileName.GetChecksum();

            if (fileModel.CheckSum != checksumVerification)
            {
                _eventLog.WriteEntry(String.Format("La verificación del archivo {0} no corresponde: valor original {1}, valor calculado {2}",
                                                   fullFileName, fileModel.CheckSum, checksumVerification));
                return;
            }

            using (var repository = new FranchiseRepository())
            {
                repository.UpdateSyncOkFile(fileModel);
            }
        }
        public ActionResult Upsert(int?id)
        {
            FranchiseUpModel model = null;

            try
            {
                using (var repository = new FranchiseRepository())
                {
                    if (id.HasValue)
                    {
                        model            = repository.FindModelById(id.Value);
                        ViewBag.Resource = JsonConvert.SerializeObject(model.Resource);
                    }
                    else
                    {
                        model = new FranchiseUpModel
                        {
                            FranchiseId = EntityConstants.NULL_VALUE
                        };
                    }

                    ViewBag.Model = JsonConvert.SerializeObject(model);
                }

                ViewBag.PropertyFile = "Resource";
            }
            catch (Exception ex)
            {
                SharedLogger.LogError(ex, id);
            }
            return(View(model));
        }
 public void SetFranchiseVersionTerminalOk(int franchiseId, string sVersion, string sMaInfo)
 {
     using (var repository = new FranchiseRepository())
     {
         repository.SetFranchiseVersionTerminalOk(franchiseId, sVersion, Cypher.Encrypt(sMaInfo));
     }
 }
        /// <summary>
        /// Save Countrys
        /// </summary>
        /// <param name="CountryList"></param>
        /// <returns></returns>
        // POST: api/Country
        public IHttpActionResult Post([FromBody] List <Franchise> FranchiseList)
        {
            FranchiseRepository FranchiseRepository = new FranchiseRepository(Convert.ToInt32(Request.Headers.GetValues("CurrentUserID").First()));

            FranchiseRepository.SaveFranchises(FranchiseList);

            return(Json(new { count = FranchiseList.Count.ToString() }));
        }
        /// <summary>
        /// Get Countrys
        /// </summary>
        /// <returns></returns>
        // GET: api/Country
        public IHttpActionResult Get()
        {
            FranchiseRepository FranchiseRepository = new FranchiseRepository(Convert.ToInt32(Request.Headers.GetValues("CurrentUserID").First()));

            List <Franchise> FranchiseList = FranchiseRepository.GetFranchises();

            return(Json(new { Franchises = FranchiseList }));
        }
        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 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
         }));
     }
 }
        private void GetListOfFilesToSyncWithServer(CancellationToken token)
        {
            var tasks = new List <Task>();

            using (var repository = new FranchiseRepository())
            {
                repository.Db.Configuration.ValidateOnSaveEnabled = false;
                var query    = repository.GetUnSyncListOfFiles();
                var suscribe = query.ToObservable().Subscribe(syncListModel => tasks.Add(ExecuteGetUnSync(syncListModel, token)));

                Task.WaitAll(tasks.ToArray(), token);
                suscribe.Dispose();
            }
        }
        public ResponseMessageModel DoSave(FranchiseCoverageModel franchiseCoverage, string userId)
        {
            var response = new ResponseMessageModel {HasError = true, Title = "Guardar información"};

            if (string.IsNullOrWhiteSpace(franchiseCoverage.LastConfig))
            {
                response.Message = "Error en la red o en el navegador, por favor reinicie su navegador e intente de nuevo.";
                return response;
            }

            if (string.IsNullOrWhiteSpace(franchiseCoverage.Stores))
            {
                response.Message = "No existe información definida para generar las coberturas de la franquicia";
                return response;
            }

            var lstFranchiseCoverage = ExtractCoverages(franchiseCoverage, response);
            if (response.HasError)
                return response;

            using (var repository = new FranchiseRepository())
            {
                using (var transaction = repository.Db.Database.BeginTransaction())
                {
                    if (repository.AnyFranchiseById(franchiseCoverage.Id) == false)
                    {
                        response.Message = "No se ha encontrado la Franquicia o ésta ya fue eliminada";
                        return response;
                    }

                    var lastCoverage = repository.GetFranchiseCoverageById(franchiseCoverage.Id);

                    if(lastCoverage != null)
                        repository.BackupFranchiseCoverageById(lastCoverage);

                    repository.SaveFranchiseCoverage(franchiseCoverage, lastCoverage, userId, lstFranchiseCoverage);

                    transaction.Commit();
                }
            }

            response.Message = "La información fue almacenada de forma correcta";
            response.HasError = false;
            return response;
        }
        public ResponseMessageData <PropagateOrderModel> PosOrderByOrderToStoreId(long orderToStoreId)
        {
            using (_repository)
            {
                var order = _repository.GetPosOrderByOrderToStoreId(orderToStoreId);

                if (order == null)
                {
                    return(new ResponseMessageData <PropagateOrderModel>
                    {
                        IsSuccess = false,
                        Message = "No existe información de la orden"
                    });
                }

                var posCheck = _repository.GetPosCheckById(order.PosOrderId);

                if (posCheck == null)
                {
                    return(new ResponseMessageData <PropagateOrderModel>
                    {
                        IsSuccess = false,
                        Message = "No existe información del pedido"
                    });
                }

                posCheck.ConvertToDicPromos();

                var repositoryFranchise = new FranchiseRepository(_repository.Db);

                var model = new PropagateOrderModel
                {
                    Order     = order,
                    PosCheck  = posCheck,
                    Franchise = repositoryFranchise.GetFranchiseByCode(posCheck.FranchiseCode)
                };

                return(new ResponseMessageData <PropagateOrderModel>
                {
                    Data = model,
                    IsSuccess = true,
                    Message = String.Empty
                });
            }
        }
 public ActionResult Upsert(int id)
 {
     try
     {
         var jSer = new JavaScriptSerializer();
         using (var repository = new FranchiseRepository())
         {
             IAccountService accountService = new AccountService(new AccountRepository(repository.Db));
             ViewBag.Model                = jSer.Serialize(accountService.GetTerminalInfo(id, jSer));
             ViewBag.LstFranchises        = jSer.Serialize(new FranchiseService(repository).LstFranchise());
             ViewBag.LstTerminalFranchise = jSer.Serialize(accountService.GetLstTerminalFranchise(id));
         }
     }
     catch (Exception ex)
     {
         SharedLogger.LogError(ex, id);
     }
     return(View(String.Empty));
 }
 public ActionResult Assign(int id)
 {
     try
     {
         using (var repository = new FranchiseRepository())
         {
             ViewBag.Model = JsonConvert.SerializeObject(new
             {
                 Franchise            = repository.GetFranchiseMapInfoById(id),
                 LstStoresByFranchise = repository.GetListStoresByFranchiseId(id),
             });
         }
     }
     catch (Exception ex)
     {
         SharedLogger.LogError(ex);
         ViewBag.FranchiseName = "No encontrada";
     }
     return(View());
 }
Example #13
0
 public FranchiseController(FranchiseRepository repository)
 {
     _repo = repository;
 }