public async Task <IHttpActionResult> UpdateBusinessPartner(oBusinessPartner businessPartner) { try { if (!GlobalInstance.Instance.IsConnected) { GlobalInstance.Instance.InitializeSboComObject(); } var bp = await repo.GetByCardCode(businessPartner.CardCode); if (businessPartner == null) { errMsg = string.Format("Business partner {0} does not exist.", businessPartner.CardCode); var resp = new HttpResponseMessage(HttpStatusCode.NotFound); resp.Content = new StringContent(errMsg); resp.ReasonPhrase = "Object not found."; throw new HttpResponseException(resp); } if (repo.Update(businessPartner) < 0) { errMsg = GlobalInstance.Instance.SBOErrorMessage; var resp = new HttpResponseMessage(HttpStatusCode.Conflict); resp.Content = new StringContent(errMsg); resp.ReasonPhrase = "SBO Error"; throw new HttpResponseException(resp); } return(Ok(string.Format("Business partner {0} succesfully added.", businessPartner.CardCode))); } catch (HttpResponseException ex) { throw new HttpResponseException(HttpStatusCode.BadRequest); } }
public int Update(oBusinessPartner obj) { BusinessPartners _bp = (BusinessPartners)SboComObject.GetBusinessObject(BoObjectTypes.oBusinessPartners); try { SboComObject.StartTransaction(); int retCode = 0; _bp.GetByKey(obj.CardCode); _bp.CardName = obj.CardName; _bp.Address = obj.Address; _bp.ContactPerson = obj.CntctPerson; _bp.Cellular = obj.Cellular; _bp.Phone1 = obj.Phone1; _bp.Phone2 = obj.Phone2; _bp.EmailAddress = obj.Email; retCode = _bp.Update(); if (retCode != 0) { int errCode = 0; string errMessage = ""; SboComObject.GetLastError(out errCode, out errMessage); GlobalInstance.Instance.SBOErrorCode = errCode; GlobalInstance.Instance.SBOErrorMessage = errMessage; SboComObject.EndTransaction(BoWfTransOpt.wf_RollBack); } else { SboComObject.EndTransaction(BoWfTransOpt.wf_Commit); } return(retCode); } catch (Exception ex) { System.Runtime.InteropServices.Marshal.ReleaseComObject(_bp); throw new Exception(GlobalInstance.Instance.SBOErrorMessage == null ? ex.Message : GlobalInstance.Instance.SBOErrorMessage); } finally { System.Runtime.InteropServices.Marshal.ReleaseComObject(_bp); } }
public void LogBPTransaction(oBusinessPartner obj, bool isPosted, ErrorLog errLog = null) { try { log.TransactionNo = obj.CardCode; log.Origin = string.Format("{0}-{1}", HttpContext.Current.Request.UserHostAddress, HttpContext.Current.Request.UserHostName); log.Type = TransactionLog.SBOType.BP; log.LogDate = DateTime.Now; log.IsPosted = isPosted; log.TransactionDataID = log.RawData.ID; log.RawData.PostedOn = obj.CreateDate; log.RawData.RawData = JsonConvert.SerializeObject(obj); repo.AddOrUpdate(log); } catch (Exception ex) { throw new Exception(ex.Message); } }
public void LogBPTransaction(oBusinessPartner obj, bool isPosted, string action, string origin, ErrorLog errLog = null) { try { log.TransactionNo = obj.CardCode; log.Origin = origin; log.Type = TransactionLog.SBOType.BP; log.LogDate = DateTime.Now; log.IsPosted = isPosted; TransactionData rawData = new TransactionData(); rawData.PostedOn = obj.CreateDate; rawData.RawData = JsonConvert.SerializeObject(obj); log.RawData = rawData; log.Action = action; log.CreatedBy = obj.CreatedBy; log.CreatedOn = obj.CreateDate; repo.AddOrUpdate(log); } catch (Exception ex) { throw new Exception(ex.Message); } }
public int Add(oBusinessPartner obj) { BusinessPartners _bp = (BusinessPartners)SboComObject.GetBusinessObject(BoObjectTypes.oBusinessPartners); SeriesRepository s = new SeriesRepository(); s.InitRepository(GlobalInstance.Instance.SqlObject); var tempList = s.GetList(null); oSeries _s = new oSeries(); _s = tempList.Result.FirstOrDefault(x => x.ObjectCode == ((int)SboTransactionType.BP).ToString() && x.Series == obj.Series && x.DocSubType == obj.CardType); try { SboComObject.StartTransaction(); int retCode = 0; if (_s != null) { if (_s.SeriesName.ToLower() == "manual") { _bp.CardCode = obj.CardCode; } } _bp.Series = obj.Series; _bp.GroupCode = obj.GroupCode; _bp.CardName = obj.CardName; _bp.Address = obj.Address; _bp.CardType = obj.CardType == "C" ? BoCardTypes.cCustomer : BoCardTypes.cSupplier; _bp.ContactPerson = obj.CntctPerson; _bp.Cellular = obj.Cellular; _bp.Phone1 = obj.Phone1; _bp.Phone2 = obj.Phone2; _bp.EmailAddress = obj.Email; retCode = _bp.Add(); if (retCode != 0) { int errCode = 0; string errMessage = ""; SboComObject.GetLastError(out errCode, out errMessage); GlobalInstance.Instance.SBOErrorCode = errCode; GlobalInstance.Instance.SBOErrorMessage = errMessage; SboComObject.EndTransaction(BoWfTransOpt.wf_RollBack); } else { SboComObject.EndTransaction(BoWfTransOpt.wf_Commit); } return(retCode); } catch (Exception ex) { System.Runtime.InteropServices.Marshal.ReleaseComObject(_bp); throw new Exception(GlobalInstance.Instance.SBOErrorMessage == null ? ex.Message : GlobalInstance.Instance.SBOErrorMessage); } finally { System.Runtime.InteropServices.Marshal.ReleaseComObject(_bp); } }
public async Task <IHttpActionResult> UpdateBusinessPartner(oBusinessPartner businessPartner) { try { if (!GlobalInstance.Instance.IsConnected) { GlobalInstance.Instance.InitializeSboComObject(); } var bp = await repo.GetByCardCode(businessPartner.CardCode); string validationStr = ModelValidator.ValidateModel(businessPartner); 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"; var err = ErrorLogger.Log(new ErrorLog { ErrorCode = (int)HttpStatusCode.Conflict, Message = errMsg, StackTrace = Environment.StackTrace }); transactionLogger.LogBPTransaction(businessPartner, false, "U", this.Request.Headers.Host, err); throw new HttpResponseException(resp); } if (businessPartner == null) { errMsg = string.Format("Business partner {0} does not exist.", businessPartner.CardCode); var resp = new HttpResponseMessage(HttpStatusCode.NotFound); resp.Content = new StringContent(errMsg); resp.ReasonPhrase = "Object not found."; var err = ErrorLogger.Log(new ErrorLog { ErrorCode = (int)HttpStatusCode.Conflict, Message = errMsg, StackTrace = Environment.StackTrace }); transactionLogger.LogBPTransaction(businessPartner, false, "U", this.Request.Headers.Host, err); throw new HttpResponseException(resp); } if (repo.Update(businessPartner) < 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 = (int)HttpStatusCode.Conflict, Message = errMsg, StackTrace = Environment.StackTrace }); transactionLogger.LogBPTransaction(businessPartner, false, "U", this.Request.Headers.Host, err); throw new HttpResponseException(resp); } transactionLogger.LogBPTransaction(businessPartner, true, "U", this.Request.Headers.Host); return(Ok(string.Format("Business partner {0} succesfully added.", businessPartner.CardCode))); } catch (HttpResponseException ex) { throw new HttpResponseException(HttpStatusCode.BadRequest); } }