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)); }
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)); }
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)); }