public async Task ProcessPurchases()
        {
            try
            {
                _logHandler.LogInfo("Looking for purchases...");
                var purchases = await _repo.GetData();

                if (!purchases.List.Any())
                {
                    _logHandler.LogInfo("No purchases found!");
                    return;
                }
                else
                {
                    _logHandler.LogInfo("Purchases found!");
                }


                var generatedReceipts = new List <IReceipt>();
                foreach (var purchase in purchases.List)
                {
                    var receipt = await _calculator.Compute(purchase);

                    generatedReceipts.Add(receipt);
                }
                await _notifier.Notify(new ReceiptContainer(generatedReceipts));
            }
            catch (Exception e)
            {
                _logHandler.LogError(e.Message);
            }
        }
        public async Task Notify(ReceiptContainer receipts)
        {
            var message = _messageGenerator.Generate(receipts);

            _logHandler.LogInfo(message);
            _ = _command.Launch(message);
        }