public IHttpActionResult TestConnection() { var absUri = new Uri(Request.RequestUri, RequestContext.VirtualPathRoot); if (!string.IsNullOrEmpty(_taxSettings.Username) && !string.IsNullOrEmpty(_taxSettings.Password) && !string.IsNullOrEmpty(_taxSettings.ServiceUrl) && !string.IsNullOrEmpty(_taxSettings.CompanyCode)) { if (!_taxSettings.IsEnabled) return BadRequest("Tax calculation disabled, enable before testing connection"); var taxSvc = new JsonTaxSvc(_taxSettings.Username, _taxSettings.Password, _taxSettings.ServiceUrl); var retVal = taxSvc.Ping(); if (retVal.ResultCode.Equals(SeverityLevel.Success)) return Ok(new[] {retVal}); return BadRequest(string.Join(", ", retVal.Messages.Select(m => m.Summary))); } return BadRequest("AvaTax credentials not provided"); }
public IHttpActionResult TestConnection() { IHttpActionResult retVal = BadRequest(); LogInvoker<AvalaraLogger.TaxRequestContext>.Execute(log => { if (!string.IsNullOrEmpty(_taxSettings.Username) && !string.IsNullOrEmpty(_taxSettings.Password) && !string.IsNullOrEmpty(_taxSettings.ServiceUrl) && !string.IsNullOrEmpty(_taxSettings.CompanyCode)) { if (!_taxSettings.IsEnabled) { retVal = BadRequest("Tax calculation disabled, enable before testing connection"); throw new Exception((retVal as BadRequestErrorMessageResult).Message); } var taxSvc = new JsonTaxSvc(_taxSettings.Username, _taxSettings.Password, _taxSettings.ServiceUrl); var result = taxSvc.Ping(); if (!result.ResultCode.Equals(SeverityLevel.Success)) { retVal = BadRequest(string.Join(Environment.NewLine, result.Messages.Where(ms => ms.Severity == SeverityLevel.Error).Select( m => m.Summary + string.Format(" [{0} - {1}] ", m.RefersTo, m.Details == null ? string.Empty : string.Join(", ", m.Details))))); throw new Exception((retVal as BadRequestErrorMessageResult).Message); } retVal = Ok(result); } else { retVal = BadRequest("AvaTax credentials not provided"); throw new Exception((retVal as BadRequestErrorMessageResult).Message); } }) .OnError(_logger, AvalaraLogger.EventCodes.TaxPingError) .OnSuccess(_logger, AvalaraLogger.EventCodes.Ping); return retVal; }