private static ResponseMessageServerFileSync GetSyncResourceFileStream(RequestMessageServerFileSync request) { var response = new ResponseMessageServerFileSync(); try { string path; using (var repository = new ResourceRepository()) { path = repository.GetResourcePath(request.FileName); } if (String.IsNullOrWhiteSpace(path)) { response.HasError = true; response.Message = String.Format("La ruta para el archivo {0} no se encuentra. Por favor revise de nuevo", request.FileName); return(response); } var pathFileName = Path.Combine(path, request.FileName); if (File.Exists(pathFileName) == false) { response.HasError = true; response.Message = String.Format("El archivo {0} no se encuentra. Por favor revise de nuevo", request.FileName); return(response); } response.File = File.OpenRead(pathFileName); var clientContext = OperationContext.Current; clientContext.OperationCompleted += delegate { if (response.File != null) { response.File.Dispose(); } }; response.HasError = false; return(response); } catch (Exception ex) { response.HasError = true; response.Message = ex.Message + " - " + ex.StackTrace; return(response); } }
public ResponseMessageServerFileSync GetFileByName(RequestMessageServerFileSync request) { switch (request.FileType) { case SettingsData.Constants.FranchiseConst.SYNC_FILE_TYPE_DATA: return(GetSyncDataFileStream(request)); case SettingsData.Constants.FranchiseConst.SYNC_FILE_TYPE_LOGO: case SettingsData.Constants.FranchiseConst.SYNC_FILE_TYPE_IMAGE_NOTIFICATION: return(GetSyncResourceFileStream(request)); } throw new NotSupportedException("El tipo de archivo no está soportado"); }
private static ResponseMessageServerFileSync GetSyncDataFileStream(RequestMessageServerFileSync request) { var response = new ResponseMessageServerFileSync(); try { var pathFileName = Path.Combine(SettingsData.Server.PathToSaveSyncFiles, request.UidVersion.ToString(), request.FileName); if (File.Exists(pathFileName) == false) { response.HasError = true; response.Message = String.Format("El archivo {0} no se encuentra. Por favor revise de nuevo", request.FileName); return(response); } response.File = File.OpenRead(pathFileName); var clientContext = OperationContext.Current; clientContext.OperationCompleted += delegate { if (response.File != null) { response.File.Dispose(); } }; response.HasError = false; return(response); } catch (Exception ex) { response.HasError = true; response.Message = ex.Message + " - " + ex.StackTrace; return(response); } }