示例#1
0
        public static async Task Run([TimerTrigger("0 */30 * * * *")] TimerInfo myTimer, ILogger log, ExecutionContext context)
        {
            log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
            var config = new ConfigurationBuilder()
                         .SetBasePath(context.FunctionAppDirectory)
                         .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
                         .AddEnvironmentVariables()
                         .Build();
            var connectionString = config.GetConnectionString("StorageConnectionString");

            log.LogInformation($"Connection string: {connectionString}");
            var table = await ShoppingTrackerDAL.CreateTableAsync(ShoppingTrackerDAL.SHOPPING_FAVORITES_TABLE, connectionString);

            var favorites = await ShoppingTrackerDAL.GetShoppingFavoriteAsync(table);

            log.LogInformation($"Favorites to analyze: {favorites.Count()}");
            List <string> offers = new List <string>();

            foreach (var favorite in favorites)
            {
                Enum.TryParse(favorite.PartitionKey, out ShopTypeEnum shopType);
                log.LogInformation($"Analyze favorite: {favorite.Name} {favorite.PartitionKey}");
                switch (shopType)
                {
                case ShopTypeEnum.PSStore:
                    var offer = await UpdateFavoritePSStoreAsync(table, favorite, log);

                    if (offer != null)
                    {
                        offers.Add(offer);
                    }
                    break;

                default:
                    log.LogError($"shopType {favorite.PartitionKey} not implemented");
                    break;
                }
            }
            log.LogInformation($"Found {offers.Count()} new price change");
            if (offers.Count() > 0)
            {
                if (await SendMailWithOffers(offers, log))
                {
                    log.LogInformation("Sended mail to recipients");
                }
                else
                {
                    log.LogError("Can't send mail to recipients");
                }
            }
        }
示例#2
0
        public async Task <IEnumerable <ShoppingFavorite> > GetFavorites()
        {
            var table = await ShoppingTrackerDAL.CreateTableAsync(ShoppingTrackerDAL.SHOPPING_FAVORITES_TABLE);

            return(await ShoppingTrackerDAL.GetShoppingFavoriteAsync(table));
        }