public async Task <IHttpActionResult> InvokeClientAPI(object paramObj, string uri, string transactionType) { HttpResponseMessage response = new HttpResponseMessage(); try { var client = new HttpClient(); client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); switch (transactionType) { case "JE": //JE response = await client.PostAsJsonAsync(uri, (oJournal)paramObj); if (response.IsSuccessStatusCode) { logger.LogJournalTransaction((oJournal)paramObj, true, "A", HttpContext.Current.Request.UserHostAddress); } else { throw new HttpResponseException(response); } break; case "AP INV": //AP case "AR INV": //AR response = await client.PostAsJsonAsync(uri, paramObj); if (response.IsSuccessStatusCode) { logger.LogInvoiceTransaction((oInvoice)paramObj, true, "A", HttpContext.Current.Request.UserHostAddress); } break; case "GI": //GI case "GR": //GR response = await client.PostAsJsonAsync(uri, paramObj); if (response.IsSuccessStatusCode) { logger.LogInventoryTransaction((oInventoryTransaction)paramObj, true, "A", HttpContext.Current.Request.UserHostAddress); } break; case "ITM": //ITM response = await client.PostAsJsonAsync(uri, paramObj); if (response.IsSuccessStatusCode) { logger.LogItemTransaction((oItem)paramObj, true, "A", HttpContext.Current.Request.UserHostAddress); } break; case "BP": //BP response = await client.PostAsJsonAsync(uri, paramObj); if (response.IsSuccessStatusCode) { logger.LogBPTransaction((oBusinessPartner)paramObj, true, "A", HttpContext.Current.Request.UserHostAddress); } break; case "GL": //GL response = await client.PostAsJsonAsync(uri, paramObj); if (response.IsSuccessStatusCode) { logger.LogGlTransaction((oGlAccount)paramObj, true, "A", HttpContext.Current.Request.UserHostAddress); } break; } } catch (HttpResponseException ex) { ErrorLog err = null; ErrorLog errLog = new ErrorLog(); switch (transactionType) { case "JE": err = new ErrorLog { ErrorCode = (int)HttpStatusCode.BadRequest, Message = ex.Message, StackTrace = ex.StackTrace }; errLog = ErrorLogger.Log(err); logger.LogJournalTransaction((oJournal)paramObj, false, "A", HttpContext.Current.Request.UserHostAddress, errLog); break; case "AR INV": case "AP INV": err = new ErrorLog { ErrorCode = (int)HttpStatusCode.BadRequest, Message = ex.Message, StackTrace = ex.StackTrace }; errLog = ErrorLogger.Log(err); logger.LogInvoiceTransaction((oInvoice)paramObj, false, "A", HttpContext.Current.Request.UserHostAddress, errLog); break; case "GI": //GI case "GR": //GR err = new ErrorLog { ErrorCode = (int)HttpStatusCode.BadRequest, Message = ex.Message, StackTrace = ex.StackTrace }; errLog = ErrorLogger.Log(err); logger.LogInventoryTransaction((oInventoryTransaction)paramObj, false, "A", HttpContext.Current.Request.UserHostAddress, errLog); break; case "ITM": //ITM err = new ErrorLog { ErrorCode = (int)HttpStatusCode.BadRequest, Message = ex.Message, StackTrace = ex.StackTrace }; errLog = ErrorLogger.Log(err); logger.LogItemTransaction((oItem)paramObj, false, "A", HttpContext.Current.Request.UserHostAddress, errLog); break; case "BP": //BP err = new ErrorLog { ErrorCode = (int)HttpStatusCode.BadRequest, Message = ex.Message, StackTrace = ex.StackTrace }; errLog = ErrorLogger.Log(err); logger.LogBPTransaction((oBusinessPartner)paramObj, false, "A", HttpContext.Current.Request.UserHostAddress, errLog); break; case "GL": //GL err = new ErrorLog { ErrorCode = (int)HttpStatusCode.BadRequest, Message = ex.Message, StackTrace = ex.StackTrace }; errLog = ErrorLogger.Log(err); logger.LogGlTransaction((oGlAccount)paramObj, false, "A", HttpContext.Current.Request.UserHostAddress, errLog); break; } throw new HttpResponseException(HttpStatusCode.BadRequest); } return(Ok()); }