Organization
Organization, ComboParty
Create an organization
Example of creating a new organization and setting it's communication preference and address.
using System;
using System.Linq;
using Asi.Soa.ClientServices;
using Asi.Soa.Core.DataContracts;
using Asi.Soa.Membership.DataContracts;
EntityManager entityManager = new EntityManager();
// Create a new organization
var organizationData = new OrganizationData
{
OrganizationName = "New Non-Member Organization",
AdditionalAttributes =
new GenericPropertyDataCollection {new GenericPropertyData("CustomerTypeCode", "NMC")},
Addresses = new FullAddressDataCollection
{
new FullAddressData
{
AddressPurpose = "Address",
CommunicationPreferences = new CommunicationPreferenceDataCollection
{
new CommunicationPreferenceData
{
Reason = "mail"
}
},
Address = new AddressData
{
AddressLines = new AddressLineDataCollection {"1000 Congress Ave."},
CityName = "Austin",
CountrySubEntityCode = "TX",
CountyCode = "US",
PostalCode = "78701"
}
}
}
};
// Save
var results = entityManager.Add(organizationData);
if (results.IsValid)
{
organizationData = results.Entity;
Console.WriteLine("Organization - Id: {0}, Full Name: {1}", organizationData.PartyId,
organizationData.OrganizationName);
}
else
{
Console.WriteLine(results.ValidationResults.Summary);
}
using System;
using System.Net.Http;
using System.Text;
using Newtonsoft.Json;
namespace RestDemo
{
public class Program
{
public void CreateAnOrganizationRestfulExample()
{
// Instantiate new Organization object to be used in REST call to the Organization service
var organizationModel = new OrganizationModel
{
Type = "Asi.Soa.Membership.DataContracts.OrganizationData, Asi.Contracts",
OrganizationName = "Versaton"
};
// Serialize above object to JSON, create HTTP content to be used in POST call
var jsonObject = JsonConvert.SerializeObject(organizationModel, Formatting.None,
new JsonSerializerSettings {NullValueHandling = NullValueHandling.Ignore});
var httpContent = new StringContent(jsonObject, Encoding.UTF8, "application/json");
HttpClient client = new HttpClient();
/*
Add proper authorization header to new HttpClient above
before making below request, see
https://developer.imis.com/v0.1/docs/accessing-the-rest-api#section-direct-access-oauth-20
for an example of how to perform this in C# project
*/
var organization = client.PostAsync("api/organization", httpContent).Result;
if (organization != null && organization.IsSuccessStatusCode)
{
Console.WriteLine("Organization: {0}", organization.Content.ReadAsStringAsync().Result);
}
}
}
internal class OrganizationModel
{
[JsonProperty("$type")]
public string Type { get; set; }
public string OrganizationName { get; set; }
}
}
/*
Organization: {
"$type":"Asi.Soa.Membership.DataContracts.OrganizationData, Asi.Contracts",
"OrganizationName":"Versaton",
"AdditionalAttributes":{
"$type":"Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts",
"$values":[
{
"$type":"Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name":"CustomerTypeDescription",
"Value":"Non Member Company"
},
{
"$type":"Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name":"IsMemberRecord",
"Value":{
"$type":"System.Boolean",
"$value":false
}
},
{
"$type":"Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name":"CustomerTypeCode",
"Value":"NMC"
},
{
"$type":"Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name":"IsMember",
"Value":{
"$type":"System.Boolean",
"$value":false
}
},
{
"$type":"Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name":"IsInactiveMember",
"Value":{
"$type":"System.Boolean",
"$value":false
}
},
{
"$type":"Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name":"AllowAdvanceRenewal",
"Value":{
"$type":"System.Boolean",
"$value":false
}
},
{
"$type":"Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name":"JoinDate",
"Value":"0001-01-01T00:00:00"
}
]
},
"Addresses":{
"$type":"Asi.Soa.Membership.DataContracts.FullAddressDataCollection, Asi.Contracts",
"$values":[
{
"$type":"Asi.Soa.Membership.DataContracts.FullAddressData, Asi.Contracts",
"AdditionalLines":{
"$type":"Asi.Soa.Membership.DataContracts.AddressLineDataCollection, Asi.Contracts",
"$values":[
]
},
"Address":{
"$type":"Asi.Soa.Membership.DataContracts.AddressData, Asi.Contracts",
"AddressId":"13664",
"VerificationStatus":0
},
"AddresseeText":"Versaton\r\n",
"AddressPurpose":"Address",
"CommunicationPreferences":{
"$type":"Asi.Soa.Membership.DataContracts.CommunicationPreferenceDataCollection, Asi.Contracts",
"$values":[
{
"$type":"Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
"Reason":"default"
},
{
"$type":"Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
"Reason":"mail"
},
{
"$type":"Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
"Reason":"bill"
},
{
"$type":"Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
"Reason":"ship"
}
]
},
"FullAddressId":"13664",
"Salutation":{
"$type":"Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
"SalutationMethod":{
"$type":"Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
"PartySalutationMethodId":"main"
},
"Text":"Versaton"
}
}
]
},
"AlternateIds":{
"$type":"Asi.Soa.Core.DataContracts.AlternateIdDataCollection, Asi.Contracts",
"$values":[
{
"$type":"Asi.Soa.Core.DataContracts.AlternateIdData, Asi.Contracts",
"Id":"23189",
"IdType":"Id"
}
]
},
"FinancialInformation":{
"$type":"Asi.Soa.Membership.DataContracts.FinancialInformationData, Asi.Contracts"
},
"Salutations":{
"$type":"Asi.Soa.Membership.DataContracts.PartySalutationDataCollection, Asi.Contracts",
"$values":[
]
},
"SocialNetworks":{
"$type":"Asi.Soa.Membership.DataContracts.PartySocialNetworkDataCollection, Asi.Contracts",
"$values":[
]
},
"CommunicationTypePreferences":{
"$type":"Asi.Soa.Membership.DataContracts.PartyCommunicationTypePreferenceDataCollection, Asi.Contracts",
"$values":[
]
},
"SortIsOverridden":false,
"UpdateInformation":{
"$type":"Asi.Soa.Core.DataContracts.EntityUpdateInformationData, Asi.Contracts",
"CreatedBy":"BRIANM",
"CreatedOn":"2017-12-18T13:41:17.137",
"UpdatedBy":"BRIANM",
"UpdatedOn":"2017-12-18T13:41:17.137"
},
"PartyId":"23189",
"Id":"23189",
"UniformId":"0ff3f9c0-51e5-4b32-aeee-faa9815fc679",
"Status":{
"$type":"Asi.Soa.Membership.DataContracts.PartyStatusData, Asi.Contracts",
"PartyStatusId":"A",
"Name":"Active",
"Description":"Active"
},
"Name":"Versaton",
"Sort":"Versaton"
}
*/
Add an individual to an organization
Add an individual to an existing to an organization
using System;
using System.Linq;
using Asi.Soa.ClientServices;
using Asi.Soa.Core.DataContracts;
using Asi.Soa.Membership.DataContracts;
EntityManager entityManager = new EntityManager();
// Existing Id for the Prodigy Makers International organization
var organizationPartyId = "101";
// Create a new person
var personData = new PersonData
{
PersonName = new PersonNameData {FirstName = "Mike", LastName = "Smith"},
Addresses = new FullAddressDataCollection
{
new FullAddressData
{
AddressPurpose = "Address",
CommunicationPreferences = new CommunicationPreferenceDataCollection
{
new CommunicationPreferenceData
{
Reason = "mail"
}
},
Address = new AddressData
{
AddressLines = new AddressLineDataCollection {"14233 Third Street"},
CityName = "Austin",
CountrySubEntityCode = "TX",
CountyCode = "US",
PostalCode = "78757"
}
}
},
// Add the new person to the existing organization
PrimaryOrganization = new PrimaryOrganizationInformationData {OrganizationPartyId = organizationPartyId}
};
// Save
var results = entityManager.Add(personData);
if (results.IsValid)
{
personData = results.Entity;
Console.WriteLine("Person - Id: {0}, Full Name: {1}, Organization: {2}", personData.PartyId,
personData.PersonName.FullName, personData.PrimaryOrganization.Name);
}
else
{
Console.WriteLine(results.ValidationResults.Summary);
}
using System;
using System.Net.Http;
using System.Text;
using Newtonsoft.Json;
namespace RestDemo
{
public class Program
{
public void AddAnIndividualToOrganizationRestfulExample()
{
// Existing ID for the Western Municipalities organization
const string organizationPartyId = "19762";
// Instantiate new Party object to be used in REST call to the Party service with
// an ID that references an existing Party
var partyModel = new PartyModel
{
Type = "Asi.Soa.Membership.DataContracts.PersonData, Asi.Soa.Membership.Contracts",
PartyId = "18052",
PersonName = new PersonName
{
Type = "Asi.Soa.Membership.DataContracts.PersonNameData, Asi.Soa.Membership.Contracts",
FirstName = "George",
InformalName = "William",
LastName = "Milburn",
NamePrefix = "Mr."
},
PrimaryOrganization = new PrimaryOrganization
{
OrganizationPartyId = organizationPartyId
}
};
// Serialize above object to JSON, create HTTP content to be used in PUT call
var jsonObject = JsonConvert.SerializeObject(partyModel, Formatting.None,
new JsonSerializerSettings {NullValueHandling = NullValueHandling.Ignore});
var httpContent = new StringContent(jsonObject, Encoding.UTF8, "application/json");
HttpClient client = new HttpClient();
/*
Add proper authorization header to new HttpClient above
before making below request, see
https://developer.imis.com/v0.1/docs/accessing-the-rest-api#section-direct-access-oauth-20
for an example of how to perform this in C# project
*/
var party = client.PutAsync($"api/party/{partyModel.PartyId}", httpContent)
.Result;
if (party != null && party.IsSuccessStatusCode)
{
Console.WriteLine("Party: {0}", party.Content.ReadAsStringAsync().Result);
}
}
}
internal class PartyModel
{
[JsonProperty("$type")]
public string Type { get; set; }
public string PartyId { get; set; }
public PersonName PersonName { get; set; }
public PrimaryOrganization PrimaryOrganization { get; set; }
}
internal class PersonName
{
[JsonProperty("$type")]
public string Type { get; set; }
public string FirstName { get; set; }
public string InformalName { get; set; }
public string LastName { get; set; }
public string NamePrefix { get; set; }
}
internal class PrimaryOrganization
{
[JsonProperty("$type")]
public string Type { get; set; }
public string OrganizationPartyId { get; set; }
public string Name { get; set; }
public string Title { get; set; }
}
}
/*
Party: {
"$type":"Asi.Soa.Membership.DataContracts.PersonData, Asi.Contracts",
"PersonName":{
"$type":"Asi.Soa.Membership.DataContracts.PersonNameData, Asi.Contracts",
"FirstName":"George",
"InformalName":"William",
"LastName":"Milburn",
"NamePrefix":"Mr.",
"FullName":"Mr. Brian Murphy"
},
"PrimaryOrganization":{
"$type":"Asi.Soa.Membership.DataContracts.PrimaryOrganizationInformationData, Asi.Contracts",
"OrganizationPartyId":"19762"
},
"AdditionalAttributes":{
"$type":"Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts",
"$values":[
{
"$type":"Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name":"CustomerTypeDescription",
"Value":"Staff"
},
{
"$type":"Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name":"IsMemberRecord",
"Value":{
"$type":"System.Boolean",
"$value":false
}
},
{
"$type":"Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name":"CustomerTypeCode",
"Value":"STF"
},
{
"$type":"Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name":"IsMember",
"Value":{
"$type":"System.Boolean",
"$value":false
}
},
{
"$type":"Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name":"IsInactiveMember",
"Value":{
"$type":"System.Boolean",
"$value":false
}
},
{
"$type":"Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name":"AllowAdvanceRenewal",
"Value":{
"$type":"System.Boolean",
"$value":false
}
},
{
"$type":"Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name":"JoinDate",
"Value":"0001-01-01T00:00:00"
},
{
"$type":"Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
"Name":"ParentPartyId",
"Value":"18013"
}
]
},
"Addresses":{
"$type":"Asi.Soa.Membership.DataContracts.FullAddressDataCollection, Asi.Contracts",
"$values":[
{
"$type":"Asi.Soa.Membership.DataContracts.FullAddressData, Asi.Contracts",
"AdditionalLines":{
"$type":"Asi.Soa.Membership.DataContracts.AddressLineDataCollection, Asi.Contracts",
"$values":[
]
},
"Address":{
"$type":"Asi.Soa.Membership.DataContracts.AddressData, Asi.Contracts",
"AddressId":"8444",
"AddressLines":{
"$type":"Asi.Soa.Membership.DataContracts.AddressLineDataCollection, Asi.Contracts",
"$values":[
"8910 Sylvan Rdg"
]
},
"CityName":"Eden Prairie",
"CountryCode":"US",
"CountryName":"United States",
"CountrySubEntityCode":"MN",
"CountrySubEntityName":"Minnesota",
"FullAddress":"8910 Sylvan Rdg\rEden Prairie, MN 55347-3336\rUNITED STATES",
"PostalCode":"55347-3336",
"VerificationStatus":0
},
"AddresseeText":"Mr. Brian Murphy\r\n8910 Sylvan Rdg\rEden Prairie, MN 55347-3336\rUNITED STATES",
"AddressPurpose":"Address",
"CommunicationPreferences":{
"$type":"Asi.Soa.Membership.DataContracts.CommunicationPreferenceDataCollection, Asi.Contracts",
"$values":[
{
"$type":"Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
"Reason":"default"
},
{
"$type":"Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
"Reason":"mail"
},
{
"$type":"Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
"Reason":"bill"
},
{
"$type":"Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
"Reason":"ship"
}
]
},
"Email":"[email protected]",
"Fax":"(516) 987-0000",
"FullAddressId":"8444",
"Note":"P.S.I. Code 9450",
"Phone":"(516) 987-2222",
"Salutation":{
"$type":"Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
"SalutationMethod":{
"$type":"Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
"PartySalutationMethodId":"main"
},
"Text":"Mr. Brian Murphy"
},
"DisplayName":"Brian",
"DisplayOrganizationTitle":"System Administrator",
"DisplayOrganizationName":"iMIS International"
},
{
"$type":"Asi.Soa.Membership.DataContracts.FullAddressData, Asi.Contracts",
"AdditionalLines":{
"$type":"Asi.Soa.Membership.DataContracts.AddressLineDataCollection, Asi.Contracts",
"$values":[
]
},
"Address":{
"$type":"Asi.Soa.Membership.DataContracts.AddressData, Asi.Contracts",
"AddressId":"13516",
"AddressLines":{
"$type":"Asi.Soa.Membership.DataContracts.AddressLineDataCollection, Asi.Contracts",
"$values":[
"3554 Maple Street"
]
},
"CityName":"Edina",
"CountryCode":"US",
"CountryName":"United States",
"CountrySubEntityCode":"MN",
"CountrySubEntityName":"Minnesota",
"FullAddress":"3554 Maple Street\rEdina, MN \rUNITED STATES",
"VerificationStatus":0
},
"AddresseeText":"Mr. Brian Murphy\r\n3554 Maple Street\rEdina, MN \rUNITED STATES",
"AddressPurpose":"Home Address",
"CommunicationPreferences":{
"$type":"Asi.Soa.Membership.DataContracts.CommunicationPreferenceDataCollection, Asi.Contracts",
"$values":[
]
},
"FullAddressId":"13516",
"Phone":"(917) 555-3434",
"Salutation":{
"$type":"Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
"SalutationMethod":{
"$type":"Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
"PartySalutationMethodId":"main"
},
"Text":"Mr. Brian Murphy"
},
"DisplayName":"Brian",
"DisplayOrganizationTitle":"System Administrator",
"DisplayOrganizationName":"iMIS International"
}
]
},
"AlternateIds":{
"$type":"Asi.Soa.Core.DataContracts.AlternateIdDataCollection, Asi.Contracts",
"$values":[
{
"$type":"Asi.Soa.Core.DataContracts.AlternateIdData, Asi.Contracts",
"Id":"18052",
"IdType":"Id"
}
]
},
"Emails":{
"$type":"Asi.Soa.Membership.DataContracts.EmailDataCollection, Asi.Contracts",
"$values":[
{
"$type":"Asi.Soa.Membership.DataContracts.EmailData, Asi.Contracts",
"Address":"[email protected]",
"EmailType":"_Primary",
"IsPrimary":true
},
{
"$type":"Asi.Soa.Membership.DataContracts.EmailData, Asi.Contracts",
"Address":"[email protected]",
"EmailType":"Address"
}
]
},
"FinancialInformation":{
"$type":"Asi.Soa.Membership.DataContracts.FinancialInformationData, Asi.Contracts"
},
"Phones":{
"$type":"Asi.Soa.Membership.DataContracts.PhoneDataCollection, Asi.Contracts",
"$values":[
{
"$type":"Asi.Soa.Membership.DataContracts.PhoneData, Asi.Contracts",
"Number":"(516) 987-2222",
"PhoneType":"_Work Phone"
},
{
"$type":"Asi.Soa.Membership.DataContracts.PhoneData, Asi.Contracts",
"Number":"(791) 829-6838",
"PhoneType":"Mobile"
},
{
"$type":"Asi.Soa.Membership.DataContracts.PhoneData, Asi.Contracts",
"Number":"(516) 987-2222",
"PhoneType":"Address"
},
{
"$type":"Asi.Soa.Membership.DataContracts.PhoneData, Asi.Contracts",
"Number":"(516) 987-0000",
"PhoneType":"Address Fax"
},
{
"$type":"Asi.Soa.Membership.DataContracts.PhoneData, Asi.Contracts",
"Number":"(917) 555-3434",
"PhoneType":"Home Address"
}
]
},
"Salutations":{
"$type":"Asi.Soa.Membership.DataContracts.PartySalutationDataCollection, Asi.Contracts",
"$values":[
{
"$type":"Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
"SalutationId":"18052",
"SalutationMethod":{
"$type":"Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
"PartySalutationMethodId":"LIST_AS"
},
"Text":"Elaine Beauchamp"
}
]
},
"SortIsOverridden":false,
"UpdateInformation":{
"$type":"Asi.Soa.Core.DataContracts.EntityUpdateInformationData, Asi.Contracts",
"CreatedBy":"AMOORE",
"CreatedOn":"2011-04-07T09:52:19.65",
"UpdatedBy":"AMOORE",
"UpdatedOn":"2012-01-12T11:25:44.787"
},
"PartyId":"18052",
"UniformId":"e2124f8b-39fa-4690-be19-0cfab0a1def5",
"Name":"Mr. Brian Murphy",
"Sort":"Milburn, George"
}
*/
Create a new ComboParty
using System;
using System.Linq;
using Asi.Soa.ClientServices;
using Asi.Soa.Core.DataContracts;
using Asi.Soa.Membership.DataContracts;
EntityManager entityManager = new EntityManager();
// Create a new combo party
var comboParty = new ComboPartyData
{
OrganizationName = "New ComboParty Organization",
PersonName = {FirstName = "William", LastName = "Smith"},
// Set the customer type code to "Company Member"
AdditionalAttributes = new GenericPropertyDataCollection {{"CustomerTypeCode", "CM"}}
};
// Save
ValidateResultsData results = entityManager.Add(comboParty);
if (results.IsValid)
{
comboParty = (ComboPartyData) results.Entity;
Console.WriteLine("ComboParty - Id: {0}, Organization: {1}, Full Name: {2}", comboParty.PartyId,
comboParty.OrganizationName, comboParty.PersonName.FullName);
}
else
{
Console.WriteLine(results.ValidationResults.Summary);
}
Join an organization
using System;
using System.Collections.Generic;
using System.Linq;
using Asi.Soa.ClientServices;
using Asi.Soa.Commerce.DataContracts;
using Asi.Soa.Core.DataContracts;
public void JoinAnOrganizationExample()
{
// Initiailize entity and combo order managers, party ID that will be joining
EntityManager entityManager = new EntityManager();
string partyId = "18052"; // Brian Murphy
ComboOrderManager comboOrderManager = new ComboOrderManager(entityManager, partyId);
var findResultsData =
entityManager.Find(
new QueryData(ItemData.EntityTypeName)
.AddCriteria(new CriteriaData("ItemCode",
OperationData.Equal, "REGULAR_MEMBERSHIP_FEES"))).Result;
// Get membership fees item, set item quantities and construct order line using helper method
ItemData item = findResultsData[0] as ItemData;
Dictionary<string, int> quantities = new Dictionary<string, int>
{
{"REGULAR_MEMBERSHIP_FEES/REG", 1},
{"REGULAR_MEMBERSHIP_FEES/PAC", 1},
{"REGULAR_MEMBERSHIP_FEES/NORTH", 1}
};
OrderLineData orderLine = ConstructOrderLine(item, quantities);
// Add line to combo order manager, and update associated pricing
comboOrderManager.AddLine(orderLine);
comboOrderManager.UpdatePricing();
// Add payment based off of order total
comboOrderManager.ComboOrder.Payments = new RemittanceDataCollection
{
new RemittanceData
{
Amount = new MonetaryAmountData(comboOrderManager.ComboOrder.Order.OrderTotal.Value.Amount,
comboOrderManager.ComboOrder.Order.Currency),
PaymentMethod = new PaymentMethodData {PaymentMethodId = "CASH"}
}
};
// Submit the order, and validate
ValidateResultsData<ComboOrderData> results = comboOrderManager.Submit();
if (results.IsValid)
{
Console.WriteLine("Grand total: {0}", comboOrderManager.ComboOrder.Order.OrderTotal);
}
else
{
Console.WriteLine(results.ValidationResults.Summary);
}
}
/// <summary>
/// Construct an order line from a product
/// </summary>
/// <param name="item"></param>
/// <param name="quantitiesOrdered"></param>
internal static OrderLineData ConstructOrderLine(ItemSummaryData item,
Dictionary<string, int> quantitiesOrdered)
{
OrderLineData orderLine = new OrderLineData
{
Item = item
};
ItemSetItemData itemSet = item as ItemSetItemData;
if (itemSet != null)
{
orderLine.ChildOrderLines = new OrderLineDataCollection();
foreach (ItemSetComponentData component in itemSet.Components)
{
orderLine.ChildOrderLines.Add(ConstructOrderLine(component.Item, quantitiesOrdered));
}
if (orderLine.ChildOrderLines.Any(
x => x.QuantityOrdered.HasValue && x.QuantityOrdered.Value.Amount > 0m))
{
orderLine.QuantityOrdered = new QuantityData(1m);
}
}
else
{
int quantity;
if (quantitiesOrdered.TryGetValue(item.ItemCode, out quantity))
{
orderLine.QuantityOrdered = new QuantityData(quantity);
}
}
return orderLine;
}
Updated about 7 years ago