public static ApiUrlAttribute GetApiUrlAttribute <TModel>() where TModel : IApiInputDto
        {
            ApiUrlAttribute methodApiUri = null;

            if (methodApiUri == null)
            {
                methodApiUri = typeof(TModel).GetCustomAttributes(typeof(ApiUrlAttribute), true).FirstOrDefault() as ApiUrlAttribute;
                if (methodApiUri != null && string.IsNullOrWhiteSpace(methodApiUri.Controller))
                {
                    methodApiUri = null;
                }
            }

            if (methodApiUri == null)
            {
                methodApiUri = typeof(TModel).GetCustomAttributes(typeof(ApiUrlAttribute), true).FirstOrDefault() as ApiUrlAttribute;
            }
            return(GetAppUrl <TModel>(methodApiUri));
        }
        protected static ApiUrlAttribute GetAppUrl <TModel>(ApiUrlAttribute apiUrlAttribute = null) where TModel : IApiInputDto
        {
            string controller;

            if (apiUrlAttribute == null)//|| string.IsNullOrWhiteSpace(apiUrlAttribute.Action))
            {
                return(ApiUrlAttribute.GetDefaultApiUrlAttribute());
            }
            if (!string.IsNullOrWhiteSpace(apiUrlAttribute.Controller))//&& !apiUrlAttribute.Action.IsEmpty())
            {
                controller = apiUrlAttribute.Controller;
            }
            else
            {
                ApiUrlAttribute controllerApiUrl;

                var modelApiUrl = typeof(TModel).GetCustomAttributes(typeof(ApiUrlAttribute), true).FirstOrDefault() as ApiUrlAttribute;
                if (!apiUrlAttribute.Controller.IsEmpty())
                {
                    controller = apiUrlAttribute.Controller;
                }
                else if (modelApiUrl != null && !modelApiUrl.Controller.IsEmpty())
                {
                    controller = modelApiUrl.Controller;
                }
                else if (apiUrlGetters.TryGetValue("@apiRepositorycontroller", out controllerApiUrl) && !string.IsNullOrWhiteSpace(controllerApiUrl.Controller))
                {
                    controller = controllerApiUrl.Controller;
                }
                else if (apiUrlGetters.TryGetValue("@modelController", out controllerApiUrl) && !string.IsNullOrWhiteSpace(controllerApiUrl.Controller))
                {
                    controller = controllerApiUrl.Controller;
                }
                else
                {
                    return(ApiUrlAttribute.GetDefaultApiUrlAttribute());
                }
            }
            return(apiUrlAttribute);
        }