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);
            }
        }