コード例 #1
0
        public async Task <IActionResult> PostAttachment([FromForm] FileFormData model)
        {
            //Validate the Model
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Boolean isUploaded = false;

            //Check if the file is not empty
            if (model.File.Length > 0)
            {
                Stream         stream      = model.File.OpenReadStream();
                string         contentType = model.File.ContentType;
                BlobProperties properties  = new BlobProperties
                {
                    ContentType = contentType,
                    Security    = BlobSecurity.Public
                };
                string blobContainer = model.ParentItem.ToString();
                string blobName      = Path.GetRandomFileName();
                isUploaded = await _provider.UploadBlobAsync(blobContainer, blobName, stream, properties);

                //store the data
                var attachment = new Attachment()
                {
                    UploadedBy    = model.UploadedBy,
                    ParentItem    = model.ParentItem,
                    FileName      = model.File.FileName,
                    Size          = model.File.Length,
                    BlobContainer = blobContainer,
                    BlobName      = blobName,
                    UploadedOn    = DateTime.UtcNow
                };
                _context.attachments.Add(attachment);


                if (isUploaded)
                {
                    await _context.SaveChangesAsync();

                    return(Created(nameof(AttachmentController), new AttachmentDTO()
                    {
                        Id = attachment.Id,
                        FileName = attachment.FileName,
                        Size = attachment.Size,
                        UploadedBy = attachment.UploadedBy,
                        UploadedOn = attachment.UploadedOn
                    }));
                }
            }

            ModelState.AddModelError("File", $"The request couldn't be processed (Error 20).");
            // Log error
            return(BadRequest(ModelState));
        }
コード例 #2
0
        public async Task CreateRequestForCommandAsync <T>(Guid id)
        {
            var exists = await ExistAsync(id);

            var request = exists ?
                          throw new AttachmentDomainException($"Request with {id} already exists") :
                                new ClientRequest()
                                {
                                    Id   = id,
                                    Name = typeof(T).Name,
                                    Time = DateTime.UtcNow
                                };

            _context.Add(request);

            await _context.SaveChangesAsync();
        }