/// <summary>
 ///  Create a basic instance of the DashBoard Controller for test
 /// </summary>
 /// <param name="ModelBuilderDAO"></param>
 /// <param name="ModelBuilderDB"></param>
 /// <param name="cm"></param>
 /// <param name="ModelBuilderManager"></param>
 /// <param name="ApiContext"></param>
 public DashBoardController(IModelBuilderDAO ModelBuilderDAO, IModelBuilderDB ModelBuilderDB, IConnectionManager cm, IModelBuilderManager ModelBuilderManager, WebApiContext ApiContext)
     : base()
 {
     _cm = cm;
     _IModelBuilderDAO     = ModelBuilderDAO;
     _IModelBuilderDB      = ModelBuilderDB;
     _IModelBuildermanager = ModelBuilderManager;
     _ApiContext           = ApiContext;
 }
        public HttpResponseMessage GetDashBoard()
        {
            //When API is called from a test class
            if (ApiContext == null)
            {
                ApiContext = _ApiContext;
            }

            //When API is NOT called from test class
            if (_ModelBuilderDAO == null)
            {
                _ModelBuilderDAO = new ModelBuilderDAO(ApiContext, _ModelBuilderDB);
            }
            if (_cm == null)
            {
                _cm = new ConnectionManager();
            }
            if (_ModelBuildermanager == null)
            {
                _ModelBuildermanager = new ModelBuilderManager(_cm, _ModelBuilderDAO, ApiContext);
            }
            IDashBoard prototype = new DashBoard();
            //Get DashBoard list from the database
            List <IDashBoard> list = _ModelBuildermanager.GetDashBoard(inputObjects, globals, prototype);

            if (list == null)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "NOT_FOUND"));
            }

            IApiResponse <List <IDashBoard> > result = new ApiResponse <List <IDashBoard> >();

            result.Records      = list;
            result.TotalRecords = list.Count;
            result.MessageId    = 200;
            result.MessageText  = "Success";
            return(Request.CreateResponse <IApiResponse <List <IDashBoard> > >(HttpStatusCode.OK, result));
        }