Handler

 

Scenario:

Create handlers to handle user creation based on type

Solution:


  • IUserHandler
    1. public interface IUserHandler
          {
              void CreateUser(User user);
          }
  • UserHandlers
    1. public class InternalUserHandler : IUserHandler
          {
              public void CreateUser(User user)
              {
                  // Create Internal user
              }
          }
      
          public class ExternalUserHandler : IUserHandler
          {
              public void CreateUser(User user)
              {
                  // Create External user
              }
          }
      
          public class UserHandler
          {
              public UserHandler()
              {
              }
      
              public static void CreateUser(User user)
              {
                  .Get<IUserHandler>().InternalCreateUser(user);
              }
      
              private void InternalCreateUser(User user)
              {
                  try
                  {
                      var handler = .Get<IUserHandler>(user.Type.ToString());
                      handler.CreateUser(elasticIndexerEntity);
                  }
                  catch (Exception e)
                  {
                      throw;
                  }
              }
          }
  • Call
    1. static void Main(string[] args)
          {
              var user = new User<Task>();
              UserHandler.CreateUser(user);
          }
      
          //Ninject
          Bind<IUserHandler>().To<InternalUserHandler>().InSingletonScope().Named(User.Type.ToString());

No comments:

Post a Comment

Move Github Sub Repository back to main repo

 -- delete .gitmodules git rm --cached MyProject/Core git commit -m 'Remove myproject_core submodule' rm -rf MyProject/Core git remo...