/// <summary> /// Gets the result by the provider /// </summary> /// <param name="crri">request information</param> /// <param name="args">request arguments</param> /// <returns>a Func providing the value</returns> public Func<object> GetResult(CustomResourceRequestInfo crri, params FakeMarkupExtensionToken[] args) { var resourceId = args[0].Value as string; if(string.IsNullOrWhiteSpace(resourceId)) throw new FakeMarkupExtensionException("ResourceLoader token 0 is null or whitespace."); var assembly = args.Length == 2 ? args[1].Value as string : null; return (string.IsNullOrWhiteSpace(assembly) ? (Func<object>)(() => ResourceLoader.GetForCurrentView().GetString(resourceId)) : (Func<object>)(() => ResourceLoader.GetForCurrentView($"/{assembly}/Resources").GetString(resourceId))); }
/// <summary> /// Gets the result by the provider /// </summary> /// <param name="crri">request information</param> /// <param name="args">request arguments</param> /// <returns>a Func providing the value</returns> public Func<object> GetResult(CustomResourceRequestInfo crri, params FakeMarkupExtensionToken[] args) { var id = Guid.NewGuid().ToString(); _state[id] = 0; var vals = args.Select(x => x.Value).ToArray(); return () => { if (_state[id] == vals.Length) _state[id] = 0; return vals[_state[id]++]; }; }
/// <summary> /// Gets the result by the provider /// </summary> /// <param name="crri">request information</param> /// <param name="args">request arguments</param> /// <returns>a Func providing the value</returns> public Func <object> GetResult(CustomResourceRequestInfo crri, params FakeMarkupExtensionToken[] args) { var resourceId = args[0].Value as string; if (string.IsNullOrWhiteSpace(resourceId)) { throw new FakeMarkupExtensionException("ResourceLoader token 0 is null or whitespace."); } var assembly = args.Length == 2 ? args[1].Value as string : null; return(string.IsNullOrWhiteSpace(assembly) ? (Func <object>)(() => ResourceLoader.GetForCurrentView().GetString(resourceId)) : (Func <object>)(() => ResourceLoader.GetForCurrentView($"/{assembly}/Resources").GetString(resourceId))); }
/// <summary> /// Gets the result by the provider /// </summary> /// <param name="crri">request information</param> /// <param name="args">request arguments</param> /// <returns>a Func providing the value</returns> public Func <object> GetResult(CustomResourceRequestInfo crri, params FakeMarkupExtensionToken[] args) { var id = Guid.NewGuid().ToString(); _state[id] = 0; var vals = args.Select(x => x.Value).ToArray(); return(() => { if (_state[id] == vals.Length) { _state[id] = 0; } return vals[_state[id]++]; }); }
/// <summary> /// Gets the result by the provider /// </summary> /// <param name="crri">request information</param> /// <param name="args">request arguments</param> /// <returns>a Func providing the value</returns> public Func<object> GetResult(CustomResourceRequestInfo crri, params FakeMarkupExtensionToken[] args) { if(args.Count() != 1) throw new FakeMarkupExtensionException("Invalid token count for Debug provider."); switch (args[0].Value as string) { case "IsInDebugMode": return () => GetConvertedValue(_isInDebugMode, crri.PropertyType); case "!IsInDebugMode": return () => GetConvertedValue(!_isInDebugMode, crri.PropertyType); case "IsDebuggerAttached": return () => GetConvertedValue(_isDebuggerAttached, crri.PropertyType); case "!IsDebuggerAttached": return () => GetConvertedValue(!_isDebuggerAttached, crri.PropertyType); } throw new FakeMarkupExtensionException($"Debug provider doesn't provide result for token {args[0]}"); }
/// <summary> /// Gets the result by the provider /// </summary> /// <param name="crri">request information</param> /// <param name="args">request arguments</param> /// <returns>a Func providing the value</returns> public Func<object> GetResult(CustomResourceRequestInfo crri, params FakeMarkupExtensionToken[] args) { if (args.Length != 6) { throw new FakeMarkupExtensionException($"StaticFakeMarkupExtensionProvider: invalid argument count in {crri.ResourceId}"); } try { var aqn = $"{(string)args[0].Value}, {(string)args[1].Value}, Version={(string)args[2].Value}, Culture={(string)args[3].Value}, PublicKeyToken={(string)args[4].Value}"; var test = Type.GetType(aqn).GetTypeInfo().DeclaredMembers.SingleOrDefault(x => x.Name == (string) args[5].Value); if (test == null) throw new MissingMemberException($"{(string) args[5].Value} does not exist in {aqn}"); return () => test.GetValue(null); } catch (Exception e) { throw new FakeMarkupExtensionException($"StaticFakeMarkupExtensionProvider: type resolution failed in {crri.ResourceId}", e); } }
/// <summary> /// Gets the result by the provider /// </summary> /// <param name="crri">request information</param> /// <param name="args">request arguments</param> /// <returns>a Func providing the value</returns> public Func <object> GetResult(CustomResourceRequestInfo crri, params FakeMarkupExtensionToken[] args) { if (args.Length != 6) { throw new FakeMarkupExtensionException($"StaticFakeMarkupExtensionProvider: invalid argument count in {crri.ResourceId}"); } try { var aqn = $"{(string)args[0].Value}, {(string)args[1].Value}, Version={(string)args[2].Value}, Culture={(string)args[3].Value}, PublicKeyToken={(string)args[4].Value}"; var test = Type.GetType(aqn).GetTypeInfo().DeclaredMembers.SingleOrDefault(x => x.Name == (string)args[5].Value); if (test == null) { throw new MissingMemberException($"{(string) args[5].Value} does not exist in {aqn}"); } return(() => test.GetValue(null)); } catch (Exception e) { throw new FakeMarkupExtensionException($"StaticFakeMarkupExtensionProvider: type resolution failed in {crri.ResourceId}", e); } }
/// <summary> /// Gets the result by the provider /// </summary> /// <param name="crri">request information</param> /// <param name="args">request arguments</param> /// <returns>a Func providing the value</returns> public Func <object> GetResult(CustomResourceRequestInfo crri, params FakeMarkupExtensionToken[] args) { if (args.Count() != 1) { throw new FakeMarkupExtensionException("Invalid token count for Debug provider."); } switch (args[0].Value as string) { case "IsInDebugMode": return(() => GetConvertedValue(_isInDebugMode, crri.PropertyType)); case "!IsInDebugMode": return(() => GetConvertedValue(!_isInDebugMode, crri.PropertyType)); case "IsDebuggerAttached": return(() => GetConvertedValue(_isDebuggerAttached, crri.PropertyType)); case "!IsDebuggerAttached": return(() => GetConvertedValue(!_isDebuggerAttached, crri.PropertyType)); } throw new FakeMarkupExtensionException($"Debug provider doesn't provide result for token {args[0]}"); }
/// <summary> /// Gets the result by the provider /// </summary> /// <param name="crri">request information</param> /// <param name="args">request arguments</param> /// <returns>a Func providing the value</returns> public Func<object> GetResult(CustomResourceRequestInfo crri, params FakeMarkupExtensionToken[] args) { return () => null; }
/// <summary> /// Gets the result by the provider /// </summary> /// <param name="crri">request information</param> /// <param name="args">request arguments</param> /// <returns>a Func providing the value</returns> public Func <object> GetResult(CustomResourceRequestInfo crri, params FakeMarkupExtensionToken[] args) { return(() => null); }