public async Task <IHttpActionResult> InvokeClientAPI(object paramObj, string uri, string transactionType) { HttpResponseMessage response = new HttpResponseMessage(); try { var client = new HttpClient(); switch (transactionType) { case "JE": response = await client.PostAsJsonAsync(uri, paramObj); if (response.IsSuccessStatusCode) { logger.LogJournalTransaction((oJournal)paramObj, true); } break; case "APV": response = await client.PostAsJsonAsync(uri, paramObj); if (response.IsSuccessStatusCode) { logger.LogInvoiceTransaction((oInvoice)paramObj, true); } break; } response = await client.PostAsJsonAsync(uri, paramObj); } catch (HttpResponseException ex) { ErrorLog err = null; switch (transactionType) { case "JE": err = new ErrorLog { ErrorCode = (int)HttpStatusCode.BadRequest, Message = ex.Message, StackTrace = ex.StackTrace }; logger.LogJournalTransaction((oJournal)paramObj, false, ErrorLogger.Log(err)); break; case "APV": err = new ErrorLog { ErrorCode = (int)HttpStatusCode.BadRequest, Message = ex.Message, StackTrace = ex.StackTrace }; logger.LogInvoiceTransaction((oInvoice)paramObj, false, ErrorLogger.Log(err)); break; } throw new HttpResponseException(HttpStatusCode.BadRequest); } return(Ok()); }
public async Task <IHttpActionResult> AddJournal(oJournal jrnal) { try { if (!GlobalInstance.Instance.IsConnected) { GlobalInstance.Instance.InitializeSboComObject(); } var j = await repo.GetByTransId(jrnal.TransId); if (j != null) { errMsg = string.Format("Journal {0} already exist.", jrnal.TransId); var resp = new HttpResponseMessage(HttpStatusCode.Conflict); resp.Content = new StringContent(errMsg); resp.ReasonPhrase = "Object already exist."; var err = ErrorLogger.Log(new ErrorLog { ErrorCode = (int)HttpStatusCode.Conflict, Message = errMsg, StackTrace = Environment.StackTrace }); transactionLogger.LogJournalTransaction(jrnal, false, err); throw new HttpResponseException(resp); } if (repo.Add(jrnal) != 0) { errMsg = GlobalInstance.Instance.SBOErrorMessage; var resp = new HttpResponseMessage(HttpStatusCode.Conflict); resp.Content = new StringContent(errMsg); resp.ReasonPhrase = "SBO Error"; var err = ErrorLogger.Log(new ErrorLog { ErrorCode = GlobalInstance.Instance.SBOErrorCode, Message = errMsg, StackTrace = Environment.StackTrace }); transactionLogger.LogJournalTransaction(jrnal, false, err); throw new HttpResponseException(resp); } transactionLogger.LogJournalTransaction(jrnal, true); return(Ok(string.Format("Journal {0} succesfully added.", jrnal.TransId))); } catch (HttpResponseException ex) { throw new HttpResponseException(HttpStatusCode.BadRequest); } }
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()); }
public async Task <object> AddJournal(oJournal jrnal) { HttpResponseMessage _resp = new HttpResponseMessage(); try { if (!GlobalInstance.Instance.IsConnected) { GlobalInstance.Instance.InitializeSboComObject(); } var j = await repo.GetByRDTransId(jrnal.TransactionId); string validationStr = ModelValidator.ValidateModel(jrnal); if (!string.IsNullOrEmpty(validationStr)) { errMsg = string.Format(validationStr); var resp = new HttpResponseMessage(HttpStatusCode.Conflict); resp.Content = new StringContent(errMsg); resp.ReasonPhrase = "Object property validation error"; ErrorLog _err = new ErrorLog(); _err.ErrorCode = (int)HttpStatusCode.Conflict; _err.Message = errMsg; _err.StackTrace = Environment.StackTrace; var err = ErrorLogger.Log(_err); transactionLogger.LogJournalTransaction(jrnal, false, "A", HttpContext.Current.Request.UserHostAddress, _err); _resp = resp; throw new HttpResponseException(resp); } if (j != null) { errMsg = string.Format("Journal {0} already exist.", jrnal.TransactionId); var resp = new HttpResponseMessage(HttpStatusCode.Conflict); resp.Content = new StringContent(errMsg); resp.ReasonPhrase = "Object already exist."; ErrorLog _err = new ErrorLog(); _err.ErrorCode = (int)HttpStatusCode.Conflict; _err.Message = errMsg; _err.StackTrace = Environment.StackTrace; var err = ErrorLogger.Log(_err); transactionLogger.LogJournalTransaction(jrnal, false, "A", HttpContext.Current.Request.UserHostAddress, _err); _resp = resp; throw new HttpResponseException(resp); } if (repo.Add(jrnal) != 0) { errMsg = GlobalInstance.Instance.SBOErrorMessage; var resp = new HttpResponseMessage(HttpStatusCode.Conflict); resp.Content = new StringContent(errMsg); resp.ReasonPhrase = "SBO Error"; ErrorLog _err = new ErrorLog(); _err.ErrorCode = (int)HttpStatusCode.Conflict; _err.Message = errMsg; _err.StackTrace = Environment.StackTrace; var err = ErrorLogger.Log(_err); transactionLogger.LogJournalTransaction(jrnal, false, "A", HttpContext.Current.Request.UserHostAddress, _err); _resp = resp; throw new HttpResponseException(resp); } transactionLogger.LogJournalTransaction(jrnal, true, "A", HttpContext.Current.Request.UserHostAddress); var _j = await repo.GetByRDTransId(jrnal.TransactionId); return(new { SAPTransactionId = _j.TransId, ReturnMessage = $"Journal {jrnal.TransactionId} successfully added." }); } catch (HttpResponseException ex) { throw new HttpResponseException(ex.Response); } }