public static ActionResult Submit(PublishPayload payload)
        {
            using (var fs = new FileStream(payload.FileName, FileMode.Open, FileAccess.Read))
            {
                using (var form = new MultipartFormDataContent
                {
                    CreateStringContent("token", payload.Token),
                    CreateStringContent("email", payload.Email),
                    CreateFileContent(fs, "file", payload.FileName),
                    CreateStringContent("version", payload.Version),
                    CreateStringContent("description", payload.Description),
                })
                {
                    var x = new Url("https://scan.coverity.com/builds");
                    x.SetQueryParam("project", payload.RepositoryName);
                    Uri url = new Uri(x.ToString());

                    ActionResult results = new ActionResult
                    {
                        Successful = true,
                    };
                    if (payload.SubmitToCoverity)
                    {
                        try
                        {
                            var response = Client.Post(url, form);
                            if (response.IsSuccessStatusCode)
                            {
                                results.Message = "Request Submitted Successfully";
                            }
                            else
                            {
                                results.Successful = false;
                                string content = response.Content.ReadAsStringAsync().Result;
                                string message = TryGetJsonMessageFromResponse(content);
                                if (message.IsNotNull())
                                {
                                    if (message.StartsWith("The build submission quota for this project has been reached."))
                                    {
                                        results.Successful = true;
                                        results.Message    = message;
                                    }
                                    else
                                    {
                                        results.Message = "There was an error submitting your report: \n" +
                                                          response.ReasonPhrase + "; " + message;
                                    }
                                }
                                else
                                {
                                    results.Message = "There was an error submitting your report: \n" +
                                                      response.ReasonPhrase + "; " + content;
                                }
                            }
                        }
                        catch (AggregateException exception)
                        {
                            var ex = exception.InnerException;
                            results.Successful = false;
                            results.Message    = "There was an error submitting your report: \n" + ex;
                        }
                    }
                    else
                    {
                        results.Message = "Dry run Successful";
                    }
                    return(results);
                }
            }
        }