Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using ModernShoppingList.Models;
- using Windows.ApplicationModel.DataTransfer;
- using Windows.Foundation;
- namespace ModernShoppingList.Services
- {
- public class ShareService
- {
- public List<Item> ShareData { get; set; }
- #region Constructor
- private static ShareService _instance;
- private static object _instanceSync = new Object();
- protected ShareService()
- {
- Initialize();
- ShareData = new List<Item>();
- }
- public static ShareService GetInstance()
- {
- // This implementation of the singleton design pattern prevents unnecessary locks (using the double if-test)
- if (_instance == null)
- {
- lock (_instanceSync)
- {
- if (_instance == null)
- {
- _instance = new ShareService();
- }
- }
- }
- return _instance;
- }
- #endregion
- #region Private methods
- private void Initialize()
- {
- DataTransferManager dataTransferManager;
- dataTransferManager = DataTransferManager.GetForCurrentView();
- dataTransferManager.DataRequested += new TypedEventHandler<DataTransferManager, DataRequestedEventArgs>(this.DataRequested);
- }
- private async void DataRequested(DataTransferManager sender, DataRequestedEventArgs args)
- {
- if (!ReferenceEquals(this.ShareData, null))
- {
- DataPackage data = args.Request.Data;
- // permet de pouvoir traiter un long traitement sans bloquer la request
- DataRequestDeferral deferral = args.Request.GetDeferral();
- data.Properties.Title = "Partage ModernShoppingList du " + DateTime.Now.ToString();
- // objet de l'email
- data.Properties.Description = "Partage Produit";
- StringBuilder sb = new StringBuilder();
- foreach (Item i in ShareData)
- {
- sb.Append(i.Title);
- sb.Append(" ; ");
- }
- data.SetText(sb.ToString());
- deferral.Complete();
- }
- }
- #endregion
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement