Design Web API with Command Handler The Next CEO of Stack Overflow

Car headlights in a world without electricity

Why did Batya get tzaraat?

Salesforce opportunity stages

Strange use of "whether ... than ..." in official text

Can Sri Krishna be called 'a person'?

Would a grinding machine be a simple and workable propulsion system for an interplanetary spacecraft?

Can this transistor (2n2222) take 6V on emitter-base? Am I reading datasheet incorrectly?

Find the majority element, which appears more than half the time

About implicitly convert type 'int' to 'char', why it is different between `s[i] += s[j]` and `s[i] = s[i]+s[j] `

Is it okay to majorly distort historical facts while writing a fiction story?

Is it correct to say moon starry nights?

Simplify trigonometric expression using trigonometric identities

Direct Implications Between USA and UK in Event of No-Deal Brexit

How do I secure a TV wall mount?

What difference does it make matching a word with/without a trailing whitespace?

Finitely generated matrix groups whose eigenvalues are all algebraic

It it possible to avoid kiwi.com's automatic online check-in and instead do it manually by yourself?

Could a dragon use its wings to swim?

Compilation of a 2d array and a 1d array

What steps are necessary to read a Modern SSD in Medieval Europe?

Incomplete cube

Masking layers by a vector polygon layer in QGIS

Prodigo = pro + ago?

Can I cast Thunderwave and be at the center of its bottom face, but not be affected by it?



Design Web API with Command Handler



The Next CEO of Stack Overflow










0












$begingroup$


I'm setting up new API to Setup LocalAccounts and need your advice on how to design the API with CQS



some background :
LocalAccount Is Account that related to private customer or corporate customer and contain Debit or credit Account details with one or more cards (plastic and 1 virtual )
Example of LocalAccounts : PrivateDebitLocalAccount , CorpoeateCreditLocalAccount PrivateCreditLocalAccount ...



I want to use CQS to expose command for the Action on those entity : AddNewLocalAccountCommand, UpadteLocalAccountCommand and so on ..



My client doesn't want to work with lots of commands for the same action : 4 command to AddNew for PrivatedebitLocalAccount, CorpoeateCreditLocalAccount,
CorpoeateDebitLocalAccount, PrivateCreditLocalAccount and then use 4 command to update and 4 Delete commands ...and so on



So I decided to Expose one Command for create all 4 types of localAccount AddNewLocalAccount that will get flat object with all fields and in the WebAPI inside I map the request to my command (I Do this for Backward comparability on the Contract changes for My command ) and send it to Handler using MediatR library By Jimmy Bogard.
In The handler I Call AggrigateLocalAccountServices with 2 dependencies of ServiceFactories to get back the Domain object i need :AccountServiceFactory and CustomerServiceFact, this will help to get the relevant domain object from the command : Customer (private or customer) and Account based on AccountType in the command (credit or debit)



Example of AddNewCorporateLocalAccountRequest



 var LocalAccountData = new LocalAccountData(Guid.NewGuid())

CustomerType = CustomerTypes.Corporate,
AccountTypes = AccountTypes.Credit,
CreditLimit = 200,
Deposit = 100,
CompanyId = "43545",
MonthlyLimit = 50,
FirstName = "ddd",
LastName = "deee",
;


//In My Controller WebApi I Maped the Request to command even it is mixed
//fields from Debit and credit ..



var command = new AddNewLocalAccountCommand(LocalAccountData.Id == 
Guid.Empty ? Guid.NewGuid() : LocalAccountData.Id)

CompanyId = LocalAccountData.CompanyId, //Corporate field
CustomerType = LocalAccountData.CustomerType, //define the
CustomerType (private/Corporate) for LocalAccountFactory (customer)
AccountTypes = LocalAccountData.AccountTypes,//define the
AccountType(debit/credit) for AccountFactory (customer)
CreditLimit = LocalAccountData.CreditLimit, //Credit data
;
//send to commandHandler using Mediatr :
var x = new AddNewLocalAccountCommandHandler(
new LocalAccountAggregator(
localAccountServiceFactory, accountFactoryService));

