Advertisement
Guest User

Untitled

a guest
Sep 5th, 2015
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.37 KB | None | 0 0
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <jobService>
  3.  
  4. <job name="Report" storedProcedure="Procedure">
  5. <procedureParameter name="anotherStoredProcedureParameter1" value="test" />
  6. <procedureParameter name="anotherStoredProcedureParameter2" value="123456789" />
  7.  
  8. <emailSettings subjectName="Subject" attachmentName="SomeFileName1.csv" senderAddress="address@address.com">
  9. <recipients>
  10. <address value="address@address.com />
  11. <address value="address@address.com />
  12. </recipients>
  13.  
  14. <recipientsBcc>
  15. <address value="address@address.com />
  16. <address value="address@address.com />
  17. </recipientsBcc>
  18.  
  19. <recipientsCC>
  20. <address value="address@address.com />
  21. <address value="address@address.com />
  22. </recipientsCC>
  23. </emailSettings>
  24. </job>
  25.  
  26. <job name="Report #2" storedProcedure="Procedure2">
  27. <procedureParameter name="anotherStoredProcedureParameter1" value="test" />
  28. <procedureParameter name="anotherStoredProcedureParameter2" value="test" />
  29. <procedureParameter name="anotherStoredProcedureParameter3" value="test" />
  30. <procedureParameter name="anotherStoredProcedureParameter4" value="test" />
  31.  
  32. <emailSettings subjectName="Subject" attachmentName="SomeFileName1.csv" senderAddress="address@address.com">
  33. <recipients>
  34. <address value="address@address.com />
  35. <address value="address@address.com />
  36. </recipients>
  37.  
  38. <recipientsBcc>
  39. <address value="address@address.com />
  40. <address value="address@address.com />
  41. </recipientsBcc>
  42.  
  43. <recipientsCC>
  44. <address value="address@address.com />
  45. <address value="address@address.com />
  46. </recipientsCC>
  47. </emailSettings>
  48. </job>
  49. </jobService>
  50.  
  51. public IEnumerable<JobConfiguration> GetJobConfigurations()
  52. {
  53. XDocument jobs = XDocument.Load(@"jobs.xml");
  54.  
  55. var query = jobs.Descendants("jobService").Descendants("job")
  56. .Select(x => new JobConfiguration
  57. {
  58. Name = x.Attribute("name").Value,
  59. StoredProcedure = x.Attribute("storedProcedure").Value,
  60. ProcedureParameters = x.Elements("procedureParameter").ToDictionary(p => p.Attribute("name").Value, p => p.Attribute("value").Value),
  61. EmailProperties = x.Elements("emailSettings").Select(y => new EmailProperties
  62. {
  63. SubjectName = y.Attribute("subjectName").Value,
  64. AttachmentName = y.Attribute("attachmentName").Value,
  65. SenderAddress = y.Attribute("senderAddress").Value,
  66. RecipientAddresses = y.Elements("recipients").Elements("address").Select(z => z.Attribute("value").Value).ToList(),
  67. RecipientAddressesBcc = y.Elements("recipientsBcc").Elements("address").Select(z => z.Attribute("value").Value).ToList(),
  68. RecipientAddressesCC = y.Elements("recipientsCC").Elements("address").Select(z => z.Attribute("value").Value).ToList()
  69. }).ToList()
  70. }).ToList();
  71.  
  72. return query;
  73. }
  74.  
  75. public class JobConfiguration
  76. {
  77. public string Name { get; set; }
  78. public string StoredProcedure { get; set; }
  79. public IDictionary<string, string> ProcedureParameters { get; set; }
  80. public EMailProperties EMailProperties { get; set; }
  81. }
  82.  
  83. public class EmailProperties
  84. {
  85. public string SenderAddress { get; set; }
  86. public IList<string> Recipients { get; set; }
  87. public IList<string> RecipientsBcc { get; set; }
  88. public IList<string> RecipientsCC { get; set; }
  89. }
  90.  
  91. public class EmailProperties
  92. {
  93. public string SenderAddress { get; set; }
  94. public IList<string> Recipients { get; set; }
  95. public IList<string> RecipientsBcc { get; set; }
  96. public IList<string> RecipientsCC { get; set; }
  97. }
  98.  
  99. public class Recepient
  100. {
  101. public string EmailAddress { get; set; }
  102. public bool To { get; set; }
  103. public bool Cc { get; set; }
  104. public bool Bcc { get; set; }
  105. }
  106.  
  107. <recipients>
  108. <recipient to="true" >
  109. address@address.com
  110. <recipient />
  111. <recipient cc="true">
  112. john.doe@domain.com
  113. <recipient />
  114. <recipients />
  115.  
  116. <recipient type="to">
  117. John.doe@domain.com
  118. <recipient />
  119.  
  120. public enum RecepientType
  121. {
  122. To,
  123. Cc,
  124. Bcc
  125. }
  126.  
  127. public class Recepient
  128. {
  129. public string EmailAddress { get; set; }
  130. public RecepientType Type { get; set; }
  131. }
  132.  
  133. class Program
  134. {
  135. static void Main(string[] args)
  136. {
  137. var jobs = File.ReadAllText("jobs.json");
  138. var jobsService = JsonConvert.DeserializeObject<JobService>(jobs);
  139. }
  140. }
  141.  
  142. public class JobService
  143. {
  144. public IList<Job> Jobs { get; set; }
  145. }
  146.  
  147. public class Job
  148. {
  149. public IList<ProcedureParameter> ProcedureParameters { get; set; }
  150. public EmailSettings EmailSettings { get; set; }
  151. }
  152.  
  153. public class Recipient
  154. {
  155. public IList<string> Addressess { get; set; }
  156. }
  157.  
  158. public class ProcedureParameter
  159. {
  160. public string Name { get; set; }
  161. public string Value { get; set; }
  162. }
  163.  
  164. public class EmailSettings
  165. {
  166. public string SubjectName { get; set; }
  167. public string AttachmentName { get; set; }
  168. public IList<string> Recipients { get; set; }
  169. }
  170.  
  171. {
  172. "Jobs": [
  173. {
  174. "Name": "Report",
  175. "EmailSettings": {
  176. "SubjectName": "Subject",
  177. "AttachmentName": "SomeFileName1.csv",
  178. "Recipients": [
  179. "address@address.com",
  180. "address@address.com"
  181. ]
  182. }
  183. }
  184. ]
  185. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement