Esempio n. 1
0
        /// <summary>
        /// Render a static view page locally directly instead of rendering from database content.
        /// Note that every view should have a layout section defined (_ViewStart.cshtml will not work in this case)
        ///
        /// Folloring rendering rule applies:
        /// http://host:port/                  --- ~/Views/Default.cshtml
        /// http://host:post/en-gb/            --- ~/Views/en-gb/Index.cshtml
        /// http://host:post/en-gb/mobile      --- ~/Views/en-gb/mobile/Index.cshtml    (if Mobile.cshtml is not found, fallback to ~/Views/en-gb/mobile/Index.cshtml
        /// -------------------------------------------------------------------------- following urls should have equivlent patterns
        /// http://host:post/en-gb/help/rules  --- ~/Views/en-gb/help/rules.cshtml
        /// </summary>
        /// <param name="url"></param>
        /// <param name="mvcRequestContext"></param>
        /// <returns></returns>
        public CmsEngine.Response ProcessFakeRequest(Uri url, MvcRequestContext mvcRequestContext)
        {
            // look for culture strings
            var abs = (url.AbsolutePath == "/") ? "/Default" : url.AbsolutePath;

            var cultureRegex = new System.Text.RegularExpressions.Regex(@"^\/(?<culture>[a-zA-Z]{2}\-[a-zA-Z]{2})?\/?");
            var result       = cultureRegex.Match(url.AbsolutePath);
            var culture      = result.Groups["culture"];

            if (culture.Success && abs.EndsWith(culture.Value))
            {
                abs += "/Index";
            }
            var viewName = string.Format("~/Views{0}.cshtml", abs);

            // Fallback to Index.cshtml if abs file is not found
            if (!System.IO.File.Exists(Server.MapPath(viewName)))
            {
                viewName = string.Format("~/Views{0}.cshtml", abs + "/Index");
            }

            var pageHtmlBuilder = mvcRequestContext.RenderRazorViewToString(viewName: viewName, languageCode: culture.Success ? culture.Value : "", model: new object());

            if (pageHtmlBuilder == null)
            {
                return new CmsEngine.Response {
                           Type = CmsEngine.ResponseType.PageNotFound
                }
            }
            ;

            return(new CmsEngine.Response {
                Body = pageHtmlBuilder.ToString(), Type = CmsEngine.ResponseType.OK
            });
        }
Esempio n. 2
0
        public void Execute(IJobExecutionContext context)
        {
            try
            {
                var host = new MvcApiHost("api/Customer/BatchUpdateApplyInfoesPrice");
                var request = new MvcRequestContext<string>() { Content = string.Empty };

                var response = RzHttpClient.Post<RequestContext<string>, ResponseContext<bool>>(host, request);

                if (response.HasContent() && response.Result.Content)
                {
                    return;
                }
                Log.Info("Rongzi.SDT.Schedule", "RequeirmentPriceJob",
                    string.Format("RequeirmentPriceJob == host:{0}  /r  request:{1} /r response:{2}",
                    host.ToString(),
                    Newtonsoft.Json.JsonConvert.SerializeObject(request),
                    Newtonsoft.Json.JsonConvert.SerializeObject(response)));

                CommonLogger.Info("RequeirmentPriceJob 任务运行成功结束");
            }
            catch (Exception ex)
            {
                CommonLogger.Error("Rongzi.SDT.Schedule---RequirementPriceJob", ex);
            }
        }
Esempio n. 3
0
        public virtual ActionResult ProcessFakeAngularRequest()
        {
            if (AtPreviewMode() && InvalidCrossSiteAuth())
            {
                return(new HttpUnauthorizedResult());
            }

            var url = _httponContextBase.Request.Url;
            var mvcRequestContext = new MvcRequestContext(ControllerContext, ViewData, TempData);

            // look for culture strings
            var absolutePath = url.AbsolutePath.ToLower().Replace("/templates", "").Replace(".html", "").Replace(".htm", "");

            var abs = (absolutePath == "/") ? "/Default" : absolutePath;

            var cultureRegex = new System.Text.RegularExpressions.Regex(@"^\/(?<culture>[a-zA-Z]{2}\-[a-zA-Z]{2})?\/?");
            var result       = cultureRegex.Match(absolutePath);
            var culture      = result.Groups["culture"];

            if (culture.Success && abs.EndsWith(culture.Value))
            {
                abs += "/Index";
            }



            var viewName = string.Format("~/Views{0}.cshtml", abs);

            // Fallback to Index.cshtml if abs file is not found
            if (!System.IO.File.Exists(Server.MapPath(viewName)))
            {
                viewName = string.Format("~/Views{0}.cshtml", abs + "/Index");
            }

            var pageHtmlBuilder = mvcRequestContext.RenderRazorViewToString(viewName: viewName, languageCode: culture.Success ? culture.Value : "", model: new object());



            if (pageHtmlBuilder == null)
            {
                return(HttpNotFound());
            }
            else
            {
                var htmlStr = pageHtmlBuilder.ToString();

                // Remove Layout definition
                var regex     = new Regex("Layout\\s=\\s\\\".*\\.cshtml\";");
                var newMarkup = regex.Replace(htmlStr, "");

                return(Content(newMarkup));
            }
        }
Esempio n. 4
0
        /// <summary>
        /// 调用接口获取省份信息
        /// </summary>
        /// <param name="isHot"></param>
        /// <returns></returns>
        private static Dictionary<int, ProvinceModel> GetProvinceMap(int isHot)
        {
            //请求参数
            var request = new MvcRequestContext<string>();
            ApiHost host = new MvcApiHost("api/Common/Province?isHot=" + isHot);

            var ret = RzHttpClient.Post<RequestContext<string>, ResponseContext<List<ProvinceModel>>>(host, request).Result;
            if (ret.Head.Ret != 0 || ret.Content == null)
            {
                return null;
            }

            return ret.Content.ToDictionary(k => k.ProId, v => v);
        }
Esempio n. 5
0
 public MailsController(MvcRequestContext context)
 {
     _context = context;
 }
Esempio n. 6
0
 public InformationSystemsController(MvcRequestContext context)
 {
     _context = context;
 }
Esempio n. 7
0
 /// <summary>
 /// 调用接口,取某个城市下的区域
 /// </summary>
 /// <param name="cityID"></param>
 /// <returns></returns>
 public List<DistrictModel> GetDistricts(int cityID)
 {
     ApiHost host = new MvcApiHost("api/Common/District");
     RequestContext<int> req = new MvcRequestContext<int>();
     req.Content = cityID;
     var res = RzHttpClient.Post<RequestContext<int>, ResponseContext<List<DistrictModel>>>(host, req);
     if (res.HasContent())
     {
         return res.Result.Content;
     }
     return null;
 }
Esempio n. 8
0
 public DocumentsIBsController(MvcRequestContext context, IHostingEnvironment environment)
 {
     _context = context;
     _env     = environment;
 }
Esempio n. 9
0
 public SubdivitionsController(MvcRequestContext context)
 {
     _context = context;
 }
Esempio n. 10
0
 public examplesController(MvcRequestContext context)
 {
     _context = context;
 }
Esempio n. 11
0
 public TablelawsController(MvcRequestContext context)
 {
     _context = context;
 }
Esempio n. 12
0
 public PostListsController(MvcRequestContext context)
 {
     _context = context;
 }