Skip to content

Instantly share code, notes, and snippets.

@r-k-b
Created April 5, 2018 03:20
Show Gist options
  • Select an option

  • Save r-k-b/5348477b6eb79b51cc3b25d849d109ee to your computer and use it in GitHub Desktop.

Select an option

Save r-k-b/5348477b6eb79b51cc3b25d849d109ee to your computer and use it in GitHub Desktop.
c# one-offs
// Pick fields from an XML doc to create an object, without having to recreate the whole XML structure in C#
var rawXml = "<ms:list xmlns:ms=\\\"http:\\/\\/www.marketingstudio.com\\/API\\/Gateway\\\"><ms:t101><ms:fld_3000>13045525<\\/ms:fld_3000><ms:fld_3001>Booked<\\/ms:fld_3001><ms:fld_3002>S-2308222<\\/ms:fld_3002><ms:fld_3003>robert.bell@envoyat.com<\\/ms:fld_3003><ms:fld_3004>2018-03-28T14:18:42<\\/ms:fld_3004><ms:fld_3005><\\/ms:fld_3005><ms:fld_3006>2<\\/ms:fld_3006><ms:fld_3007>ADL<\\/ms:fld_3007><ms:fld_3008>S-2308222<\\/ms:fld_3008><ms:fld_3009>MD<\\/ms:fld_3009><ms:fld_3010>N<\\/ms:fld_3010><ms:fld_3011>2018-08-01T19:30:00<\\/ms:fld_3011><ms:fld_3012>SPIRIT17<\\/ms:fld_3012><ms:fld_3013>SAVER<\\/ms:fld_3013><ms:fld_3014>N<\\/ms:fld_3014><ms:fld_3015>N<\\/ms:fld_3015><ms:fld_3016>N<\\/ms:fld_3016><ms:fld_3017>Y<\\/ms:fld_3017><ms:fld_3018>N<\\/ms:fld_3018><ms:fld_3020>N<\\/ms:fld_3020><ms:fld_3021>N<\\/ms:fld_3021><ms:fld_3022>N<\\/ms:fld_3022><ms:fld_3100><\\/ms:fld_3100><\\/ms:t101><\\/ms:list>";
var xml = XDocument.Parse(rawXmL);
var ns = xml.Root.GetNamespaceOfPrefix("ms");
var aprimoFields = (from data in xml.Descendants(ns + "t101")
select new AprimoFields
{
HistoryRecordId = data.Element(ns + "history_record_id").Value,
BookingNumber = data.Element(ns + "fld_3000").Value,
BookingStatus = data.Element(ns + "fld_3001").Value,
BookedByMemberNumber = data.Element(ns + "fld_3002").Value,
BookedByEmailAddress = data.Element(ns + "fld_3003").Value,
BookingDate = data.Element(ns + "fld_3004").Value,
CancellationDate = data.Element(ns + "fld_3005").Value,
NumberOfSailings = data.Element(ns + "fld_3006").Value,
PassengerGuestType = data.Element(ns + "fld_3007").Value,
PassengerMemberNumber = data.Element(ns + "fld_3008").Value,
TravelDirection = data.Element(ns + "fld_3009").Value,
Travelled = data.Element(ns + "fld_3010").Value,
SailingDate = data.Element(ns + "fld_3011").Value,
ProductCode = data.Element(ns + "fld_3012").Value,
ProductType = data.Element(ns + "fld_3013").Value,
DayTicketIncluded = data.Element(ns + "fld_3014").Value,
OceanReclinerIncluded = data.Element(ns + "fld_3015").Value,
DisabledCabinIncluded = data.Element(ns + "fld_3016").Value,
DeluxCabinIncluded = data.Element(ns + "fld_3017").Value,
OtherCabinIncluded = data.Element(ns + "fld_3018").Value,
TowedVehicleIncluded = data.Element(ns + "fld_3020").Value,
KennelsIncluded = data.Element(ns + "fld_3021").Value,
BicylesIncluded = data.Element(ns + "fld_3022").Value,
VehicleType = data.Element(ns + "fld_3100").Value
}).First();
var message = new MessageFormatV1
{
AmsAge = "",
AmsMethod = "",
AmsNonce = "",
// carresID = carresID.ToString(),
// datatypeID = req.GetQueryNameValuePairs().Select(kvp => kvp.Key + ":" + kvp.Value),
// aprimoFields = aprimoFields
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment