public async Task <IActionResult> RenderView([FromServices] IViewRenderer viewRender)
        {
            ViewData["Type"] = 1;
            string result = await viewRender.RenderAsync(HttpContext, "TestView", new TestViewModel { Title = "Test view" }, ViewData);

            return(Ok(result));
        }
        public async Task <IActionResult> RenderCustomView([FromServices] IWebHostEnvironment env, [FromServices] IViewRenderer viewRender)
        {
            ViewData["Type"] = 2;
            string result = await viewRender.RenderAsync(HttpContext, "~/CustomViews/CustomTestView.cshtml", new TestViewModel { Title = "Test view" }, ViewData, true);

            return(Content(result));
        }
Ejemplo n.º 3
0
        public async Task <string> ExecuteAsync(FragmentContext context)
        {
            var fragmentType      = context.Fragment.GetType();
            var processMethodInfo = fragmentType.GetMethod(Constants.ProcessAsyncMethodName);
            var parameterInfos    = processMethodInfo.GetParameters();

            if (context.Fragment is RemoteFragment)
            {
                if (processMethodInfo.Invoke(context.Fragment, new object[1] {
                    context.Model ?? new object()
                }) is Task <string> html)
                {
                    return(await html);
                }

                return(string.Empty);
            }

            if (processMethodInfo.Invoke(context.Fragment, GetModel(parameterInfos?.Length > 0 ? parameterInfos[0].ParameterType : null, context)) is Task <FragmentViewResult> fragmentProcessTask)
            {
                var fragmentViewResult = await fragmentProcessTask;
                var htmlString         = await _viewRenderer.RenderAsync(fragmentViewResult.ViewName, fragmentViewResult.Model);

                return(htmlString);
            }

            return(string.Empty);
        }
Ejemplo n.º 4
0
        protected Task RenderViewAsync(IOwinEnvironment context, string viewName, object model, CancellationToken cancellationToken)
        {
            context.Response.StatusCode = 200;
            context.Response.Headers.SetString("Content-Type", Constants.HtmlContentType);

            return(_viewRenderer.RenderAsync(viewName, model, context, cancellationToken));
        }
        public async Task <IActionResult> CompareSerch(string title, int cat2, int?brand)
        {
            try
            {
                if (cat2 > 0)
                {
                    var getAllProductByCatId = ((List <ProductModel>)(await _productrepo.GetAll()).Data).Where(x => x.P_EndLevelCatId == cat2).ToList();

                    if (!string.IsNullOrEmpty(title))
                    {
                        getAllProductByCatId = getAllProductByCatId.Where(x => x.P_Title.Contains(title, StringComparison.InvariantCultureIgnoreCase)).ToList();
                    }
                    if (brand != null && brand > 0)
                    {
                        getAllProductByCatId = getAllProductByCatId.Where(x => x.P_BrandId == brand).ToList();
                    }

                    var model = await _viewRenderer.RenderAsync(this, "_productlist", getAllProductByCatId);



                    return(new JsonResult(ResponseModel.Success(data: model)));
                }
                return(new JsonResult(ResponseModel.ServerInternalError(data: "error")));
            }


            catch (Exception ex)
            {
                return(new JsonResult(ResponseModel.ServerInternalError(data: ex)));
            }
        }
Ejemplo n.º 6
0
        public async Task <string> RenderAsync(
            string name,
            params Controller[] controllers)
        {
            var viewModel = new ApiModel(route => CallControllerAction(route, controllers));

            return(await _viewRenderer.RenderAsync(name, viewModel));
        }
