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