예제 #1
0
        public static async Task FlushAsync(FlushOptions options, IPublicApi kisslogApi, FlushLogArgs flushArgs, CreateRequestLogRequest request)
        {
            IEnumerable <LoggedFile> files = CopyFiles(flushArgs);

            flushArgs.SetFiles(files);

            IEnumerable <File> requestFiles = files.Select(p => new File
            {
                FileName = p.FileName,
                FilePath = p.FilePath
            }).ToList();

            try
            {
                ApiResult <RequestLog> result = null;

                if (options.UseAsync)
                {
                    result = await kisslogApi.CreateRequestLogAsync(request, requestFiles).ConfigureAwait(false);
                }
                else
                {
                    result = kisslogApi.CreateRequestLog(request, requestFiles);
                }

                if (result.HasException && options.OnException != null)
                {
                    options.OnException.Invoke(new ExceptionArgs(flushArgs, result));
                }
            }
            finally
            {
                DeleteFiles(files);
            }
        }
예제 #2
0
        public void SetFilesThrowsExceptionForNull()
        {
            FlushLogArgs item = new FlushLogArgs(new FlushLogArgs.CreateOptions
            {
                HttpProperties = CommonTestHelpers.Factory.CreateHttpProperties()
            });

            item.SetFiles(null);
        }
예제 #3
0
        public void SetFilesUpdatesProperty()
        {
            var files = Enumerable.Range(0, 2).Select(p => CommonTestHelpers.Factory.CreateLoggedFile()).ToList();

            FlushLogArgs item = new FlushLogArgs(new FlushLogArgs.CreateOptions
            {
                HttpProperties = CommonTestHelpers.Factory.CreateHttpProperties()
            });

            item.SetFiles(files);

            Assert.AreEqual(JsonSerializer.Serialize(files), JsonSerializer.Serialize(item.Files));
        }