Ejemplo n.º 7
0
        public async Task <IActionResult> RegisterLogin(string code)
        {
            if (!string.IsNullOrEmpty(code))
            {
                string rnd = TempData["rnd"].ToString();
                string mob = TempData["mobile"].ToString();
                if (rnd != code)
                {
                    return(new JsonResult(ResponseModel.Error("کد وارد شده صحیح نمیباشد")));
                }

                var User = ((List <UserModel>)((await _repository.GetAll()).Data)).FirstOrDefault(x => x.U_Phone == (string)mob);

                if (User != null)
                {
                    var result = await _repository.UserLogin(User);

                    if (result.Status == false)
                    {
                        return(new JsonResult(ResponseModel.Error(result.Msg)));
                    }
                    var loginuser = ((UserModel)result.Data);
                    Response.Cookies.Append("HomeKitoUser", loginuser.Token);

                    return(new JsonResult(ResponseModel.Success(msg: "ok")));
                }
                else
                {
                    UserModel um = new UserModel();
                    um.U_Role     = 2;
                    um.U_Name     = "";
                    um.U_Family   = "";
                    um.U_Email    = "*****@*****.**";
                    um.U_Phone    = mob;
                    um.U_Password = "******";
                    var result = await _repository.Insert(um);

                    if (result.Status)
                    {
                        var loginuser = ((UserModel)(await _repository.UserLogin(um)).Data);
                        Response.Cookies.Append("HomeKitoUser", loginuser.Token);
                        var view = await _viewRenderer.RenderAsync(this, "_RegisterSuccess", mob);

                        return(new JsonResult(ResponseModel.Success(data: view, msg: null)));
                    }
                    await _sms.SignUp(mob, rnd);

                    //return new JsonResult(result.Msg);
                    return(new JsonResult(ResponseModel.Error(result.Msg)));
                }
            }
            return(RedirectToAction("Index", "Home"));
        }
Ejemplo n.º 8
0
        public async Task <IEmailContent> RenderAsync()
        {
            ThrowIfInvalid();

            var body = await _renderer.RenderAsync(ViewPath, this);

            return(new EmailContent(
                       @from: From,
                       subject: Subject,
                       body: body,
                       recipients: Recipients,
                       cc: Cc));
        }
Ejemplo n.º 9
0
        public async Task <IActionResult> Placeholder([FromRoute] string name, [FromRoute] string mode)
        {
            var fragment = await _fragmentResolver.ResolveAsync(name);

            var fragmentOptions = _fragmentOptionsProvider.GetFragmentOptions(fragment);

            var placeHolderHtml = string.IsNullOrEmpty(fragmentOptions.PlaceHolderViewName)
                ? await fragment.GetPlaceHolderHtmlAsync()
                : await _viewRenderer.RenderAsync(fragmentOptions.PlaceHolderViewName, null);

            if (mode == "preview")
            {
                placeHolderHtml = AddAssetsToHtml(placeHolderHtml, fragmentOptions);
            }

            return(base.Content(placeHolderHtml, "text/html"));
        }
Ejemplo n.º 10
0
        public async Task SendRazorEmailAsync(EmailContact sender, EmailContact recipient, string subject, string viewName, object vars)
        {
            var message = await _ViewRender.RenderAsync(viewName, vars);

            await SendEmailAsync(sender, recipient, subject, message);
        }
        public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            output.TagName = "div";
            Fragment fragment = await _fragmentResolver.ResolveAsync(Name);

            var fragmentOptions = _fragmentOptionsProvider.GetFragmentOptions(fragment);

            var fragmentContext = new FragmentContext
            {
                Fragment        = fragment,
                OutputStream    = ViewContext.HttpContext.Response.Body,
                Model           = Model,
                FragmentOptions = fragmentOptions
            };

            _fragmentContextProvider.AddContext(fragmentContext);

            _fragmentLogger.Info($"Executing fragment {Name}. Model : {JsonConvert.SerializeObject(fragmentContext.Model)}");

            var placeHolderViewName = fragmentOptions?.PlaceHolderViewName;

            if (fragmentOptions?.IsSync == true || fragmentOptions?.IsSyncOnAjax == true && IsAjaxRequest(ViewContext.HttpContext.Request))
            {
                output.SuppressOutput();
                throw new NotImplementedException("Sync fragments are not implemented yet.");
            }
            else
            {
                fragmentContext.PlaceHolderId = Guid.NewGuid().ToString();

                var placeHolderHtml = string.IsNullOrEmpty(placeHolderViewName) ? await fragment.GetPlaceHolderHtmlAsync() : await _viewRenderer.RenderAsync(placeHolderViewName, null);

                if (string.IsNullOrEmpty(placeHolderHtml) == false)
                {
                    output.Content.SetHtmlContent(placeHolderHtml);
                }

                output.Attributes.SetAttribute(Constants.HtmlIdAttribute, fragmentContext.PlaceHolderId);
                output.TagMode = TagMode.StartTagAndEndTag;
            }
        }