var result = mediatR.Send(command);
};


//In my commandHandler method



 public void Handle(AddNewLocalAccountCommand command)
// map again all data to local account DTO so i can ask the factories in AggRoot to extract the domain i need
var localAccountData = new LocalAccountData(command.Id)

CustomerType = command.CustomerType,
AccountTypes = command.AccountTypes,
Balance = command.Balance,
....
;
var customerAccontId =
this._localAccountAggregator
.AddNewLocalAccount(localAccountData);
;


// My Agg root class I expose interface for adding the localAccount and this is how is the implementation



public virtual Guid AddNewLocalAccount(ILocalAccountData data)

var localAccount = CreateLocalAccount(data);
var vc = CreateVirtualCard();
localAccount.Accounts.Cards.Add(vc);
// now I need to decide where to map from localAccount to my EF
// object, here or should it be inside the Service that know the
// right type of tables to be mapped
customerDto = Mapper.Map<localAccount, Customer>(request);
_context.Customers.Add(customerDto);
_context.SaveChanges();
return Guid.NewGuid();


private ILocalAccount CreateLocalAccount (ILocalAccountData data)

var accountService =
_accountFactoryService.GetService(data.AccountTypes);

var localAccountFactoryService =
_localAccountFactoryService.GetService(data);

//create method will be call from the right LocalAccountService
that get the right domain object.
return localAccountFactoryService.Create(data);



//here is one of the service that can create the right localAccount Type based on the data from client :



 public class CorporateLocalAccountService : ILocalAccountService

private IAccountService _account;

public CorporateLocalAccountService(IAccountService account)

_account = account;

public ILocalAccount CreateData(ILocalAccountData data)

return new CorporateLocalAccount(new Entity(data.Id))

Account = _account.Create(data),
Contact = new Person LastName = data.LastName, FirstName = data.FirstName, MobilePhoneNumber = data.MobilePhone ,
CompanyId = data.CompanyId,
CompanyName = data.CompanyName,
;







}



I have some question about this design :



1.My Client Doesn't cannot relay know my internal Domain so they can do mistake and send fields of debit account in Credit Account request as i Use one container object , Beside sending JSON example of possible valid contract Or Change from Flat fields to object Inside my LocalAccountData : DebitAccountData,CreditAccountData, PrivateData,CorporateData, How can i tell my client not do do mistake in the request? Should I change my API request ?
2.In my CorporateLocalAccountService i return the domain object to the aggregate , should this class create the data in DB using EF or just return domain model and Aggregate will create it ?
3.I'm Working with the Command Query and in CommandHander I call the Aggregate Object that need to create localAccount (insert data to 4-5 tables and create virtual Card as a result of creating the LocalAccount and send it back to client ) How Do I work with my EntityFramework ? I mean do I need repositories or should i call the DBContext and use the EF objects inside the Aggregate directly and avoid Repositories ? //
I warp the commandHandler with TransactionCommandHandler so Do I need the transaction scope in the Aggregate class or i can use the transaction scope from my commandHandler decorator ?



Thanks









share







New contributor




