Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0" encoding="utf-8"?>
- <jobService>
- <job name="Report" storedProcedure="Procedure">
- <procedureParameter name="anotherStoredProcedureParameter1" value="test" />
- <procedureParameter name="anotherStoredProcedureParameter2" value="123456789" />
- <emailSettings subjectName="Subject" attachmentName="SomeFileName1.csv" senderAddress="address@address.com">
- <recipients>
- <address value="address@address.com />
- <address value="address@address.com />
- </recipients>
- <recipientsBcc>
- <address value="address@address.com />
- <address value="address@address.com />
- </recipientsBcc>
- <recipientsCC>
- <address value="address@address.com />
- <address value="address@address.com />
- </recipientsCC>
- </emailSettings>
- </job>
- <job name="Report #2" storedProcedure="Procedure2">
- <procedureParameter name="anotherStoredProcedureParameter1" value="test" />
- <procedureParameter name="anotherStoredProcedureParameter2" value="test" />
- <procedureParameter name="anotherStoredProcedureParameter3" value="test" />
- <procedureParameter name="anotherStoredProcedureParameter4" value="test" />
- <emailSettings subjectName="Subject" attachmentName="SomeFileName1.csv" senderAddress="address@address.com">
- <recipients>
- <address value="address@address.com />
- <address value="address@address.com />
- </recipients>
- <recipientsBcc>
- <address value="address@address.com />
- <address value="address@address.com />
- </recipientsBcc>
- <recipientsCC>
- <address value="address@address.com />
- <address value="address@address.com />
- </recipientsCC>
- </emailSettings>
- </job>
- </jobService>
- public IEnumerable<JobConfiguration> GetJobConfigurations()
- {
- XDocument jobs = XDocument.Load(@"jobs.xml");
- var query = jobs.Descendants("jobService").Descendants("job")
- .Select(x => new JobConfiguration
- {
- Name = x.Attribute("name").Value,
- StoredProcedure = x.Attribute("storedProcedure").Value,
- ProcedureParameters = x.Elements("procedureParameter").ToDictionary(p => p.Attribute("name").Value, p => p.Attribute("value").Value),
- EmailProperties = x.Elements("emailSettings").Select(y => new EmailProperties
- {
- SubjectName = y.Attribute("subjectName").Value,
- AttachmentName = y.Attribute("attachmentName").Value,
- SenderAddress = y.Attribute("senderAddress").Value,
- RecipientAddresses = y.Elements("recipients").Elements("address").Select(z => z.Attribute("value").Value).ToList(),
- RecipientAddressesBcc = y.Elements("recipientsBcc").Elements("address").Select(z => z.Attribute("value").Value).ToList(),
- RecipientAddressesCC = y.Elements("recipientsCC").Elements("address").Select(z => z.Attribute("value").Value).ToList()
- }).ToList()
- }).ToList();
- return query;
- }
- public class JobConfiguration
- {
- public string Name { get; set; }
- public string StoredProcedure { get; set; }
- public IDictionary<string, string> ProcedureParameters { get; set; }
- public EMailProperties EMailProperties { get; set; }
- }
- public class EmailProperties
- {
- public string SenderAddress { get; set; }
- public IList<string> Recipients { get; set; }
- public IList<string> RecipientsBcc { get; set; }
- public IList<string> RecipientsCC { get; set; }
- }
- public class EmailProperties
- {
- public string SenderAddress { get; set; }
- public IList<string> Recipients { get; set; }
- public IList<string> RecipientsBcc { get; set; }
- public IList<string> RecipientsCC { get; set; }
- }
- public class Recepient
- {
- public string EmailAddress { get; set; }
- public bool To { get; set; }
- public bool Cc { get; set; }
- public bool Bcc { get; set; }
- }
- <recipients>
- <recipient to="true" >
- address@address.com
- <recipient />
- <recipient cc="true">
- john.doe@domain.com
- <recipient />
- <recipients />
- <recipient type="to">
- John.doe@domain.com
- <recipient />
- public enum RecepientType
- {
- To,
- Cc,
- Bcc
- }
- public class Recepient
- {
- public string EmailAddress { get; set; }
- public RecepientType Type { get; set; }
- }
- class Program
- {
- static void Main(string[] args)
- {
- var jobs = File.ReadAllText("jobs.json");
- var jobsService = JsonConvert.DeserializeObject<JobService>(jobs);
- }
- }
- public class JobService
- {
- public IList<Job> Jobs { get; set; }
- }
- public class Job
- {
- public IList<ProcedureParameter> ProcedureParameters { get; set; }
- public EmailSettings EmailSettings { get; set; }
- }
- public class Recipient
- {
- public IList<string> Addressess { get; set; }
- }
- public class ProcedureParameter
- {
- public string Name { get; set; }
- public string Value { get; set; }
- }
- public class EmailSettings
- {
- public string SubjectName { get; set; }
- public string AttachmentName { get; set; }
- public IList<string> Recipients { get; set; }
- }
- {
- "Jobs": [
- {
- "Name": "Report",
- "EmailSettings": {
- "SubjectName": "Subject",
- "AttachmentName": "SomeFileName1.csv",
- "Recipients": [
- "address@address.com",
- "address@address.com"
- ]
- }
- }
- ]
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement