public SdataTransactionResult Update(Sage.Common.Syndication.FeedEntry payload) { //Transform account Document document = GetTransformedDocument(payload); AccountDocument accountDocument = (AccountDocument)_entity.GetDocumentTemplate(); accountDocument.Id = document.Id; accountDocument.CrmId = GetTradingAccountUuid(document.Id); accountDocument.addresses.documents.Add(document); // Update Document List <TransactionResult> transactionResults = new List <TransactionResult>(); _entity.Update(accountDocument, _context.Config, ref transactionResults); SdataTransactionResult sdTrResult = GetSdataTransactionResult(transactionResults, _context.OriginEndPoint, SupportedResourceKinds.tradingAccounts); if (sdTrResult != null) { sdTrResult.ResourceKind = _resourceKind; sdTrResult.HttpMessage = "PUT"; } return(sdTrResult); }
public override Application.Base.Document GetTransformedDocument(Sage.Common.Syndication.FeedEntry payload) { Application.Base.Document document = _transform.GetTransformedDocument(payload as TradingAccountFeedEntry); if (document.CrmId == null) { document.CrmId = payload.Key; } return(document); }
public override SdataTransactionResult Update(Sage.Common.Syndication.FeedEntry payload) { //Transform account Document document = GetTransformedDocument(payload); string id; string accountId; id = document.Id; if (id.EndsWith(Sage.Integration.Northwind.Application.API.Constants.PhoneIdPostfix)) { accountId = id.Replace(Sage.Integration.Northwind.Application.API.Constants.PhoneIdPostfix, ""); } else if (id.EndsWith(Sage.Integration.Northwind.Application.API.Constants.FaxIdPostfix)) { accountId = id.Replace(Sage.Integration.Northwind.Application.API.Constants.FaxIdPostfix, ""); } else { return(null); } AccountDocument accountDocument = (AccountDocument)_entity.GetDocumentTemplate(); accountDocument.Id = accountId; accountDocument.CrmId = GetTradingAccountUuid(accountId); accountDocument.phones.documents.Add(document); // Update Document List <TransactionResult> transactionResults = new List <TransactionResult>(); _entity.Update(accountDocument, _context.Config, ref transactionResults); SdataTransactionResult sdTrResult = GetSdataTransactionResult(transactionResults, _context.OriginEndPoint, SupportedResourceKinds.phoneNumbers); if (sdTrResult != null) { sdTrResult.ResourceKind = _resourceKind; sdTrResult.HttpMessage = "PUT"; } return(sdTrResult); }
public override SdataTransactionResult Update(Sage.Common.Syndication.FeedEntry payload) { SdataTransactionResult tmpTransactionResult; if (!(payload is SalesOrderLineFeedEntry)) { tmpTransactionResult = new SdataTransactionResult(); tmpTransactionResult.HttpMethod = HttpMethod.PUT; tmpTransactionResult.ResourceKind = _resourceKind; tmpTransactionResult.HttpStatus = System.Net.HttpStatusCode.BadRequest; tmpTransactionResult.HttpMessage = ("salesorder payload missing"); return(tmpTransactionResult); } SalesOrderLineFeedEntry soLine = payload as SalesOrderLineFeedEntry; Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.OrderTableAdapters.Order_DetailsTableAdapter detailsTableAdapter = new Order_DetailsTableAdapter(); Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.Order order = new Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.Order(); int productId; int orderId; if (GetLocalIds(payload.Key, out orderId, out productId)) { using (OleDbConnection connection = new OleDbConnection(_context.Config.ConnectionString)) { try { detailsTableAdapter.Connection = connection; int recordCount = detailsTableAdapter.FillBy(order.Order_Details, orderId); if (recordCount == 0) { tmpTransactionResult = new SdataTransactionResult(); tmpTransactionResult.LocalId = payload.Key; tmpTransactionResult.HttpMethod = HttpMethod.PUT; tmpTransactionResult.ResourceKind = _resourceKind; tmpTransactionResult.HttpStatus = System.Net.HttpStatusCode.BadRequest; tmpTransactionResult.HttpMessage = ("salesorder not found"); return(tmpTransactionResult); } foreach (Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.Order.Order_DetailsRow detailsRow in order.Order_Details.Rows) { if (detailsRow.ProductID == productId) { detailsRow.ModifyUser = _context.Config.CrmUser; detailsRow.ModifyID = _context.Config.SequenceNumber; if (soLine.IsPropertyChanged("quantity")) { detailsRow.Quantity = Convert.ToInt16(soLine.quantity); } else { detailsRow.Quantity = 0; } if (soLine.IsPropertyChanged("initialPrice")) { detailsRow.UnitPrice = (Decimal)soLine.initialPrice; } else { detailsRow.UnitPrice = 0; } if ((!soLine.IsPropertyChanged("discountTotal")) || (detailsRow.Quantity == 0) || (detailsRow.UnitPrice == 0)) { detailsRow.Discount = (float)0; } else { // discountPC = discountsum / qunatity * listprice //detailRow.Discount = Convert.ToSingle((decimal)lineItemDoc.discountsum.Value / ((decimal)detailRow.Quantity * detailRow.UnitPrice)); float discount = Convert.ToSingle((decimal)soLine.discountTotal / (detailsRow.UnitPrice)); if (discount > 1) { discount = 0; } detailsRow.Discount = discount; } break; } } detailsTableAdapter.Update(order.Order_Details); tmpTransactionResult = new SdataTransactionResult(); tmpTransactionResult.LocalId = payload.Key; tmpTransactionResult.HttpMethod = HttpMethod.PUT; tmpTransactionResult.ResourceKind = _resourceKind; tmpTransactionResult.HttpStatus = System.Net.HttpStatusCode.OK; return(tmpTransactionResult); } catch (Exception e) { tmpTransactionResult = new SdataTransactionResult(); tmpTransactionResult.LocalId = payload.Key; tmpTransactionResult.HttpMethod = HttpMethod.PUT; tmpTransactionResult.ResourceKind = _resourceKind; tmpTransactionResult.HttpStatus = System.Net.HttpStatusCode.BadRequest; tmpTransactionResult.HttpMessage = e.Message; return(tmpTransactionResult); } } } tmpTransactionResult = new SdataTransactionResult(); tmpTransactionResult.LocalId = payload.Key; tmpTransactionResult.HttpMethod = HttpMethod.PUT; tmpTransactionResult.ResourceKind = _resourceKind; tmpTransactionResult.HttpStatus = System.Net.HttpStatusCode.BadRequest; tmpTransactionResult.HttpMessage = "Not found"; return(tmpTransactionResult); }
public override Application.Base.Document GetTransformedDocument(Sage.Common.Syndication.FeedEntry payload) { throw new NotImplementedException(); }
public override SdataTransactionResult Add(Sage.Common.Syndication.FeedEntry payload) { throw new NotImplementedException(); }
public override Application.Base.Document GetTransformedDocument(Sage.Common.Syndication.FeedEntry payload) { return(_transform.GetTransformedDocument(payload as PriceListFeedEntry)); }
protected void SetCommonProperties(Sage.Integration.Northwind.Application.Base.Document document, string descriptor, Sage.Common.Syndication.FeedEntry entry) { entry.Id = GetSDataId(document.Id); entry.Key = document.Id; CorrelatedResSyncInfo syncInfo = GetUuidAsGuid(document.Id, document.CrmId); entry.UUID = syncInfo.ResSyncInfo.Uuid; entry.Updated = syncInfo.ResSyncInfo.ModifiedStamp.ToLocalTime(); entry.Descriptor = descriptor; }
public override SdataTransactionResult Add(Sage.Common.Syndication.FeedEntry payload) { // until there is no reference inside the payload, no add will be possible throw new NotImplementedException(); }