public void DoStuff()
    {
        CustomerViewRequest cvRequest = new CustomerViewRequest();

        cvRequest.Translations         = GetTranslations();        // generic to Request
        cvRequest.CustomerViewAsOfDate = new DateTime(2014, 1, 1); // specific to CustomerViewRequest
        CustomerViewResponse cvResponse = ViewCreator.CreateViewResponse <CustomerViewResponse>(cvRequest);

        Console.WriteLine(cvResponse.ViewResponseCreatedSuccessfully);     // generic to Response
        Console.WriteLine(cvResponse.SomeCustomerViewSpecificProperty);    // specific to CustomerViewResponse
        BKLedgerViewRequest bkRequest = new BKLedgerViewRequest();

        bkRequest.Translations   = GetTranslations();   // generic to Request
        bkRequest.EAAnalysisData = GetEAAnalysisData(); // specific to BKLedgerViewRequest
        BKLedgerViewResponse bkResponse = ViewCreator.CreateViewResponse <BKLedgerViewResponse>(bkRequest);

        Console.WriteLine(bkResponse.ViewResponseCreatedSuccessfully);     // generic to Response
        Console.WriteLine(bkResponse.SomeBKLedgerViewSpecificProperty);    // specific to BKLedgerViewResponse
    }
 public ActionResult Customers(CustomerViewRequest request)
 {
     return(View());
 }