public SigmaResultType ListCostCode()
        {
            SigmaResultType result = new SigmaResultType();
            try
            {
                var queryStr = WebOperationContext.Current.IncomingRequest.UriTemplateMatch.QueryParameters;
                string max = queryStr["max"];
                string offset = queryStr["offset"];

                List<string> s_option = new List<string>();
                List<string> s_key = new List<string>();
                s_option.Add("@CostCode");
                s_option.Add("@Description");
                s_key.Add(queryStr["CostCode"]);
                s_key.Add(queryStr["Description"]);

                string o_option = queryStr["o_option"];
                string o_desc = queryStr["o_desc"];

                CostCodeMgr costCodeMgr = new CostCodeMgr();

                //generate template
                costCodeMgr.SetProjectCostCodeTemplate(ConfigMgr.GetDynamicTemplateFilePath("costcode"));

                result = costCodeMgr.ListCostCode(offset, max, s_option, s_key, o_option, o_desc);

                return result;
            }
            catch (Exception ex)
            {
                // Log Exception
                ExceptionHelper.logException(ex);
                result.IsSuccessful = false;
                result.ErrorMessage = ex.Message;
                return result;
            }
        }