예제 #1
0
 public static Func <Task> GetHandler(
     IAsyncDocumentSession session,
     object @event
     )
 {
     return(@event switch
     {
         V1.OrderCreated e => ()
         => session.Create(e.FromCreated),
         V1.ServiceActivated e => ()
         => UpdateActiveServices(
             e.ClassifiedAdId,
             services => services.Add(
                 new AdActiveServices.Service
         {
             ServiceType = e.ServiceType
         }
                 )
             ),
         V1.ServiceDeactivated e => ()
         => UpdateActiveServices(
             e.ClassifiedAdId,
             services => services.RemoveAll(
                 x => x.ServiceType == e.ServiceType
                 )
             ),
         _ => (Func <Task>)null
     });