internal static void CleanupRequest(UploadRequest request) { try { // If this request hasn't had time to autoclose, wait a tick if ((DateTime.Now - request.LastUpdated).TotalSeconds < 2) { System.Threading.Thread.Sleep(2000); } foreach (UploadedFile file in new List <UploadedFile>(request._uploadedFilesInternal)) { request.UploadStreamProvider.RemoveOutput(file); } } catch (Exception ex) { // TODO: store this always? if (request.Error == null) { request.Error = new ApplicationException("Error cleaning up request " + request.UploadRequestId + ". Request may still be processing, but should self cleanup when complete.", ex); request.ErrorType = UploadErrorType.Other; UpdateRequest(request, true); } } }
internal static void CancelRequest(UploadRequest request) { try { if (request.State != UploadState.Uploading) { CleanupRequest(request); } } catch (Exception ex) { // TODO: store this always? if (request.Error == null) { request.Error = ex; request.ErrorType = UploadErrorType.Other; } } finally { request.State = UploadState.Error; request.ErrorType = UploadErrorType.Cancelled; UpdateRequest(request, true); } }
internal static void UpdateRequest(UploadRequest request, bool isForceUpdate) { if (isForceUpdate || (DateTime.Now - request.LastUpdated).TotalSeconds > Config.SessionStorageProvider.UpdateInterval) { request.LastUpdated = DateTime.Now; SessionStorageProvider.SaveRequest(request, false); } }
internal static void UpdateRequest(UploadRequest request, bool isForceUpdate) { if (isForceUpdate || (DateTime.Now - request.LastUpdated).TotalSeconds > Config.SessionStorageProvider.UpdateInterval) { request.LastUpdated = DateTime.Now; SessionStorageProvider.SaveRequest(request, false); } }
internal UploadedFile(string fileName, string contentType, string sourceElement, UploadRequest request, UploadHttpRequest httpRequest) { // TODO: ensure this is cross-platform compatible ClientName = GetFileName(fileName); //_fileName = fileName; ContentType = contentType; SourceElement = sourceElement; Data = new Dictionary <string, string>(); UploadRequest = request; UploadHttpRequest = httpRequest; }
internal UploadedFile(string fileName, string contentType, string sourceElement, UploadRequest request, UploadHttpRequest httpRequest) { // TODO: ensure this is cross-platform compatible ClientName = GetFileName(fileName); //_fileName = fileName; ContentType = contentType; SourceElement = sourceElement; Data = new Dictionary<string, string>(); UploadRequest = request; UploadHttpRequest = httpRequest; }
internal UploadedFile(object[] values, UploadRequest request) { if (values == null || values.Length != 6) { throw new FormatException("Invalid deserialization data."); } ClientName = (string)values[0]; ServerLocation = (string)values[1]; ContentType = (string)values[2]; SourceElement = (string)values[3]; ContentLength = (long)values[4]; Data = SerializationHelper.DeserializeDictionary(values[5]); UploadRequest = request; }
internal static void InsertRequest(UploadRequest request) { SessionStorageProvider.SaveRequest(request, true); }
internal static void CleanupRequest(UploadRequest request) { try { // If this request hasn't had time to autoclose, wait a tick if ((DateTime.Now - request.LastUpdated).TotalSeconds < 2) System.Threading.Thread.Sleep(2000); foreach (UploadedFile file in new List<UploadedFile>(request._uploadedFilesInternal)) request.UploadStreamProvider.RemoveOutput(file); } catch (Exception ex) { // TODO: store this always? if (request.Error == null) { request.Error = new ApplicationException("Error cleaning up request " + request.UploadRequestId + ". Request may still be processing, but should self cleanup when complete.", ex); request.ErrorType = UploadErrorType.Other; UpdateRequest(request, true); } } }
internal static void CancelRequest(UploadRequest request) { try { if (request.State != UploadState.Uploading) CleanupRequest(request); } catch (Exception ex) { // TODO: store this always? if (request.Error == null) { request.Error = ex; request.ErrorType = UploadErrorType.Other; } } finally { request.State = UploadState.Error; request.ErrorType = UploadErrorType.Cancelled; UpdateRequest(request, true); } }
internal static void InsertRequest(UploadRequest request) { SessionStorageProvider.SaveRequest(request, true); }
internal UploadedFile(object[] values, UploadRequest request) { if (values == null || values.Length != 6) throw new FormatException("Invalid deserialization data."); ClientName = (string)values[0]; ServerLocation = (string)values[1]; ContentType = (string)values[2]; SourceElement = (string)values[3]; ContentLength = (long)values[4]; Data = SerializationHelper.DeserializeDictionary(values[5]); UploadRequest = request; }