// Creates a new token and meta data with provided Guid // Updates the token meta data if already exists. internal TokenModel CreateOrUpdate(System.Guid guid, TokenModel request) { TokenModel retValue = null; if (tokenManager.TryGet(guid, out retValue) == TokenStatus.Available) { retValue = tokenManager.UpdateToken(retValue, request); } else { retValue = tokenManager.AddToken(request); } return(retValue); }
public static void CreateFreedomTile( Guid productId, string navigationUri, string taskName = "_default", Func <HackedShellTileValues> creationProperties = null, int tileTemplate = 5) { //calc = {5B04B775-356B-4AA0-AAF8-6491FFEA5603} var appid = TokenmanagerSingleton.GetAppIDFromProductID(productId); IToken token = null; TokenManager.MakeToken(appid, navigationUri, tileTemplate /* 5 = default*/ /*initialData.TemplateType*/, out token); token.set_InvocationInfo(taskName, navigationUri); //"decompiled default => _default{7C288D6D-AC47-4ac8-A849-9147FF693061}" uint num2 = (uint)(tileTemplate /*initialData.TemplateType*/ << 0x10); uint propertyId = num2 | 0x25; token.set_Property(propertyId, ""); if (creationProperties != null) { var enumKeyPair = creationProperties(); foreach (var property in enumKeyPair) { uint val = (uint)(((TOKEN_PROPERTY_TYPE)(uint)(tileTemplate << 0x10)) | property.Key); token.set_Property(val, property.Value); } } var hr = TokenManager.AddToken(token); ThrowExceptionFromHResult(hr, new InvalidOperationException()); }
static void Main(string[] args) { TokenManager tokenManager = new TokenManager(); tokenManager.AddToken("yukan", "YukanZhang"); DateTime dt = DateTime.Now; tokenManager.VerifyUserTokenValid("yukan", out dt); tokenManager.AddToken("yang", "YangGe"); tokenManager.VerifyUserTokenValid("yukan", out dt); // Test Constructor TokenManager tm2 = new TokenManager(tokenManager); tm2.VerifyUserTokenValid("yang", out dt); tm2.VerifyUserTokenValid("yukan", out dt); Thread.Sleep(20); tokenManager.TokenManagerExit(); tm2.TokenManagerExit(); }
public static void Create(Uri navigationUri, Microsoft.Phone.Shell.ShellTileData initialData) { if (navigationUri == null) { throw new ArgumentNullException("navigationUri"); } if (initialData == null) { throw new ArgumentNullException("initialData"); } if (DEFAULT.Equals(navigationUri)) { throw new ArgumentOutOfRangeException("navigationUri"); } if (navigationUri.IsAbsoluteUri) { throw new ArgumentException("navigationUri cannot be absolute"); } if ((navigationUri.ToString().IndexOf('/') != 0) && (navigationUri.ToString().IndexOf('?') != 0)) { throw new UriFormatException(); } int hr = 0; var data = (Microsoft.Phone.Shell.StandardTileData)initialData; if ((data != null) && IsTileContainsAnyRemoteURL(data)) { var xml = ConstructTokenXmlString(data, navigationUri.ToString()); byte[] tokenXml = HardConvertUnicodeToASCIIByte(xml); var schedule = new PM_LIVETOKEN_SCHEDULE(); schedule.recurrenceType = PM_LIVETOKEN_RECURRENCE_TYPE.PM_LIVETOKEN_RECURRENCE_TYPE_INSTANT; schedule.fUserNoneIdle = true; hr = TokenManager.CreateTokenWithLiveTokenSubscription(AppId, navigationUri.ToString(), ((data.BackgroundImage != null) && IsRemoteUri(data.BackgroundImage)) ? data.BackgroundImage.OriginalString.ToString() : null, ((data.BackBackgroundImage != null) && IsRemoteUri(data.BackBackgroundImage)) ? data.BackBackgroundImage.OriginalString.ToString() : null, ref schedule, tokenXml, (uint)tokenXml.Length); } else { IToken token = null; string taskParameters = navigationUri.ToString(); TokenManager.MakeToken(AppId, navigationUri.ToString(), 5 /* 5 = default*/ /*initialData.TemplateType*/, out token); /*initialData.*/ //SerializeToToken(data, token); if (navigationUri.ToString().IndexOf('/') == 0) { taskParameters = "#" + navigationUri.ToString(); } // Dllimport => 8dc5214e-88fa-4c2d-a379-2cd74fe24b72 token.set_InvocationInfo("_default{7C288D6D-AC47-4ac8-A849-9147FF693061}", taskParameters); uint num2 = (uint)(5 /*initialData.TemplateType*/ << 0x10); uint propertyId = num2 | 0x25; token.set_Property(propertyId, ""); hr = TokenManager.AddToken(token); } ThrowExceptionFromHResult(hr, new InvalidOperationException()); }