public void PutContact(IRequest request, ContactFeedEntry entry, string resource) { CRUD crud = new CRUD(request); crud.Update(entry, resource); }
public void PostContact(IRequest request, ContactFeedEntry entry) { CRUD crud = new CRUD(request); crud.Create(entry); }
public TradingAccountFeedEntry GetTransformedPayload(AccountDocument document) { TradingAccountFeedEntry entry = new TradingAccountFeedEntry(); entry.customerSupplierFlag = GetSupplierFlag(document.customerSupplierFlag); entry.active = true; entry.deleted = false; entry.deliveryRule = false; entry.name = (document.name.IsNull) ? null : document.name.Value.ToString(); #region addresses int adressCount = document.addresses.documents.Count; entry.postalAddresses = new PostalAddressFeed(); entry.postalAddresses.Id = GetSDataId(document.Id) + "/" + SupportedResourceKinds.postalAddresses.ToString(); for (int index = 0; index < adressCount; index++) { AddressDocument address = document.addresses.documents[index] as AddressDocument; PostalAddressFeedEntry postalAdressEntry = _postalAdressTransformation.GetTransformedPayload(address); if (postalAdressEntry != null) { entry.postalAddresses.Entries.Add(postalAdressEntry); } } #endregion #region emails int emailsCount = document.emails.documents.Count; entry.emails = new EmailFeed(); for (int index = 0; index < emailsCount; index++) { EmailDocument email = document.emails.documents[index] as EmailDocument; EmailFeedEntry emailEntry = _emailAdressTransformation.GetTransformedPayload(email); entry.emails.Entries.Add(emailEntry); } #endregion #region phones int phonesCount = document.phones.documents.Count; entry.phones = new PhoneNumberFeed(); for (int index = 0; index < phonesCount; index++) { PhoneDocument phone = document.phones.documents[index] as PhoneDocument; PhoneNumberFeedEntry phoneNumberEntry = _phoneNumberTransformation.GetTransformedPayload(phone); if (phoneNumberEntry != null) { entry.phones.Entries.Add(phoneNumberEntry); } } #endregion #region contacts int contactsCount = document.people.documents.Count; entry.contacts = new ContactFeed(); for (int index = 0; index < contactsCount; index++) { PersonDocument person = document.people.documents[index] as PersonDocument; ContactFeedEntry contactEntry = _contactTransformation.GetTransformedPayload(person); if (contactEntry != null) { entry.contacts.Entries.Add(contactEntry); } } #endregion entry.currency = _config.CurrencyCode; SetCommonProperties(document, entry.name, entry); return(entry); }
public override SdataTransactionResult Add(FeedEntry entry) { string accountUuid = string.Empty; SdataTransactionResult sdTrResult; ContactFeedEntry contactEntry = entry as ContactFeedEntry; if (contactEntry.primacyIndicator) { // is primary } else { sdTrResult = new SdataTransactionResult(); sdTrResult.HttpMessage = "Only primary contacts supported"; sdTrResult.HttpMethod = HttpMethod.POST; sdTrResult.HttpStatus = System.Net.HttpStatusCode.Forbidden; sdTrResult.ResourceKind = SupportedResourceKinds.contacts; sdTrResult.Uuid = contactEntry.UUID.ToString(); AttachDiagnosis(sdTrResult); return(sdTrResult); } if (contactEntry.tradingAccount != null) { accountUuid = contactEntry.tradingAccount.UUID.ToString(); } if (String.IsNullOrEmpty(accountUuid) || Guid.Empty.ToString() == accountUuid) { sdTrResult = new SdataTransactionResult(); sdTrResult.HttpMessage = "Trading Account UUID was missing"; sdTrResult.HttpMethod = HttpMethod.POST; sdTrResult.HttpStatus = System.Net.HttpStatusCode.Forbidden; sdTrResult.ResourceKind = _resourceKind; sdTrResult.Uuid = contactEntry.UUID.ToString(); AttachDiagnosis(sdTrResult); return(sdTrResult); } string accountId = GetTradingAccountLocalId(accountUuid); if (String.IsNullOrEmpty(accountId)) { sdTrResult = new SdataTransactionResult(); sdTrResult.HttpMessage = String.Format("Trading Account UUID {0} was not linked", accountUuid); sdTrResult.HttpMethod = HttpMethod.POST; sdTrResult.HttpStatus = System.Net.HttpStatusCode.Forbidden; sdTrResult.ResourceKind = _resourceKind; sdTrResult.Uuid = contactEntry.UUID.ToString(); AttachDiagnosis(sdTrResult); return(sdTrResult); } Account account = new Account(); Identity accIdentity = new Identity(account.EntityName, accountId); AccountDocument accountDocument = account.GetDocument( accIdentity, _emptyToken, _context.Config) as AccountDocument; accountDocument.CrmId = accountUuid; Document document = null; bool doAdd = false; document = GetTransformedDocument(entry); if (accountDocument.people.documents.Count == 0) { accountDocument.people.documents.Add(document); doAdd = true; } else { PersonDocument personDocument = accountDocument.people.documents[0] as PersonDocument; if (personDocument.firstname.IsNull && personDocument.lastname.IsNull) { accountDocument.people.documents[0] = document; doAdd = true; } } if (!doAdd) { sdTrResult = new SdataTransactionResult(); sdTrResult.HttpMessage = "Trading Account has already a primary contact"; sdTrResult.HttpMethod = HttpMethod.POST; sdTrResult.HttpStatus = System.Net.HttpStatusCode.Forbidden; sdTrResult.ResourceKind = _resourceKind; sdTrResult.Uuid = contactEntry.UUID.ToString(); AttachDiagnosis(sdTrResult); return(sdTrResult); } List <TransactionResult> transactionResults = new List <TransactionResult>(); account.Update(accountDocument, _context.Config, ref transactionResults); sdTrResult = GetSdataTransactionResult(transactionResults, _context.OriginEndPoint, SupportedResourceKinds.tradingAccounts); if (sdTrResult != null) { sdTrResult.ResourceKind = _resourceKind; sdTrResult.HttpMessage = "POST"; } return(sdTrResult); }