示例#1
0
        public async Task <IActionResult> PutInvoice(int id, [FromBody] SaveInvoiceResource resource)
        {
            var result = await _repository.GetInvoiceAsync(id);

            if (result == null)
            {
                return(NotFound());
            }

            result.InvoiceNo       = resource.InvoiceNo;
            result.Contractor      = resource.InvoiceNo;
            result.JobId           = resource.JobId;
            result.Amount          = resource.Amount;
            result.InvoiceTypeId   = resource.InvoiceTypeId;
            result.FilePath        = resource.FilePath;
            result.InvoiceDate     = resource.InvoiceDate;
            result.Status          = resource.Status;
            result.JobBudgetId     = resource.JobBudgetId;
            result.SubContractorId = resource.SubContractorId;
            result.BankId          = resource.BankId;

            _repository.UpdateInvoiceById(result);
            await _unitOfWork.CompleteAsync();

            return(Ok(result));
        }
示例#2
0
        public async Task <IActionResult> PostAsync([FromBody] SaveInvoiceResource resource)
        {
            var invoice = _mapper.Map <SaveInvoiceResource, Invoice>(resource);

            var result = await _invoiceService.PayInvoice(invoice);

            if (!result.Success)
            {
                return(BadRequest(new ErrorResource(result.Message)));
            }

            var invoiceResource = _mapper.Map <Invoice, InvoiceResource>(result.Resource);

            return(Ok(invoiceResource));
        }
示例#3
0
        public async Task <IActionResult> PostInvoice(SaveInvoiceResource resource, IFormFile file)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var awsServiceclientSettings = new AwsServiceClientSettings(file,
                                                                        _awsAppSettings.BucketName, _awsAppSettings.SubFolderW9, _awsAppSettings.BucketLocation, _awsAppSettings.PublicDomain);
            var documentUrl = "";

            if (file != null)
            {
                if (file.Length > _photoAppSettings.MaxBytes)
                {
                    return(BadRequest("Maximum file size exceeded"));
                }
                else
                {
                    if (!_photoAppSettings.IsSupported(file.FileName))
                    {
                        return(BadRequest("Invalid file type"));
                    }
                    else
                    {
                        documentUrl = await _awsServiceClient.UploadAsync(awsServiceclientSettings);
                    }
                }
            }

            var invoice = _mapper.Map <SaveInvoiceResource, Invoices>(resource);

            invoice.FilePath = documentUrl;

            invoice.BankId = await GetUserId();

            _repository.Add(invoice);
            await _unitOfWork.CompleteAsync();

            var result = _mapper.Map(invoice, resource);

            return(Ok(result));
        }