public async Task <object> AddItem(oItem item) { try { if (!GlobalInstance.Instance.IsConnected) { GlobalInstance.Instance.InitializeSboComObject(); } var list = await repo.GetList(null); var itm = list.FirstOrDefault(x => x.RDItemCode == item.RDItemCode); string validationStr = ModelValidator.ValidateModel(item); if (!string.IsNullOrEmpty(validationStr)) { errMsg = string.Format(validationStr); ErrorLog _err = new ErrorLog(); _err.ErrorCode = (int)HttpStatusCode.Conflict; _err.Message = errMsg; _err.StackTrace = Environment.StackTrace; var err = ErrorLogger.Log(_err); transactionLogger.LogItemTransaction(item, false, "A", HttpContext.Current.Request.UserHostAddress, _err); throw new HttpResponseException(new HttpResponseMessage { StatusCode = HttpStatusCode.Conflict, Content = new StringContent(errMsg) }); } if (itm != null) { errMsg = string.Format("Item {0} - {1} already exist.", itm.RDItemCode, itm.Description); ErrorLog _err = new ErrorLog(); _err.ErrorCode = (int)HttpStatusCode.Conflict; _err.Message = errMsg; _err.StackTrace = Environment.StackTrace; var err = ErrorLogger.Log(_err); transactionLogger.LogItemTransaction(item, false, "A", HttpContext.Current.Request.UserHostAddress, _err); throw new HttpResponseException(new HttpResponseMessage { StatusCode = HttpStatusCode.Conflict, Content = new StringContent(errMsg) }); } if (repo.Add(item) < 0) { errMsg = GlobalInstance.Instance.SBOErrorMessage; ErrorLog _err = new ErrorLog(); _err.ErrorCode = (int)HttpStatusCode.Conflict; _err.Message = errMsg; _err.StackTrace = Environment.StackTrace; var err = ErrorLogger.Log(_err); transactionLogger.LogItemTransaction(item, false, "A", HttpContext.Current.Request.UserHostAddress, _err); throw new HttpResponseException(new HttpResponseMessage { StatusCode = HttpStatusCode.Conflict, Content = new StringContent(errMsg) }); } transactionLogger.LogItemTransaction(item, true, "A", HttpContext.Current.Request.UserHostAddress); var _itm = await repo.GetByRDItemCode(item.RDItemCode); return(new { SAPItemCode = _itm.ItemCode, ReturnMessage = $"Item {item.RDItemCode} - {item.Description} successfully added." }); } catch (HttpResponseException ex) { throw new HttpResponseException(ex.Response); } }
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()); }