コード例 #1
0
        /// <summary>
        /// Invokes Business Logic's method by name
        /// </summary>
        /// <typeparam name="TResponse">Method responese</typeparam>
        /// <param name="methodArgs">Parameters's method</param>
        /// <returns>Response's method</returns>
        public async Task <BaseServicesResult> Execute <TResponse>(params object[] methodArgs)
            where TResponse : BaseResponse, new()
        {
            // Init base request data
            BaseRequest request = ToRequest <BaseRequest>();

            // Init business logic and action meta data
            BusinessLogic = StartupExtensions.Resolve <TBusiness>();

            // Init Meta data
            MetaData = new BaseActionMetaData <TBusiness>(this);

            // TODO: Create context and using all system
            Context = Context;

            // Custom init from action
            Init();

            // Init action utilities and logger
            var statusUtility = new ActionStatusUtility(request);
            var actionUtility = new ActionExecutionUtility(request);

            // TODO: Start to write log
            // Init default response object (equal NULL)
            TResponse response;

            if (Validate())
            {
                response = await OnExecute <TResponse>(methodArgs);
            }
            else
            {
                response = new TResponse {
                    Errors = actionUtility.GetErrors(ValidateResult), Success = false
                };
            }

            // Build and return service message
            var serviceResult = new BaseServicesResult
            {
                ReturnCode = statusUtility.GetStatusCode(response),
                ReturnData = new BaseResponseHttpActionResult <TResponse>()
                {
                    Result       = response,
                    InternalCode = (int)statusUtility.GetInternalCode(response)
                }
            };

            return(serviceResult);
        }
コード例 #2
0
 public HttpActionResult(BaseServicesResult result, HttpRequestMessage request)
 {
     _result  = result;
     _request = request;
 }