Пример #1
0
        private static Task RunOnUploadComplete(ContextAdapter context, long fileOffset, long bytesWritten)
        {
            if (context.Configuration.OnUploadCompleteAsync == null && context.Configuration.Events?.OnFileCompleteAsync == null)
            {
                return(Task.FromResult(0));
            }

            return(RunOnUploadCompleteLocal());

            async Task RunOnUploadCompleteLocal()
            {
                if (await IsPartialUpload(context))
                {
                    return;
                }

                var fileId           = context.GetFileId();
                var fileUploadLength = await context.Configuration.Store.GetUploadLengthAsync(fileId, context.CancellationToken);

                var fileIsComplete = fileOffset + bytesWritten == fileUploadLength;

                if (fileIsComplete)
                {
                    if (context.Configuration.OnUploadCompleteAsync != null)
                    {
                        await context.Configuration.OnUploadCompleteAsync(fileId, context.Configuration.Store, context.CancellationToken);
                    }

                    if (context.Configuration.Events?.OnFileCompleteAsync != null)
                    {
                        await context.Configuration.Events.OnFileCompleteAsync(FileCompleteContext.Create(context));
                    }
                }
            }
        }
Пример #2
0
        private static async Task HandleOnFileComplete(ContextAdapter context, CancellationToken cancellationToken, string fileId)
        {
            if (context.Configuration.OnUploadCompleteAsync != null)
            {
                await context.Configuration.OnUploadCompleteAsync(fileId, context.Configuration.Store,
                                                                  cancellationToken);
            }

            if (context.Configuration.Events?.OnFileCompleteAsync != null)
            {
                await context.Configuration.Events.OnFileCompleteAsync(FileCompleteContext.Create(context, ctx => ctx.FileId = fileId));
            }
        }
Пример #3
0
        internal static async Task NotifyFileComplete(ContextAdapter context, Action <FileCompleteContext> configure = null)
        {
#pragma warning disable CS0618 // Type or member is obsolete
            if (context.Configuration.OnUploadCompleteAsync == null && context.Configuration.Events?.OnFileCompleteAsync == null)
            {
                return;
            }

            var eventContext = FileCompleteContext.Create(context, configure);

            if (context.Configuration.OnUploadCompleteAsync != null)
            {
                await context.Configuration.OnUploadCompleteAsync.Invoke(eventContext.FileId, eventContext.Store, eventContext.CancellationToken);
            }
#pragma warning restore CS0618 // Type or member is obsolete

            if (context.Configuration.Events?.OnFileCompleteAsync != null)
            {
                await context.Configuration.Events.OnFileCompleteAsync(eventContext);
            }
        }