mreizik is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$
















    0












    $begingroup$


    I'm setting up new API to Setup LocalAccounts and need your advice on how to design the API with CQS



    some background :
    LocalAccount Is Account that related to private customer or corporate customer and contain Debit or credit Account details with one or more cards (plastic and 1 virtual )
    Example of LocalAccounts : PrivateDebitLocalAccount , CorpoeateCreditLocalAccount PrivateCreditLocalAccount ...



    I want to use CQS to expose command for the Action on those entity : AddNewLocalAccountCommand, UpadteLocalAccountCommand and so on ..



    My client doesn't want to work with lots of commands for the same action : 4 command to AddNew for PrivatedebitLocalAccount, CorpoeateCreditLocalAccount,
    CorpoeateDebitLocalAccount, PrivateCreditLocalAccount and then use 4 command to update and 4 Delete commands ...and so on



    So I decided to Expose one Command for create all 4 types of localAccount AddNewLocalAccount that will get flat object with all fields and in the WebAPI inside I map the request to my command (I Do this for Backward comparability on the Contract changes for My command ) and send it to Handler using MediatR library By Jimmy Bogard.
    In The handler I Call AggrigateLocalAccountServices with 2 dependencies of ServiceFactories to get back the Domain object i need :AccountServiceFactory and CustomerServiceFact, this will help to get the relevant domain object from the command : Customer (private or customer) and Account based on AccountType in the command (credit or debit)



    Example of AddNewCorporateLocalAccountRequest



     var LocalAccountData = new LocalAccountData(Guid.NewGuid())

    CustomerType = CustomerTypes.Corporate,
    AccountTypes = AccountTypes.Credit,
    CreditLimit = 200,
    Deposit = 100,
    CompanyId = "43545",
    MonthlyLimit = 50,
    FirstName = "ddd",
    LastName = "deee",
    ;


    //In My Controller WebApi I Maped the Request to command even it is mixed
    //fields from Debit and credit ..



    var command = new AddNewLocalAccountCommand(LocalAccountData.Id == 
    Guid.Empty ? Guid.NewGuid() : LocalAccountData.Id)

    CompanyId = LocalAccountData.CompanyId, //Corporate field
    CustomerType = LocalAccountData.CustomerType, //define the
    CustomerType (private/Corporate) for LocalAccountFactory (customer)
    AccountTypes = LocalAccountData.AccountTypes,//define the
    AccountType(debit/credit) for AccountFactory (customer)
    CreditLimit = LocalAccountData.CreditLimit, //Credit data
    ;
    //send to commandHandler using Mediatr :
    var x = new AddNewLocalAccountCommandHandler(
    new LocalAccountAggregator(
    localAccountServiceFactory, accountFactoryService));

    var result = mediatR.Send(command);
    };


    //In my commandHandler method



     public void Handle(AddNewLocalAccountCommand command)
    // map again all data to local account DTO so i can ask the factories in AggRoot to extract the domain i need
    var localAccountData = new LocalAccountData(command.Id)

    CustomerType = command.CustomerType,
    AccountTypes = command.AccountTypes,
    Balance = command.Balance,
    ....
    ;
    var customerAccontId =
    this._localAccountAggregator
    .AddNewLocalAccount(localAccountData);
    ;


    // My Agg root class I expose interface for adding the localAccount and this is how is the implementation



    public virtual Guid AddNewLocalAccount(ILocalAccountData data)

    var localAccount = CreateLocalAccount(data);
    var vc = CreateVirtualCard();
    localAccount.Accounts.Cards.Add(vc);
    // now I need to decide where to map from localAccount to my EF
    // object, here or should it be inside the Service that know the
    // right type of tables to be mapped
    customerDto = Mapper.Map<localAccount, Customer>(request);
    _context.Customers.Add(customerDto);
    _context.SaveChanges();
    return Guid.NewGuid();


    private ILocalAccount CreateLocalAccount (ILocalAccountData data)

    var accountService =
    _accountFactoryService.GetService(data.AccountTypes);

    var localAccountFactoryService =
    _localAccountFactoryService.GetService(data);

    //create method will be call from the right LocalAccountService
    that get the right domain object.
    return localAccountFactoryService.Create(data);



    //here is one of the service that can create the right localAccount Type based on the data from client :



     public class CorporateLocalAccountService : ILocalAccountService

    private IAccountService _account;

    public CorporateLocalAccountService(IAccountService account)

    _account = account;

    public ILocalAccount CreateData(ILocalAccountData data)

    return new CorporateLocalAccount(new Entity(data.Id))

    Account = _account.Create(data),
    Contact = new Person LastName = data.LastName, FirstName = data.FirstName, MobilePhoneNumber = data.MobilePhone ,
    CompanyId = data.CompanyId,
    CompanyName = data.CompanyName,
    ;







    }



    I have some question about this design :



    1.My Client Doesn't cannot relay know my internal Domain so they can do mistake and send fields of debit account in Credit Account request as i Use one container object , Beside sending JSON example of possible valid contract Or Change from Flat fields to object Inside my LocalAccountData : DebitAccountData,CreditAccountData, PrivateData,CorporateData, How can i tell my client not do do mistake in the request? Should I change my API request ?
    2.In my CorporateLocalAccountService i return the domain object to the aggregate , should this class create the data in DB using EF or just return domain model and Aggregate will create it ?
    3.I'm Working with the Command Query and in CommandHander I call the Aggregate Object that need to create localAccount (insert data to 4-5 tables and create virtual Card as a result of creating the LocalAccount and send it back to client ) How Do I work with my EntityFramework ? I mean do I need repositories or should i call the DBContext and use the EF objects inside the Aggregate directly and avoid Repositories ? //
    I warp the commandHandler with TransactionCommandHandler so Do I need the transaction scope in the Aggregate class or i can use the transaction scope from my commandHandler decorator ?



    Thanks









    share







    New contributor




    mreizik is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.







    $endgroup$














      0












      0








      0





      $begingroup$


      I'm setting up new API to Setup LocalAccounts and need your advice on how to design the API with CQS



      some background :
      LocalAccount Is Account that related to private customer or corporate customer and contain Debit or credit Account details with one or more cards (plastic and 1 virtual )
      Example of LocalAccounts : PrivateDebitLocalAccount , CorpoeateCreditLocalAccount PrivateCreditLocalAccount ...



      I want to use CQS to expose command for the Action on those entity : AddNewLocalAccountCommand, UpadteLocalAccountCommand and so on ..



      My client doesn't want to work with lots of commands for the same action : 4 command to AddNew for PrivatedebitLocalAccount, CorpoeateCreditLocalAccount,
      CorpoeateDebitLocalAccount, PrivateCreditLocalAccount and then use 4 command to update and 4 Delete commands ...and so on



      So I decided to Expose one Command for create all 4 types of localAccount AddNewLocalAccount that will get flat object with all fields and in the WebAPI inside I map the request to my command (I Do this for Backward comparability on the Contract changes for My command ) and send it to Handler using MediatR library By Jimmy Bogard.
      In The handler I Call AggrigateLocalAccountServices with 2 dependencies of ServiceFactories to get back the Domain object i need :AccountServiceFactory and CustomerServiceFact, this will help to get the relevant domain object from the command : Customer (private or customer) and Account based on AccountType in the command (credit or debit)



      Example of AddNewCorporateLocalAccountRequest



       var LocalAccountData = new LocalAccountData(Guid.NewGuid())

      CustomerType = CustomerTypes.Corporate,
      AccountTypes = AccountTypes.Credit,
      CreditLimit = 200,
      Deposit = 100,
      CompanyId = "43545",
      MonthlyLimit = 50,
      FirstName = "ddd",
      LastName = "deee",
      ;


      //In My Controller WebApi I Maped the Request to command even it is mixed
      //fields from Debit and credit ..



      var command = new AddNewLocalAccountCommand(LocalAccountData.Id == 
      Guid.Empty ? Guid.NewGuid() : LocalAccountData.Id)

      CompanyId = LocalAccountData.CompanyId, //Corporate field
      CustomerType = LocalAccountData.CustomerType, //define the
      CustomerType (private/Corporate) for LocalAccountFactory (customer)
      AccountTypes = LocalAccountData.AccountTypes,//define the
      AccountType(debit/credit) for AccountFactory (customer)
      CreditLimit = LocalAccountData.CreditLimit, //Credit data
      ;
      //send to commandHandler using Mediatr :
      var x = new AddNewLocalAccountCommandHandler(
      new LocalAccountAggregator(
      localAccountServiceFactory, accountFactoryService));

      var result = mediatR.Send(command);
      };


      //In my commandHandler method



       public void Handle(AddNewLocalAccountCommand command)
      // map again all data to local account DTO so i can ask the factories in AggRoot to extract the domain i need
      var localAccountData = new LocalAccountData(command.Id)

      CustomerType = command.CustomerType,
      AccountTypes = command.AccountTypes,
      Balance = command.Balance,
      ....
      ;
      var customerAccontId =
      this._localAccountAggregator
      .AddNewLocalAccount(localAccountData);
      ;


      // My Agg root class I expose interface for adding the localAccount and this is how is the implementation



      public virtual Guid AddNewLocalAccount(ILocalAccountData data)

      var localAccount = CreateLocalAccount(data);
      var vc = CreateVirtualCard();
      localAccount.Accounts.Cards.Add(vc);
      // now I need to decide where to map from localAccount to my EF
      // object, here or should it be inside the Service that know the
      // right type of tables to be mapped
      customerDto = Mapper.Map<localAccount, Customer>(request);
      _context.Customers.Add(customerDto);
      _context.SaveChanges();
      return Guid.NewGuid();


      private ILocalAccount CreateLocalAccount (ILocalAccountData data)

      var accountService =
      _accountFactoryService.GetService(data.AccountTypes);

      var localAccountFactoryService =
      _localAccountFactoryService.GetService(data);

      //create method will be call from the right LocalAccountService
      that get the right domain object.
      return localAccountFactoryService.Create(data);



      //here is one of the service that can create the right localAccount Type based on the data from client :



       public class CorporateLocalAccountService : ILocalAccountService

      private IAccountService _account;

      public CorporateLocalAccountService(IAccountService account)

      _account = account;

      public ILocalAccount CreateData(ILocalAccountData data)

      return new CorporateLocalAccount(new Entity(data.Id))

      Account = _account.Create(data),
      Contact = new Person LastName = data.LastName, FirstName = data.FirstName, MobilePhoneNumber = data.MobilePhone ,
      CompanyId = data.CompanyId,
      CompanyName = data.CompanyName,
      ;







      }



      I have some question about this design :



      1.My Client Doesn't cannot relay know my internal Domain so they can do mistake and send fields of debit account in Credit Account request as i Use one container object , Beside sending JSON example of possible valid contract Or Change from Flat fields to object Inside my LocalAccountData : DebitAccountData,CreditAccountData, PrivateData,CorporateData, How can i tell my client not do do mistake in the request? Should I change my API request ?
      2.In my CorporateLocalAccountService i return the domain object to the aggregate , should this class create the data in DB using EF or just return domain model and Aggregate will create it ?
      3.I'm Working with the Command Query and in CommandHander I call the Aggregate Object that need to create localAccount (insert data to 4-5 tables and create virtual Card as a result of creating the LocalAccount and send it back to client ) How Do I work with my EntityFramework ? I mean do I need repositories or should i call the DBContext and use the EF objects inside the Aggregate directly and avoid Repositories ? //
      I warp the commandHandler with TransactionCommandHandler so Do I need the transaction scope in the Aggregate class or i can use the transaction scope from my commandHandler decorator ?



      Thanks









      share







      New contributor




      mreizik is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.







      $endgroup$




      I'm setting up new API to Setup LocalAccounts and need your advice on how to design the API with CQS



      some background :
      LocalAccount Is Account that related to private customer or corporate customer and contain Debit or credit Account details with one or more cards (plastic and 1 virtual )
      Example of LocalAccounts : PrivateDebitLocalAccount , CorpoeateCreditLocalAccount PrivateCreditLocalAccount ...



      I want to use CQS to expose command for the Action on those entity : AddNewLocalAccountCommand, UpadteLocalAccountCommand and so on ..



      My client doesn't want to work with lots of commands for the same action : 4 command to AddNew for PrivatedebitLocalAccount, CorpoeateCreditLocalAccount,
      CorpoeateDebitLocalAccount, PrivateCreditLocalAccount and then use 4 command to update and 4 Delete commands ...and so on



      So I decided to Expose one Command for create all 4 types of localAccount AddNewLocalAccount that will get flat object with all fields and in the WebAPI inside I map the request to my command (I Do this for Backward comparability on the Contract changes for My command ) and send it to Handler using MediatR library By Jimmy Bogard.
      In The handler I Call AggrigateLocalAccountServices with 2 dependencies of ServiceFactories to get back the Domain object i need :AccountServiceFactory and CustomerServiceFact, this will help to get the relevant domain object from the command : Customer (private or customer) and Account based on AccountType in the command (credit or debit)



      Example of AddNewCorporateLocalAccountRequest



       var LocalAccountData = new LocalAccountData(Guid.NewGuid())

      CustomerType = CustomerTypes.Corporate,
      AccountTypes = AccountTypes.Credit,
      CreditLimit = 200,
      Deposit = 100,
      CompanyId = "43545",
      MonthlyLimit = 50,
      FirstName = "ddd",
      LastName = "deee",
      ;


      //In My Controller WebApi I Maped the Request to command even it is mixed
      //fields from Debit and credit ..



      var command = new AddNewLocalAccountCommand(LocalAccountData.Id == 
      Guid.Empty ? Guid.NewGuid() : LocalAccountData.Id)

      CompanyId = LocalAccountData.CompanyId, //Corporate field
      CustomerType = LocalAccountData.CustomerType, //define the
      CustomerType (private/Corporate) for LocalAccountFactory (customer)
      AccountTypes = LocalAccountData.AccountTypes,//define the
      AccountType(debit/credit) for AccountFactory (customer)
      CreditLimit = LocalAccountData.CreditLimit, //Credit data
      ;
      //send to commandHandler using Mediatr :
      var x = new AddNewLocalAccountCommandHandler(
      new LocalAccountAggregator(
      localAccountServiceFactory, accountFactoryService));

      var result = mediatR.Send(command);
      };


      //In my commandHandler method



       public void Handle(AddNewLocalAccountCommand command)
      // map again all data to local account DTO so i can ask the factories in AggRoot to extract the domain i need
      var localAccountData = new LocalAccountData(command.Id)

      CustomerType = command.CustomerType,
      AccountTypes = command.AccountTypes,
      Balance = command.Balance,
      ....
      ;
      var customerAccontId =
      this._localAccountAggregator
      .AddNewLocalAccount(localAccountData);
      ;


      // My Agg root class I expose interface for adding the localAccount and this is how is the implementation



      public virtual Guid AddNewLocalAccount(ILocalAccountData data)

      var localAccount = CreateLocalAccount(data);
      var vc = CreateVirtualCard();
      localAccount.Accounts.Cards.Add(vc);
      // now I need to decide where to map from localAccount to my EF
      // object, here or should it be inside the Service that know the
      // right type of tables to be mapped
      customerDto = Mapper.Map<localAccount, Customer>(request);
      _context.Customers.Add(customerDto);
      _context.SaveChanges();
      return Guid.NewGuid();


      private ILocalAccount CreateLocalAccount (ILocalAccountData data)

      var accountService =
      _accountFactoryService.GetService(data.AccountTypes);

      var localAccountFactoryService =
      _localAccountFactoryService.GetService(data);

      //create method will be call from the right LocalAccountService
      that get the right domain object.
      return localAccountFactoryService.Create(data);



      //here is one of the service that can create the right localAccount Type based on the data from client :



       public class CorporateLocalAccountService : ILocalAccountService

      private IAccountService _account;

      public CorporateLocalAccountService(IAccountService account)

      _account = account;

      public ILocalAccount CreateData(ILocalAccountData data)

      return new CorporateLocalAccount(new Entity(data.Id))

      Account = _account.Create(data),
      Contact = new Person LastName = data.LastName, FirstName = data.FirstName, MobilePhoneNumber = data.MobilePhone ,
      CompanyId = data.CompanyId,
      CompanyName = data.CompanyName,
      ;







      }



      I have some question about this design :



      1.My Client Doesn't cannot relay know my internal Domain so they can do mistake and send fields of debit account in Credit Account request as i Use one container object , Beside sending JSON example of possible valid contract Or Change from Flat fields to object Inside my LocalAccountData : DebitAccountData,CreditAccountData, PrivateData,CorporateData, How can i tell my client not do do mistake in the request? Should I change my API request ?
      2.In my CorporateLocalAccountService i return the domain object to the aggregate , should this class create the data in DB using EF or just return domain model and Aggregate will create it ?
      3.I'm Working with the Command Query and in CommandHander I call the Aggregate Object that need to create localAccount (insert data to 4-5 tables and create virtual Card as a result of creating the LocalAccount and send it back to client ) How Do I work with my EntityFramework ? I mean do I need repositories or should i call the DBContext and use the EF objects inside the Aggregate directly and avoid Repositories ? //
      I warp the commandHandler with TransactionCommandHandler so Do I need the transaction scope in the Aggregate class or i can use the transaction scope from my commandHandler decorator ?



      Thanks







      c# asp.net-web-api ddd





      share







      New contributor




      mreizik is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.










      share







      New contributor




      mreizik is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.








      share



      share






      New contributor




      mreizik is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 2 mins ago









      mreizikmreizik

      1




      1




      New contributor




      mreizik is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      mreizik is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      mreizik is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.




















          0






          active

          oldest

          votes












          Your Answer





          StackExchange.ifUsing("editor", function ()
          return StackExchange.using("mathjaxEditing", function ()
          StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
          StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
          );
          );
          , "mathjax-editing");

          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "196"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );






          mreizik is a new contributor. Be nice, and check out our Code of Conduct.









          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f216688%2fdesign-web-api-with-command-handler%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          mreizik is a new contributor. Be nice, and check out our Code of Conduct.









          draft saved

          draft discarded


















          mreizik is a new contributor. Be nice, and check out our Code of Conduct.












          mreizik is a new contributor. Be nice, and check out our Code of Conduct.











          mreizik is a new contributor. Be nice, and check out our Code of Conduct.














          Thanks for contributing an answer to Code Review Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          Use MathJax to format equations. MathJax reference.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f216688%2fdesign-web-api-with-command-handler%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          名間水力發電廠 目录 沿革 設施 鄰近設施 註釋 外部連結 导航菜单23°50′10″N 120°42′41″E / 23.83611°N 120.71139°E / 23.83611; 120.7113923°50′10″N 120°42′41″E / 23.83611°N 120.71139°E / 23.83611; 120.71139計畫概要原始内容臺灣第一座BOT 模式開發的水力發電廠-名間水力電廠名間水力發電廠 水利署首件BOT案原始内容《小檔案》名間電廠 首座BOT水力發電廠原始内容名間電廠BOT - 經濟部水利署中區水資源局

          Is my guitar’s action too high? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)Strings too stiff on a recently purchased acoustic guitar | Cort AD880CEIs the action of my guitar really high?Μy little finger is too weak to play guitarWith guitar, how long should I give my fingers to strengthen / callous?When playing a fret the guitar sounds mutedPlaying (Barre) chords up the guitar neckI think my guitar strings are wound too tight and I can't play barre chordsF barre chord on an SG guitarHow to find to the right strings of a barre chord by feel?High action on higher fret on my steel acoustic guitar

          香港授勳及嘉獎制度 目录 勳章及獎狀類別 嘉獎等級 授勳及嘉獎提名 統計數字 多次獲頒勳章或獎狀的人士 爭議 褫奪機制 参考文献 外部連結 参见 导航菜单統計數字一九九七年七月二日(星期三)香港特別行政區的授勳制度六七暴動領袖獲大紫荊勳章 董建華被斥為肯定殺人放火董建華授勳楊光 議員窮追猛打蘋論:顛倒是非黑白的大紫荊董讚楊光有貢獻避談暴動董拒答授勳楊光原因撤除勳銜撤除勳銜撤除勳銜特首掌「搣柴」生殺權行為失當罪 隨時「搣柴」失長糧政府刊憲 許仕仁郭炳江遭「搣柴」去年中終極上訴失敗 許仕仁郭炳江撤勳章太平紳士猛料阿Sir講古—— 「搣柴」有故一九九八年授勳名單一九九九年授勳名單二○○三年授勳名單二○○八年授勳名單二○○七年授勳名單政府總部禮賓處 - 授勳及嘉獎香港特別行政區勳章綬帶一覽(PDF)(非官方)