public void HandleCommand(ICommands cmd) { switch (cmd) { case CreateOrder co: CreateOrder command = (CreateOrder)cmd; CustomerName cust = CustomerName.CustomerNameFactory(command.firstName, command.lastName, "hyderabad"); Order o = new Order(command.Orderid, cust, command.Orderdate, command.OrderItems); _repo.NewOrder(o); List <IEvents> events = o.GetChanges().ToList(); foreach (var e in events) { _sender.SendMessage(e); } break; default: break; } }