Beispiel #1
0
        public async Task <IActionResult> UploadContract([FromRoute] int id, IFormFile file)
        {
            var contract = _dbContext.Contracts.SingleOrDefault(x => x.Id == id);

            if (contract == null)
            {
                throw new ApiException("Contract Id does not exist.");
            }

            byte[] data     = null;
            var    fileName = DateTime.Now.ToString("yy-MM-dd HH:mm:ss") + "_" + file.FileName;

            using (var reader = new BinaryReader(file.OpenReadStream()))
            {
                data = reader.ReadBytes((int)file.Length);
            }
            var contenType     = file.ContentType;
            var uploadFileName = "";
            CloudBlobContainer blobContainer = null;
            var container = "";

            container     = "contracts";
            blobContainer = await _azureBlobHelper.GetBlobContainer(container);


            uploadFileName = await _azureBlobSavingService.SavingFileToAzureBlobAsync(data, fileName, contenType, blobContainer);

            var url = $"{_configuration["AzureBlob:ServerImage"]}/{container}/{uploadFileName}";

            contract.FileUrl = url;

            if (contract.Status == ContractStatus.Draft)
            {
                contract.Status = ContractStatus.Waiting;
            }
            else if (contract.Status == ContractStatus.Waiting)
            {
                contract.Status      = ContractStatus.Active;
                contract.ActivedDate = DateTime.UtcNow.AddHours(7);
            }

            _dbContext.SaveChanges();

            return(Ok(url));
        }