Beispiel #1
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 /// <param name="settings"></param>
 /// <param name="logger"></param>
 /// <param name="shoppingListOwner"></param>
 internal RakutenRecipe(IBaseSettings settings, ILogger logger, IShoppingListOwner shoppingListOwner, IRecipeSitePlugin plugin) : base(settings, logger, shoppingListOwner, plugin)
 {
     this._httpClient = new HttpClient().AddTo(this.Disposable);
     this._httpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36");
     this._httpClient.DefaultRequestHeaders.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
     this._httpClient.DefaultRequestHeaders.Add("Accept-Language", "ja,en-US;q=0.9,en;q=0.8");
     this._httpClient.DefaultRequestHeaders.Add("Connection", "keep-alive");
     this._httpClient.DefaultRequestHeaders.Add("Cache-Control", "max-age=0");
 }
Beispiel #2
0
 /// <summary>
 /// レシピModel生成メソッド
 /// </summary>
 /// <param name="settings"></param>
 /// <param name="logger"></param>
 /// <param name="shoppingListOwner">お買物リスト保持インスタンス</param>
 /// <returns>レシピModelインスタンス</returns>
 public IRecipe CreateRecipeModelInstance(IBaseSettings settings, ILogger logger, IShoppingListOwner shoppingListOwner)
 {
     return(new CookienRecipe(settings, logger, shoppingListOwner, this));
 }
Beispiel #3
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 /// <param name="settings"></param>
 /// <param name="logger"></param>
 /// <param name="shoppingListOwner">お買物リスト保持インスタンス</param>
 /// <param name="plugin">親プラグイン</param>
 internal OriginalRecipe(IBaseSettings settings, ILogger logger, IShoppingListOwner shoppingListOwner, IRecipeSitePlugin plugin) : base(settings, logger, shoppingListOwner, plugin)
 {
 }
Beispiel #4
0
 /// <summary>
 /// レシピIDをキーにしてレシピModelを作成
 /// </summary>
 /// <param name="settings"></param>
 /// <param name="logger"></param>
 /// <param name="recipeId"></param>
 /// <param name="shoppingListOwner"></param>
 /// <returns></returns>
 internal static IRecipe CreateRecipeInstanceFromRecipeId(ISettings settings, ILogger logger, int recipeId, IShoppingListOwner shoppingListOwner = null)
 {
     using (var db = settings.GeneralSettings.GetMealRecipeDbContext()) {
         var pluginName = db.Recipes.SingleOrDefault(x => x.RecipeId == recipeId)?.PluginName;
         return(DispatcherHelper.UIDispatcher.Invoke(() => {
             var recipe = CreateRecipeInstanceFromPluginName(settings, logger, pluginName, shoppingListOwner);
             recipe.Id.Value = recipeId;
             return recipe;
         }));
     }
 }
Beispiel #5
0
 /// <summary>
 /// URLをキーにしてレシピModelを生成
 /// </summary>
 /// <param name="settings"></param>
 /// <param name="logger"></param>
 /// <param name="pluginName">URL</param>
 /// <param name="shoppingListOwner"></param>
 /// <returns>レシピModel</returns>
 internal static IRecipe CreateRecipeInstanceFromPluginName(ISettings settings, ILogger logger, string pluginName, IShoppingListOwner shoppingListOwner = null)
 {
     if (pluginName == null)
     {
         return(null);
     }
     return(DispatcherHelper.UIDispatcher.Invoke(() => {
         return RecipeSitePlugins
         .SingleOrDefault(p => p.GetType().FullName == pluginName)
         ?.CreateRecipeModelInstance(settings, logger, shoppingListOwner);
     }));
 }
Beispiel #6
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 /// <param name="settings"></param>
 /// <param name="logger"></param>
 /// <param name="shoppingListOwner"></param>
 internal WeekCookRecipe(IBaseSettings settings, ILogger logger, IShoppingListOwner shoppingListOwner, IRecipeSitePlugin plugin) : base(settings, logger, shoppingListOwner, plugin)
 {
     this._httpClient = new HttpClient().AddTo(this.Disposable);
 }