Advertisement
Guest User

Untitled

a guest
Nov 26th, 2015
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.45 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using ModernShoppingList.Models;
  7. using Windows.ApplicationModel.DataTransfer;
  8. using Windows.Foundation;
  9.  
  10. namespace ModernShoppingList.Services
  11. {
  12. public class ShareService
  13. {
  14. public List<Item> ShareData { get; set; }
  15.  
  16. #region Constructor
  17. private static ShareService _instance;
  18. private static object _instanceSync = new Object();
  19.  
  20. protected ShareService()
  21. {
  22. Initialize();
  23. ShareData = new List<Item>();
  24. }
  25.  
  26. public static ShareService GetInstance()
  27. {
  28. // This implementation of the singleton design pattern prevents unnecessary locks (using the double if-test)
  29. if (_instance == null)
  30. {
  31. lock (_instanceSync)
  32. {
  33. if (_instance == null)
  34. {
  35. _instance = new ShareService();
  36. }
  37. }
  38. }
  39. return _instance;
  40. }
  41. #endregion
  42.  
  43. #region Private methods
  44. private void Initialize()
  45. {
  46. DataTransferManager dataTransferManager;
  47. dataTransferManager = DataTransferManager.GetForCurrentView();
  48. dataTransferManager.DataRequested += new TypedEventHandler<DataTransferManager, DataRequestedEventArgs>(this.DataRequested);
  49.  
  50. }
  51.  
  52. private async void DataRequested(DataTransferManager sender, DataRequestedEventArgs args)
  53. {
  54. if (!ReferenceEquals(this.ShareData, null))
  55. {
  56. DataPackage data = args.Request.Data;
  57.  
  58. // permet de pouvoir traiter un long traitement sans bloquer la request
  59. DataRequestDeferral deferral = args.Request.GetDeferral();
  60.  
  61. data.Properties.Title = "Partage ModernShoppingList du " + DateTime.Now.ToString();
  62. // objet de l'email
  63. data.Properties.Description = "Partage Produit";
  64.  
  65. StringBuilder sb = new StringBuilder();
  66.  
  67. foreach (Item i in ShareData)
  68. {
  69. sb.Append(i.Title);
  70. sb.Append(" ; ");
  71. }
  72.  
  73. data.SetText(sb.ToString());
  74.  
  75. deferral.Complete();
  76. }
  77. }
  78. #endregion
  79. }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement