public async Task <ServiceResponse> SendNotification(CakeOrder cakeOrder)
        {
            var serviceResponse = new ServiceResponse();

            IStatusNotificationRule rule = _notificationRules
                                           .FirstOrDefault(r => r.StatusMatch(cakeOrder.OrderStatus));

            if (rule != null)
            {
                serviceResponse = await rule.Notify(cakeOrder);
            }

            return(serviceResponse);
        }
示例#2
0
        public async Task <ServiceResponse> SendNotification(CakeOrder cakeOrder)
        {
            var serviceResponse = new ServiceResponse();
            // burada bir swittch ile ne tür notification göndereceğimize karar verebilirdik. Ama bunu yerine ruleset tanımlayıp kullandık.


            //yukarıda ctor da mevcut bütün notificationrule ları liste olarak aldık. Şimdi onların içinden bizim ckaeOrder'ın status una eşit olanı bulmamız lazım.

            IStatusNotificationRule rule = _notificationRules.FirstOrDefault(r => r.StatusMatch(cakeOrder.OrderStatus));

            if (rule != null)
            {
                serviceResponse = await rule.Notify(cakeOrder); // kuralı bulduysak burada kuralın notificationunun göndereceğiz.
            }



            return(serviceResponse);
        }