public ActionResult SendInvoiceReport(IList <Guid> invoiceIds)
        {
            if (invoiceIds == null || invoiceIds.Count == 0)
            {
                Response.StatusCode = 400;
                return(Json(new { success = false, message = "No invoices selected" }, JsonRequestBehavior.AllowGet));
            }

            var invoiceList = invoiceRepository.FindByIds(invoiceIds);
            var sendResults = invoiceList.AsParallel().WithDegreeOfParallelism(10).Select(SendInvoice).ToList();

            // Solves net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION error
            Response.ClearHeaders();

            return(Json(new
            {
                success = true,
                results = sendResults
            }));
        }