public Task <Result <CabinetFileInfo> > Handle(GetDocumentInfoQuery request, CancellationToken cancellationToken)
        {
            return(Task.Run(() =>
            {
                var dPath = Path.Combine(cs.DataDir, request.ContainerName);
                if (!Directory.Exists(dPath))
                {
                    var message = $"container name '{request.ContainerName}' does not exist";
                    return Result.Fail <CabinetFileInfo>(new Error(message));
                }

                var fPath = Path.Combine(dPath, request.DocumentName);
                if (!File.Exists(fPath))
                {
                    var message = $"file name '{request.ContainerName}' does not exist";
                    return Result.Fail <CabinetFileInfo>(new Error(message));
                }

                var file = new FileInfo(fPath);

                var cfInfo = new CabinetFileInfo
                {
                    Name = file.Name,
                    Path = file.FullName,
                    Size = file.Length,
                    ContainerName = request.ContainerName,
                    DocumentName = request.DocumentName,
                    MimeType = file.Extension.ToMimeType(cs.MimeTypes),
                    CreatedAt = file.CreationTimeUtc,
                };

                return Result.Ok(cfInfo);
            }));
        }
Exemple #2
0
        public async Task <IActionResult> GetDocumentInfo(
            [FromQuery] string containerName,
            [FromQuery] string documentName)
        {
            var query  = new GetDocumentInfoQuery(containerName, documentName);
            var result = await _mediator.Send(query);

            if (!result.IsSuccess)
            {
                return(BadRequest());
            }

            return(Ok(new { success = true, payload = result.Value }));
        }