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 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);
        }
Exemple #6
0
        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);
        }