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); }
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); }