Esempio n. 1
0
 protected virtual void AppendDeepFilter(string hint, ViewPage page, DbCommand command, StringBuilder sb, string filter)
 {
     string[] hintInfo = hint.Split(new char[] {
                 '.'});
     int index = filter.IndexOf(":");
     string fieldData = filter.Substring((index + 1));
     for (int i = 0; (i < NegativeFilterOperations.Length); i++)
     {
         string negativeOperation = NegativeFilterOperations[i];
         if (fieldData.StartsWith(negativeOperation))
         {
             sb.Append("not ");
             filter = (filter.Substring(0, (index + 1))
                         + (ReverseNegativeFilterOperations[i] + filter.Substring((index
                             + (1 + negativeOperation.Length)))));
             break;
         }
     }
     sb.Append("exists(");
     PageRequest r = new PageRequest();
     r.Controller = hintInfo[0];
     r.View = hintInfo[1];
     r.Filter = new string[] {
             filter};
     DataControllerBase controller = ((DataControllerBase)(ControllerFactory.CreateDataController()));
     foreach (DataField field in page.Fields)
         if (field.IsPrimaryKey)
         {
             r.InnerJoinPrimaryKey = ("resultset__." + field.Name);
             r.InnerJoinForeignKey = hintInfo[2];
             break;
         }
     controller.ConfigureSelectExistingCommand(r, command, sb);
     sb.Append(")");
 }
Esempio n. 2
0
		private void RenderViewPage(ViewContext context, ViewPage page)
		{
			if (!String.IsNullOrEmpty(MasterPath))
			{
				page.MasterLocation = MasterPath;
			}

//            page.ViewData = context.ViewData;
			page.RenderView(context);
		}
Esempio n. 3
0
        public void SetViewItemToWrongTypeThrows() {
            // Arrange
            ViewPage vp = new ViewPage<string>();

            // Act & Assert
            ExceptionHelper.ExpectException<InvalidOperationException>(
                delegate {
                    vp.ViewData.Model = 50;
                },
                "The model item passed into the dictionary is of type 'System.Int32', but this dictionary requires a model item of type 'System.String'.");
        }
Esempio n. 4
0
        public void SetViewItemOnDerivedClassPropagatesToBaseClass() {
            // Arrange
            ViewPage<object> vpInt = new ViewPage<object>();
            ViewPage vp = vpInt;
            object o = new object();

            // Act
            vpInt.ViewData.Model = o;

            // Assert
            Assert.AreEqual(o, vpInt.ViewData.Model);
            Assert.AreEqual(o, vp.ViewData.Model);
        }
Esempio n. 5
0
        public void ModelProperty() {
            // Arrange
            object model = new object();
            ViewDataDictionary viewData = new ViewDataDictionary(model);
            ViewPage viewPage = new ViewPage();
            viewPage.ViewData = viewData;

            // Act
            object viewPageModel = viewPage.Model;

            // Assert
            Assert.AreEqual(model, viewPageModel);
            Assert.AreEqual(model, viewPage.ViewData.Model);
        }
Esempio n. 6
0
        public void ModelPropertyStronglyTypedViewPage() {
            // Arrange
            FooModel model = new FooModel();
            ViewDataDictionary<FooModel> viewData = new ViewDataDictionary<FooModel>(model);
            ViewPage<FooModel> viewPage = new ViewPage<FooModel>();
            viewPage.ViewData = viewData;

            // Act
            object viewPageModelObject = ((ViewPage)viewPage).Model;
            FooModel viewPageModelPerson = viewPage.Model;

            // Assert
            Assert.AreEqual(model, viewPageModelObject);
            Assert.AreEqual(model, viewPageModelPerson);
        }
Esempio n. 7
0
        public static string RenderPartialToString(string controlName, object viewData)
        {
            ViewPage viewPage = new ViewPage() { ViewContext = new ViewContext() };

            viewPage.ViewData = new ViewDataDictionary(viewData);
            viewPage.Controls.Add(viewPage.LoadControl(controlName));

            StringBuilder sb = new StringBuilder();
            using (StringWriter sw = new StringWriter(sb)) {
                using (HtmlTextWriter tw = new HtmlTextWriter(sw)) {
                    viewPage.RenderControl(tw);
                }
            }

            return sb.ToString();
        }
Esempio n. 8
0
		public override bool TryGetMember(GetMemberBinder binder, out object result)
		{
			if (Current == null)
			{
				result = null;
				return true;
			}

			string name = binder.Name;

			try
			{
				object data = Html.DisplayContent(Current, name).ToString();
				result = data.ToHtmlString();
			}
			catch (N2Exception)
			{
				if (Html.ViewData.ContainsKey("RegistrationExpression"))
				{
					result = null;
					return true;
				}

				var template = Html.ResolveService<ITemplateAggregator>().GetTemplate(Current);
				var displayable = template.Definition.Displayables.FirstOrDefault(d => d.Name == name);

				object data;
				if (displayable != null)
				{
					var vp = new ViewPage();
					displayable.AddTo(Current, name, vp);

					using (var sw = new StringWriter())
					using (var htw = new HtmlTextWriter(sw))
					{
						vp.RenderControl(htw);
						data = sw.ToString();
					}
				}
				else
					data = Current[name];

				result = data.ToHtmlString();
			}

			return true;
		}
Esempio n. 9
0
 public virtual bool SupportsCaching(ViewPage page, string viewType)
 {
     if (viewType == "DataSheet")
     {
         if (!(SupportsScrollingInDataSheet) && !(ApplicationServices.IsTouchClient))
             page.SupportsCaching = false;
     }
     else
         if (viewType == "Grid")
         {
             if (!(ApplicationServices.IsTouchClient))
                 page.SupportsCaching = false;
         }
         else
             page.SupportsCaching = false;
     return page.SupportsCaching;
 }
Esempio n. 10
0
        public static string RenderPartialToString(string controlName, object viewData)
        {
            ViewDataDictionary vd = new ViewDataDictionary(viewData);
            ViewPage vp = new ViewPage { ViewData = vd };
            Control control = vp.LoadControl(controlName);

            vp.Controls.Add(control);

            StringBuilder sb = new StringBuilder();
            using (StringWriter sw = new StringWriter(sb))
            {
                using (HtmlTextWriter tw = new HtmlTextWriter(sw))
                {
                    vp.RenderControl(tw);
                }
            }

            return sb.ToString();
        }
    public string ViewToString <T>(string aspx, Dictionary <string, object> viewData, T model)
    {
        StringBuilder sb = new StringBuilder();

        using (StringWriter sw = new StringWriter(sb))
        {
            using (HtmlTextWriter tw = new HtmlTextWriter(sw))
            {
                var workerRequest = new SimpleWorkerRequest(aspx, "", tw);
                HttpContext.Current = new HttpContext(workerRequest);
                ViewDataDictionary <T> viewDataDictionary = new ViewDataDictionary <T>(model);
                foreach (KeyValuePair <string, object> pair in viewData)
                {
                    viewDataDictionary.Add(pair.Key, pair.Value);
                }
                object   view     = BuildManager.CreateInstanceFromVirtualPath(aspx, typeof(object));
                ViewPage viewPage = view as ViewPage;
                if (viewPage != null)
                {
                    viewPage.ViewData = viewDataDictionary;
                }
                else
                {
                    ViewUserControl viewUserControl = view as ViewUserControl;
                    if (viewUserControl != null)
                    {
                        viewPage = new ViewPage();
                        viewPage.Controls.Add(viewUserControl);
                    }
                }

                if (viewPage != null)
                {
                    HttpContext.Current.Server.Execute(viewPage, tw, true);
                    return(sb.ToString());
                }
                throw new InvalidOperationException();
            }
        }
    }
Esempio n. 12
0
        public void ActionChangePassPOST(PasswordModel model)
        {
            var obj = CPUserService.Instance.CreateQuery().Where(o => o.ID == CPLogin.UserID).Select(o => new { o.Password, o.ID }).ToSingle();

            if (model.PassCur.Trim() == string.Empty)
            {
                ViewPage.Message.ListMessage.Add("Nhập mật khẩu hiện tại");
            }
            else if (Security.GetPass(model.PassCur.Trim()) != obj.Password)
            {
                ViewPage.Message.ListMessage.Add("Mật khẩu hiện tại không đúng !");
            }

            if (model.PassNew.Trim() == string.Empty)
            {
                ViewPage.Message.ListMessage.Add("Nhập mật khẩu mới");
            }
            else if (model.PassNew.Trim() != model.RePass.Trim())
            {
                ViewPage.Message.ListMessage.Add("Mật khẩu nhắc lại không đúng");
            }

            if (ViewPage.Message.ListMessage.Count > 0)
            {
                string s = @"Các thông tin nhập còn thiếu hoặc sai chính xác \r\n";
                for (int i = 0; i < ViewPage.Message.ListMessage.Count; i++)
                {
                    s += @"\r\n" + ViewPage.Message.ListMessage[i];
                }
                ViewPage.Alert(s);
            }
            else
            {
                obj.Password = Security.GetPass(model.PassNew);
                CPUserService.Instance.Save(obj, o => o.Password);
                ViewPage.Alert("Cập nhật mật khẩu thành công !");
                ViewPage.Navigate("/");
            }
            ViewBag.ChangePass = model;
        }
        public void ActionUpdateBaoCaoUCSC(ModBaoCaoKetThucSuCoEntity entityBc, MAppend append, string endCode)
        {
            int userId = HL.Lib.Global.CPLogin.UserID;
            var entity = ModBaoCaoKetThucSuCoService.Instance.CreateQuery()
                         .Where(userId > 0, o => o.UserID == userId)
                         .Where(o => o.Code == endCode)
                         .ToSingle();

            if (entity != null)
            {
                DateTime date            = DateTime.Now;
                string   ngayGioPhatHien = append.Ngay + " " + append.Gio + ":" + append.Phut;
                if (!string.IsNullOrEmpty(ngayGioPhatHien))
                {
                    entityBc.NgayGioPhatHien = HL.Core.Global.Convert.ToDateTime(ngayGioPhatHien);
                }
                else
                {
                    entityBc.NgayGioPhatHien = DateTime.MinValue;
                }

                entityBc.ID         = entity.ID;
                entityBc.UserID     = entity.UserID;
                entityBc.UserID1    = userId;
                entityBc.MenuID     = entity.MenuID;
                entityBc.State      = entity.State;
                entityBc.Name       = entity.Name;
                entityBc.Code       = entity.Code;
                entityBc.Order      = entity.Order;
                entityBc.Published  = entity.Published;
                entityBc.Published1 = date;
                entityBc.Activity   = false;
                ModBaoCaoKetThucSuCoService.Instance.Save(entityBc);

                ViewBag.BaoCao = entityBc;

                ViewPage.Alert("Cập nhật báo cáo thành công! Chúng tôi sẽ xem xét và phê duyệt báo cáo của bạn sớm nhất có thể.");
                ViewPage.Navigate("/vn/Thanh-vien/DS-bc-ket-thuc-su-co.aspx");
            }
        }
Esempio n. 14
0
        public override void Render(ViewContext viewContext, TextWriter writer)
        {
            if (viewContext == null)
            {
                throw new ArgumentNullException("viewContext");
            }

            controllerName = viewContext.Controller.ControllerContext.RouteData.GetRequiredString("controller");

            object viewInstance = BuildManager.CreateInstanceFromVirtualPath(ViewPath, typeof(object));

            if (viewInstance == null)
            {
                throw new InvalidOperationException(
                          string.Format(
                              "An instance of the view '{0}' could not be created.",
                              ViewPath
                              )
                          );
            }

            ViewPage viewPage = viewInstance as ViewPage;

            if (viewPage != null)
            {
                if (!string.IsNullOrEmpty(MasterPath) && !string.IsNullOrEmpty(viewPage.MasterLocation))
                {
                    viewPage.MasterLocation = MasterPath;
                }

                viewPage.ViewData = viewContext.ViewData;
                viewPage.PreInit += viewPage_PreInit;

                viewPage.RenderView(viewContext);

                return;
            }

            base.Render(viewContext, writer);
        }
Esempio n. 15
0
        public static string RenderPartialToString(string controlName, object viewData)
        {
            ViewDataDictionary vd = new ViewDataDictionary(viewData);
            ViewPage           vp = new ViewPage {
                ViewData = vd
            };
            Control control = vp.LoadControl(controlName);

            vp.Controls.Add(control);

            StringBuilder sb = new StringBuilder();

            using (StringWriter sw = new StringWriter(sb))
            {
                using (HtmlTextWriter tw = new HtmlTextWriter(sw))
                {
                    vp.RenderControl(tw);
                }
            }

            return(sb.ToString());
        }
        private static string renderPluginTemplate(PluginTemplate pluginTemplate, ResultExecutedContext context, string partialView, int index)
        {
            ViewPage viewPage = new ViewPage()
            {
                ViewContext = new ViewContext(context, ((ViewResult)context.Result).View, context.Controller.ViewData, context.Controller.TempData), ViewData = context.Controller.ViewData
            };
            StringBuilder sb = new StringBuilder();

            viewPage.InitHelpers();

            //TODO: (erikpo) Change the current model to be wrapped by a PluginViewModel to strongly type things like the plugin and its extended properties
            viewPage.ViewData.Model     = getModel(context, partialView, index);
            viewPage.ViewData["Plugin"] = pluginTemplate.Plugin;
            viewPage.ViewData["Index"]  = index;
            viewPage.Controls.Add(viewPage.LoadControl(string.Format("{0}/{1}.ascx", pluginTemplate.Plugin.Container.GetTemplatesPath(), pluginTemplate.TemplateName)));

            using (StringWriter sw = new StringWriter(sb))
                using (HtmlTextWriter tw = new HtmlTextWriter(sw))
                    viewPage.RenderControl(tw);

            return(sb.ToString());
        }
Esempio n. 17
0
        public int SelectCount(
            decimal?autoId,
            string orderBy,
            string deliveryDestination,
            string customerMatCode,
            string partsDevision,
            string customerPO,
            string key1,
            string key2,
            string key3,
            string reliabilityDevision,
            DateTime?deliveryDate,
            string quantity,
            string unit,
            string plngPeriod,
            string sAPCode,
            string filename,
            string statusCode,
            string plantCode,
            string addCode,
            string arrivaltime,
            string fromTo,
            string deliveryDestinationCode,
            string sort,
            int maximumRows,
            int startRowIndex,
            string dataView)
        {
            PageRequest request = CreateRequest(autoId, orderBy, deliveryDestination, customerMatCode, partsDevision, customerPO, key1, key2, key3, reliabilityDevision, deliveryDate, quantity, unit, plngPeriod, sAPCode, filename, statusCode, plantCode, addCode, arrivaltime, fromTo, deliveryDestinationCode, sort, -1, startRowIndex);

            request.RequiresMetaData = false;
            request.MetadataFilter   = new string[] {
                "fields"
            };
            request.RequiresRowCount = true;
            ViewPage page = ControllerFactory.CreateDataController().GetPage("THMOrderImport", dataView, request);

            return(page.TotalRowCount);
        }
        public string RenderViewToString(Controller controller, string viewName, object viewData)
        {
            var renderedView = new StringBuilder();

            using (var responseWriter = new StringWriter(renderedView))
            {
                var fakeResponse          = new HttpResponse(responseWriter);
                var fakeContext           = new HttpContext(HttpContext.Current.Request, fakeResponse);
                var fakeControllerContext = new ControllerContext(new HttpContextWrapper(fakeContext), controller.ControllerContext.RouteData, controller.ControllerContext.Controller);

                var oldContext = HttpContext.Current;
                HttpContext.Current = fakeContext;

                using (var viewPage = new ViewPage())
                {
                    var html = new HtmlHelper(CreateViewContext(responseWriter, fakeControllerContext), viewPage);
                    html.RenderPartial(viewName, viewData);
                    HttpContext.Current = oldContext;
                }
            }
            return(renderedView.ToString());
        }
Esempio n. 19
0
        ViewPage StuffedView(ViewPage view)
        {
            //合并视图数据
            if (_ViewData != null)
            {
                view.ViewData.MergeFrom(_ViewData);
            }

            //注册视图脚本
            if (_ViewScripts != null)
            {
                foreach (var script in _ViewScripts)
                {
                    view.ClientScript.RegisterClientScriptBlock(view.GetType(), "", script.ToString());
                }
            }

            view.ViewData["$_Controller"] = Name;
            view.ViewData["$_Action"]     = ControllerContext.ActionName;

            return(view);
        }
Esempio n. 20
0
        public static string RenderPartialToString(string file, object view)
        {
            ViewDataDictionary vd       = new ViewDataDictionary(view);
            ViewPage           viewPage = new ViewPage {
                ViewData = vd
            };
            Control control = viewPage.LoadControl(file);

            viewPage.Controls.Add(control);

            StringBuilder str = new StringBuilder();

            using (StringWriter stringWriter = new StringWriter(str))
            {
                using (HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter))
                {
                    viewPage.RenderControl(htmlTextWriter);
                }
            }

            return(str.ToString());
        }
Esempio n. 21
0
        public void ActionDetail(int id)
        {
            var entity = ModOrderService.Instance.CreateQuery()
                         .Where(o => o.ID == id)
                         .ToSingle();

            if (entity != null)
            {
                ViewBag.Other = ModOrderService.Instance.CreateQuery()
                                .Where(o => o.ID < entity.ID)
                                .OrderByDesc(o => o.ID)
                                .Take(PageSize)
                                .ToList();

                ViewBag.Data           = entity;
                SetObject["view.Meta"] = entity;
            }
            else
            {
                ViewPage.Error404();
            }
        }
        public ActionResult Index()
        {
            var designHomePage = new ViewPage();
            designHomePage.AddControls(
                new HtmlGenericControl("html").AddControls(
                    new HtmlGenericControl("body").AddControls(
                        new HtmlGenericControl("h1"){InnerText = "MVC Design Mode"},
                        new HtmlGenericControl("ul").AddControls(
                            GetListItemsForActions()
                            )
                        )
                    )
                );

            return new ViewResult
                   {
                       View = new DesignTimeView
                              {
                                  ViewPage = designHomePage
                              }
                   };
        }
Esempio n. 23
0
        public static string RenderPartialToString(string controlName, object viewData)
        {
            ViewPage viewPage = new ViewPage()
            {
                ViewContext = new ViewContext()
            };

            viewPage.ViewData = new ViewDataDictionary(viewData);
            viewPage.Controls.Add(viewPage.LoadControl(controlName));

            StringBuilder sb = new StringBuilder();

            using (StringWriter sw = new StringWriter(sb))
            {
                using (HtmlTextWriter tw = new HtmlTextWriter(sw))
                {
                    viewPage.RenderControl(tw);
                }
            }

            return(sb.ToString());
        }
Esempio n. 24
0
        public void ActionDetail(string endCode)
        {
            var entity = ModVideoService.Instance.CreateQuery()
                         .Where(o => o.Activity == true && o.Code == endCode)
                         //.WhereIn(MenuID > 0, o => o.MenuID, WebMenuService.Instance.GetChildIDForWeb_Cache("Video", MenuID, ViewPage.CurrentLang.ID))
                         .ToSingle();

            if (entity != null)
            {
                MDuThaoModel model = new MDuThaoModel();
                model.PageSize = PageSize;
                string[] str = ((HL.Core.MVC.ViewPage)(ViewPage)).ReturnPath.Replace("%2fPage%2f", "&").Split('&');
                if (str.Length == 2)
                {
                    model.Page = HL.Core.Global.Convert.ToInt(str[1], 0);
                }

                var dbQuery = ModVideoService.Instance.CreateQuery()
                              .Where(o => o.Activity == true)
                              .Where(o => o.Order < entity.Order)
                              .WhereIn(MenuID > 0, o => o.MenuID, WebMenuService.Instance.GetChildIDForWeb_Cache("Video", MenuID, ViewPage.CurrentLang.ID))
                              .OrderByDesc(o => o.Order)
                              .Take(PageSize)
                              .Skip(PageSize * model.Page);

                ViewBag.Other     = dbQuery.ToList();
                model.TotalRecord = dbQuery.TotalRecord;
                model.PageSize    = PageSize;
                ViewBag.Model     = model;

                ViewBag.Data           = entity;
                SetObject["view.Meta"] = entity;
            }
            else
            {
                ViewPage.Error404();
            }
        }
Esempio n. 25
0
        private string GetLinkParent(int iParent, List <SysPageEntity> lstAllPage)
        {
            if (iParent <= 0)
            {
                return(string.Empty);
            }

            SysPageEntity objFilter = lstAllPage.Where(p => p.ID == iParent).FirstOrDefault();

            if (objFilter == null)
            {
                return(string.Empty);
            }

            string sReturn = string.Empty;

            if (objFilter.ViewInSiteMap)
            {
                sReturn = " > <a href='" + ViewPage.GetPageURL(objFilter) + "'>" + objFilter.Name + "</a>";
            }
            else
            {
                sReturn = string.Empty;
            }

            string sReturn_Parent = GetLinkParent(objFilter.ParentID, lstAllPage);

            if (string.IsNullOrEmpty(sReturn_Parent))
            {
                sReturn = "<a href='/'><img class='img-sitemap'/>Trang chủ</a>" + sReturn;
            }
            else
            {
                sReturn = sReturn_Parent + sReturn;
            }

            return(sReturn);
        }
Esempio n. 26
0
        private void viewPage_PreInit(object sender, EventArgs e)
        {
            ViewPage viewPage = (ViewPage)sender;

            if (!string.IsNullOrEmpty(viewPage.MasterPageFile))
            {
                string[] locationsSearched;
                string   masterName = Path.GetFileNameWithoutExtension(viewPage.MasterPageFile);

                viewPage.MasterPageFile = SkinEngine.FindMasterPath(masterName, controllerName, viewPage.ViewData["skin"] as string, out locationsSearched);

                if (string.IsNullOrEmpty(viewPage.MasterPageFile))
                {
                    throw new InvalidOperationException(
                              string.Format(
                                  "The master page '{0}' could not be found. The following locations were searched:\r\n{1}",
                                  masterName,
                                  string.Join("\r\n", locationsSearched)
                                  )
                              );
                }
            }
        }
Esempio n. 27
0
        public void ActionDetail(int id)
        {
            var entity = ModImportLogsService.Instance.CreateQuery()
                         .Where(o => o.ID == id)
                         .ToSingle();

            if (entity != null)
            {
                ViewBag.Other = ModImportLogsService.Instance.CreateQuery()
                                .Where(o => o.ID < entity.ID)
                                .WhereIn(MenuID > 0, o => o.MenuID, WebMenuService.Instance.GetChildIDForWeb_Cache("ImportLogs", MenuID, ViewPage.CurrentLang.ID))
                                .OrderByDesc(o => o.ID)
                                .Take(PageSize)
                                .ToList();

                ViewBag.Data           = entity;
                SetObject["view.Meta"] = entity;
            }
            else
            {
                ViewPage.Error404();
            }
        }
Esempio n. 28
0
        public void ActionDetail(string endCode)
        {
            var entity = ModAlbumDetailService.Instance.CreateQuery()
                         .Where(o => o.Activity == true && o.Code == endCode)
                         .ToSingle();

            if (entity != null)
            {
                ViewBag.Other = ModAlbumDetailService.Instance.CreateQuery()
                                .Where(o => o.Activity == true)
                                .Where(o => o.Order < entity.Order)
                                .OrderByDesc(o => o.Order)
                                .Take(PageSize)
                                .ToList();

                ViewBag.Data           = entity;
                SetObject["view.Meta"] = entity;
            }
            else
            {
                ViewPage.Error404();
            }
        }
Esempio n. 29
0
        async internal void MapSetting_Click(object sender, EventArgs e)
        {
            var list = new List <string>(MapTile.TileSourceList.Values);

            if (Device.OS == TargetPlatform.WinPhone)
            {
                var mapPage = new SelectionPage(contentUI.TxtMapSel, list);

                mapPage.SelList.ItemSelected += (ss, ee) =>
                {
                    var selMap = ee.SelectedItem.ToString();
                    SetMapSettings(selMap);
                };

                await ViewPage.Navigation.PushModalAsync(mapPage, true);
            }
            else
            {
                var selMap = await ViewPage.DisplayActionSheet(contentUI.TxtMapSel, null, null, list.ToArray());

                SetMapSettings(selMap);
            }
        }
Esempio n. 30
0
        public void GetViewDataFromViewPage()
        {
            // Arrange
            ViewPage p = new ViewPage();

            p.Controls.Add(new Control());
            ViewUserControl vuc = new ViewUserControl();

            p.Controls[0].Controls.Add(vuc);
            p.ViewData = new ViewDataDictionary
            {
                { "FirstName", "Joe" },
                { "LastName", "Schmoe" }
            };

            // Act
            object firstName = vuc.ViewData.Eval("FirstName");
            object lastName  = vuc.ViewData.Eval("LastName");

            // Assert
            Assert.Equal("Joe", firstName);
            Assert.Equal("Schmoe", lastName);
        }
Esempio n. 31
0
    public static void RenderWidgets(this ViewPage pg, Page page, bool useEditor, string zone)
    {
        if (page != null)
        {
            foreach (Widget widget in page.Widgets.Where(x => x.Zone.Equals(zone, StringComparison.InvariantCultureIgnoreCase)))
            {
                string viewName = useEditor ? widget.WidgetDefinition + "Edit" : widget.WidgetDefinition;

                if (widget.WidgetDefinition != null)
                {
                    pg.Html.RenderPartial(viewName, widget);
                }
                else if (!string.IsNullOrEmpty(widget.Title))
                {
                    pg.Html.RenderPartial("TitleAndText", widget);
                }
                else
                {
                    pg.Html.RenderPartial("TextOnly", widget);
                }
            }
        }
    }
    public static MvcHtmlString FocusScript <TViewModel>(this ViewPage <TViewModel> viewPage)
    {
        if (viewPage.ViewData["FieldToFocus"] == null)
        {
            return(MvcHtmlString.Empty);
        }
        object expression     = viewPage.ViewData["FieldToFocus"];
        Type   expressionType = expression.GetType();                                                                                       // expressionType = Expression<Func<TViewModel, TProperty>>
        Type   functionType   = expressionType.GetGenericArguments()[0];                                                                    // functionType = Func<TViewModel, TProperty>

        Type[] functionGenericArguments     = functionType.GetGenericArguments();                                                           // functionGenericArguments = [TViewModel, TProperty]
        System.Reflection.MethodInfo method = typeof(ViewPageExtensions).GetMethod("GetIdFor").MakeGenericMethod(functionGenericArguments); // method = GetIdFor<TViewModel, TProperty>
        MvcHtmlString id = (MvcHtmlString)method.Invoke(null, new[] { viewPage, expression });                                              // Call GetIdFor<TViewModel, TProperty>(viewPage, expression);

        return(MvcHtmlString.Create(
                   @"<script type=""text/javascript"" language=""javascript"">
                    $(document).ready(function() {
                        setTimeout(function() {
                            $('#" + id + @"').focus();
                        }, 500);
                    });
                </script>"));
    }
        async private void InitApp()
        {
            IsShowLoading = true;

            if (CheckInternet())
            {
                if (!await AppData.Discount.LoadData(OnProcessMessage))
                {
                    ProcessMessage = contentUI.TitleErrLoading;
                    await ViewPage.DisplayAlert(contentUI.TitleErrLoading, contentUI.MsgErrLoading, contentUI.TxtOk);

                    ProcessMessage = contentUI.TxtErrServiceConnection;
                    IsRetry        = true;
                    return;
                }

                ProcessMessage = "";
                //await Task.Delay(3000);//for fun, i will del it
                MessagingCenter.Send(this, "StartMainForm");
            }

            IsShowLoading = false;
        }
Esempio n. 34
0
        /// <summary>
        /// Shows a pager control - Creates a list of links that jump to each page
        /// </summary>
        /// <param name="page">The ViewPage instance this method executes on.</param>
        /// <param name="pagedList">A PagedList instance containing the data for the paged control</param>
        /// <param name="controllerName">Name of the controller.</param>
        /// <param name="actionName">Name of the action on the controller.</param>
        /// <example>@this.ShowPagerControl(Model, "Bids", "Page")</example>
        public static void ShowPagerControl(this ViewPage page, IPagedList pagedList, string controllerName, string actionName)
        {
            var writer = new HtmlTextWriter(page.Response.Output);

            if (writer != null)
            {
                for (int pageNum = 1; pageNum <= pagedList.TotalPages; pageNum++)
                {
                    if (pageNum != pagedList.CurrentPage)
                    {
                        writer.AddAttribute(HtmlTextWriterAttribute.Href, string.Format("/{0}/{1}/{2}", controllerName, actionName, pageNum));
                        writer.AddAttribute(HtmlTextWriterAttribute.Alt, string.Concat("Page ", pageNum));
                        writer.RenderBeginTag(HtmlTextWriterTag.A);
                    }

                    writer.AddAttribute(HtmlTextWriterAttribute.Class,
                                        pageNum == pagedList.CurrentPage ?
                                        "pageLinkCurrent" :
                                        "pageLink");

                    writer.RenderBeginTag(HtmlTextWriterTag.Span);
                    writer.Write(pageNum);
                    writer.RenderEndTag();

                    if (pageNum != pagedList.CurrentPage)
                    {
                        writer.RenderEndTag();
                    }

                    writer.Write("&nbsp;");
                }

                writer.Write("(");
                writer.Write(pagedList.TotalItems);
                writer.Write(" items in all)");
            }
        }
Esempio n. 35
0
        public void ActionXoaDangKy(string dangKyId)
        {
            int dkId   = HL.Core.Global.Convert.ToInt(dangKyId, 0);
            int userId = HL.Lib.Global.CPLogin.UserID;
            var entity = ModDonDangKyUCSCService.Instance.CreateQuery()
                         .Where(userId > 0, o => o.UserID == userId)
                         .Where(dkId > 0, o => o.ID == dkId)
                         .ToSingle();

            if (entity != null)
            {
                var httt = ModHeThongThongTinService.Instance.CreateQuery()
                           .Where(o => o.DonDangKyUCSCID == entity.ID)
                           .ToList();

                var nhanLuc = ModNhanLucUCSCService.Instance.CreateQuery()
                              .Where(o => o.DonDangKyUCSCID == entity.ID)
                              .ToList();

                ModDonDangKyUCSCService.Instance.Delete(entity.ID);
                if (httt != null)
                {
                    ModHeThongThongTinService.Instance.Delete(httt);
                }
                if (nhanLuc != null)
                {
                    ModNhanLucUCSCService.Instance.Delete(nhanLuc);
                }

                ViewPage.Alert("Xóa đăng ký thành công.");
                ViewPage.Navigate(ViewPage.CurrentURL);
            }
            else
            {
                ViewPage.Alert("Bạn không có quyền thao tác trên bản đăng ký này.");
            }
        }
        public void GetViewDataFromViewPageWithViewDataKeyPointingToViewDataDictionary()
        {
            // Arrange
            ViewDataDictionary vdd = new ViewDataDictionary()
            {
                { "Foo", "FooParent" },
                { "Bar", "BarParent" },
                {
                    "Child",
                    new ViewDataDictionary()
                    {
                        { "Foo", "FooChild" },
                        { "Bar", "BarChild" }
                    }
                }
            };

            ViewPage p = new ViewPage();

            p.Controls.Add(new Control());
            ViewUserControl vuc = new ViewUserControl()
            {
                ViewDataKey = "Child"
            };

            p.Controls[0].Controls.Add(vuc);
            p.ViewData = vdd;

            // Act
            object oFoo = vuc.ViewData.Eval("Foo");
            object oBar = vuc.ViewData.Eval("Bar");

            // Assert
            Assert.Equal(vdd["Child"], vuc.ViewData);
            Assert.Equal("FooChild", oFoo);
            Assert.Equal("BarChild", oBar);
        }
Esempio n. 37
0
        public int SelectCount(
            int?testExpressionID,
            string testExpressionJoinCriteria,
            string testExpressionLeftDataElementDataElementName,
            string testExpressionLeftDataElementEventName,
            string testExpressionRightDataElementDataElementName,
            string testExpressionRightDataElementEventName,
            string testExpressionOperatorCode,
            string testExpressionTemplateTemplateName,
            string testExpressionTestTestName,
            string testExpressionAtrributeEventAttributeID,
            string testExpressionLeftEventName,
            string testExpressionLeftEventEventTypeEventType,
            string testExpressionLeftEventLogSourceCode,
            string testExpressionLeftEventTimeSourceCode,
            string testExpressionRightEventName,
            string testExpressionRightEventEventTypeEventType,
            string testExpressionRightEventLogSourceCode,
            string testExpressionRightEventTimeSourceCode,
            int?testCriteriaID,
            string testCriteriaCode,
            bool?isPass,
            DateTime?dateCreated,
            DateTime?dateModified,
            string sort,
            int maximumRows,
            int startRowIndex,
            string dataView)
        {
            PageRequest request = CreateRequest(testExpressionID, testExpressionJoinCriteria, testExpressionLeftDataElementDataElementName, testExpressionLeftDataElementEventName, testExpressionRightDataElementDataElementName, testExpressionRightDataElementEventName, testExpressionOperatorCode, testExpressionTemplateTemplateName, testExpressionTestTestName, testExpressionAtrributeEventAttributeID, testExpressionLeftEventName, testExpressionLeftEventEventTypeEventType, testExpressionLeftEventLogSourceCode, testExpressionLeftEventTimeSourceCode, testExpressionRightEventName, testExpressionRightEventEventTypeEventType, testExpressionRightEventLogSourceCode, testExpressionRightEventTimeSourceCode, testCriteriaID, testCriteriaCode, isPass, dateCreated, dateModified, sort, -1, startRowIndex);

            request.RequiresMetaData = false;
            request.RequiresRowCount = true;
            ViewPage page = ControllerFactory.CreateDataController().GetPage("CB_PassFailCriteria", dataView, request);

            return(page.TotalRowCount);
        }
Esempio n. 38
0
        public int SelectCount(
            int?autoId,
            string code,
            string name,
            string code2,
            string code3,
            string locationCode,
            string plantCode,
            string addressCode,
            string contact,
            string address,
            string city,
            string state,
            string country,
            string zIPCode,
            string phone,
            string mobile,
            string fax,
            string email,
            string createBy,
            DateTime?createDate,
            string updateBy,
            DateTime?updateDate,
            string statusCode,
            string sort,
            int maximumRows,
            int startRowIndex,
            string dataView)
        {
            PageRequest request = CreateRequest(autoId, code, name, code2, code3, locationCode, plantCode, addressCode, contact, address, city, state, country, zIPCode, phone, mobile, fax, email, createBy, createDate, updateBy, updateDate, statusCode, sort, -1, startRowIndex);

            request.RequiresMetaData = false;
            request.RequiresRowCount = true;
            ViewPage page = ControllerFactory.CreateDataController().GetPage("CustomerImport", dataView, request);

            return(page.TotalRowCount);
        }
Esempio n. 39
0
        /// <summary>
        /// Request an address with the latitude and longitude.
        /// 위도와 경도를 요청합니다.
        /// </summary>
        /// <param name="latitude">Specifies the latitude for getting the address</param>
        /// <param name="longitude">Specifies the longitude for getting the address</param>
        public async void RequestAddress(double latitude, double longitude)
        {
            try
            {
                view = ViewPage.MAP_IN_PROGRESS;
                // Request an address with the latitude and longitude
                // 위도와 경도 요청
                var response = await s_maps.CreateReverseGeocodeRequest(latitude, longitude).GetResponseAsync();

                // Set the address to the popup
                // 주소를 팝업
                if (view == ViewPage.MAP_IN_PROGRESS)
                {
                    CreatePopup(response.First().Building.ToString() + " " + response.First().Street + " " + response.First().City + " " + response.First().State + " " + response.First().Country);
                    view = ViewPage.MAP;
                }
            }
            catch (Exception e)
            {
                // Display logs with the error message
                // 에러 메시지 로그를 표시합니다.
                Log.Debug("Map", e.Message.ToString());
            }
        }
        public string RenderViewToString(Controller controller, string viewName, object viewData)
        {
            //Added by Thamizhmani
            bool   IsSubsite    = Convert.ToBoolean(ConfigurationManager.AppSettings["IsSubsite"]);
            string SubsiteName  = ConfigurationManager.AppSettings["SubsiteName"].ToString();
            var    renderedView = new StringBuilder();

            using (var responseWriter = new StringWriter(renderedView))
            {
                HttpRequest httpRequest = null;
                if (IsSubsite == true)
                {
                    httpRequest = new HttpRequest("", "http://Localhost:8086/" + SubsiteName, "");
                }
                else
                {
                    httpRequest = new HttpRequest("", "http://Localhost:8086/", "");
                }
                //HttpRequest httpRequest = new HttpRequest("", "http://Localhost:8086/", "");
                var fakeResponse = new HttpResponse(responseWriter);
                //var fakeContext = new HttpContext(HttpContext.Current.Request, fakeResponse);
                var fakeContext           = new HttpContext(httpRequest, fakeResponse);
                var fakeControllerContext = new ControllerContext(new HttpContextWrapper(fakeContext), controller.ControllerContext.RouteData, controller.ControllerContext.Controller);

                var oldContext = HttpContext.Current;
                HttpContext.Current = fakeContext;

                using (var viewPage = new ViewPage())
                {
                    var html = new HtmlHelper(CreateViewContext(responseWriter, fakeControllerContext), viewPage);
                    html.RenderPartial(viewName, viewData);
                    HttpContext.Current = oldContext;
                }
            }
            return(renderedView.ToString());
        }
        public void GetWrongGenericViewItemTypeThrows()
        {
            // Arrange
            ViewPage p = new ViewPage();

            p.ViewData        = new ViewDataDictionary();
            p.ViewData["Foo"] = new DummyViewData {
                MyInt = 123, MyString = "Whatever"
            };

            MockViewUserControl <MyViewData> vuc = new MockViewUserControl <MyViewData>()
            {
                ViewDataKey = "FOO"
            };

            vuc.AppRelativeVirtualPath = "~/Foo.aspx";
            p.Controls.Add(new Control());
            p.Controls[0].Controls.Add(vuc);

            // Act
            Assert.Throws <InvalidOperationException>(
                delegate { var foo = vuc.ViewData.Model.IntProp; },
                @"The model item passed into the dictionary is of type 'System.Web.Mvc.Test.ViewUserControlTest+DummyViewData', but this dictionary requires a model item of type 'System.Web.Mvc.Test.ViewUserControlTest+MyViewData'.");
        }
Esempio n. 42
0
 private void ExportDataAsCsv(ViewPage page, DbDataReader reader, StreamWriter writer)
 {
     bool firstField = true;
     for (int i = 0; (i < page.Fields.Count); i++)
     {
         DataField field = page.Fields[i];
         if (!(field.Hidden))
         {
             if (firstField)
                 firstField = false;
             else
                 writer.Write(System.Globalization.CultureInfo.CurrentCulture.TextInfo.ListSeparator);
             if (!(String.IsNullOrEmpty(field.AliasName)))
                 field = page.FindField(field.AliasName);
             writer.Write("\"{0}\"", field.Label.Replace("\"", "\"\""));
         }
         field.NormalizeDataFormatString();
     }
     writer.WriteLine();
     while (reader.Read())
     {
         firstField = true;
         for (int j = 0; (j < page.Fields.Count); j++)
         {
             DataField field = page.Fields[j];
             if (!(field.Hidden))
             {
                 if (firstField)
                     firstField = false;
                 else
                     writer.Write(System.Globalization.CultureInfo.CurrentCulture.TextInfo.ListSeparator);
                 if (!(String.IsNullOrEmpty(field.AliasName)))
                     field = page.FindField(field.AliasName);
                 string text = String.Empty;
                 object v = reader[field.Name];
                 if (!(DBNull.Value.Equals(v)))
                 {
                     if (!(String.IsNullOrEmpty(field.DataFormatString)))
                         text = String.Format(field.DataFormatString, v);
                     else
                         text = Convert.ToString(v);
                     writer.Write("\"{0}\"", text.Replace("\"", "\"\""));
                 }
                 else
                     writer.Write("\"\"");
             }
         }
         writer.WriteLine();
     }
 }
Esempio n. 43
0
 private void ExportDataAsRowset(ViewPage page, DbDataReader reader, StreamWriter writer)
 {
     string s = "uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882";
     string dt = "uuid:C2F41010-65B3-11d1-A29F-00AA00C14882";
     string rs = "urn:schemas-microsoft-com:rowset";
     string z = "#RowsetSchema";
     XmlWriterSettings settings = new XmlWriterSettings();
     settings.CloseOutput = false;
     XmlWriter output = XmlWriter.Create(writer, settings);
     output.WriteStartDocument();
     output.WriteStartElement("xml");
     output.WriteAttributeString("xmlns", "s", null, s);
     output.WriteAttributeString("xmlns", "dt", null, dt);
     output.WriteAttributeString("xmlns", "rs", null, rs);
     output.WriteAttributeString("xmlns", "z", null, z);
     // declare rowset schema
     output.WriteStartElement("Schema", s);
     output.WriteAttributeString("id", "RowsetSchema");
     output.WriteStartElement("ElementType", s);
     output.WriteAttributeString("name", "row");
     output.WriteAttributeString("content", "eltOnly");
     output.WriteAttributeString("CommandTimeout", rs, "60");
     List<DataField> fields = new List<DataField>();
     foreach (DataField field in page.Fields)
         if (!((field.Hidden || field.OnDemand)) && !(fields.Contains(field)))
         {
             DataField aliasField = field;
             if (!(String.IsNullOrEmpty(field.AliasName)))
                 aliasField = page.FindField(field.AliasName);
             fields.Add(aliasField);
         }
     int number = 1;
     foreach (DataField field in fields)
     {
         field.NormalizeDataFormatString();
         output.WriteStartElement("AttributeType", s);
         output.WriteAttributeString("name", field.Name);
         output.WriteAttributeString("number", rs, number.ToString());
         output.WriteAttributeString("nullable", rs, "true");
         output.WriteAttributeString("name", rs, field.Label);
         output.WriteStartElement("datatype", s);
         string type = RowsetTypeMap[field.Type];
         string dbType = null;
         if ("{0:c}".Equals(field.DataFormatString, StringComparison.CurrentCultureIgnoreCase))
             dbType = "currency";
         else
             if (!(String.IsNullOrEmpty(field.DataFormatString)) && field.Type != "DateTime")
                 type = "string";
         output.WriteAttributeString("type", dt, type);
         output.WriteAttributeString("dbtype", rs, dbType);
         output.WriteEndElement();
         output.WriteEndElement();
         number++;
     }
     output.WriteStartElement("extends", s);
     output.WriteAttributeString("type", "rs:rowbase");
     output.WriteEndElement();
     output.WriteEndElement();
     output.WriteEndElement();
     // output rowset data
     output.WriteStartElement("data", rs);
     while (reader.Read())
     {
         output.WriteStartElement("row", z);
         foreach (DataField field in fields)
         {
             object v = reader[field.Name];
             if (!(DBNull.Value.Equals(v)))
                 if (!(String.IsNullOrEmpty(field.DataFormatString)) && !(((field.DataFormatString == "{0:d}") || (field.DataFormatString == "{0:c}"))))
                     output.WriteAttributeString(field.Name, String.Format(field.DataFormatString, v));
                 else
                     if (field.Type == "DateTime")
                         output.WriteAttributeString(field.Name, ((DateTime)(v)).ToString("s"));
                     else
                         output.WriteAttributeString(field.Name, v.ToString());
         }
         output.WriteEndElement();
     }
     output.WriteEndElement();
     output.WriteEndElement();
     output.WriteEndDocument();
     output.Close();
 }
Esempio n. 44
0
        public void ViewBagProperty_PropagatesChangesToViewData() {
            // Arrange
            ViewPage page = new ViewPage();
            page.ViewData["A"] = 1;

            // Act
            page.ViewBag.A = "foo";
            page.ViewBag.B = 2;

            // Assert
            Assert.AreEqual("foo", page.ViewData["A"]);
            Assert.AreEqual(2, page.ViewData["B"]);
        }
Esempio n. 45
0
        public void ViewBagProperty_ReflectsNewViewDataInstance() {
            // Arrange
            ViewPage page = new ViewPage();
            page.ViewData["A"] = 1;
            page.ViewData = new ViewDataDictionary() { { "A", "bar" } };

            // Act & Assert
            Assert.AreEqual("bar", page.ViewBag.A);
        }
Esempio n. 46
0
        public void ViewBagProperty_ReflectsViewData() {
            // Arrange
            ViewPage page = new ViewPage();
            page.ViewData["A"] = 1;

            // Act & Assert
            Assert.IsNotNull(page.ViewBag);
            Assert.AreEqual(1, page.ViewBag.A);
        }
Esempio n. 47
0
 void IPlugIn.PreProcessPageRequest(PageRequest request, ViewPage page)
 {
     XPathNavigator view = _config.SelectSingleNode("//c:view[@id=\'{0}\' and @type=\'Form\']/c:categories", request.View);
     if ((view != null) && ((request.PageSize > 0) && (!(request.Inserting) && (_config.SelectSingleNode("/c:dataController/c:fields/c:field[@name=\'_Annotation_NoteNew\']") == null))))
     {
         _requireProcessing = true;
         string ns = ControllerConfiguration.Namespace;
         List<DynamicExpression> expressions = new List<DynamicExpression>(_config.Expressions);
         // create NewXXX fields under "fields" node
         StringBuilder sb = new StringBuilder();
         XmlWriterSettings settings = new XmlWriterSettings();
         settings.ConformanceLevel = ConformanceLevel.Fragment;
         XmlWriter writer = XmlWriter.Create(sb, settings);
         // NoteNew field
         writer.WriteStartElement("field", ns);
         writer.WriteAttributeString("name", "_Annotation_NoteNew");
         writer.WriteAttributeString("type", "String");
         writer.WriteAttributeString("allowSorting", "false");
         writer.WriteAttributeString("allowQBE", "false");
         writer.WriteAttributeString("label", Localizer.Replace("AnnotationNoteNewFieldLabel", "Notes"));
         writer.WriteAttributeString("computed", "true");
         writer.WriteElementString("formula", ns, "null");
         writer.WriteEndElement();
         DynamicExpression de = new DynamicExpression();
         de.Target = "_Annotation_NoteNew";
         de.Scope = DynamicExpressionScope.DataFieldVisibility;
         de.Type = DynamicExpressionType.ClientScript;
         de.Test = "this.get_isEditing()";
         de.ViewId = request.View;
         expressions.Add(de);
         // AttachmentNew field
         writer.WriteStartElement("field", ns);
         writer.WriteAttributeString("name", "_Annotation_AttachmentNew");
         writer.WriteAttributeString("type", "Byte[]");
         writer.WriteAttributeString("onDemand", "true");
         writer.WriteAttributeString("sourceFields", this.KeyFields);
         writer.WriteAttributeString("onDemandHandler", "AnnotationPlugIn");
         writer.WriteAttributeString("allowQBE", "false");
         writer.WriteAttributeString("allowSorting", "false");
         writer.WriteAttributeString("label", Localizer.Replace("AnnotationAttachmentNewFieldLabel", "Attachment"));
         writer.WriteAttributeString("computed", "true");
         writer.WriteElementString("formula", ns, "null");
         writer.WriteEndElement();
         writer.Close();
         this.Fields.AppendChild(sb.ToString());
         DynamicExpression ade = new DynamicExpression();
         ade.Target = "_Annotation_AttachmentNew";
         ade.Scope = DynamicExpressionScope.DataFieldVisibility;
         ade.Type = DynamicExpressionType.ClientScript;
         ade.Test = "this.get_isEditing()";
         ade.ViewId = request.View;
         expressions.Add(ade);
         // create NewXXX data fields under "view/dataFields" node
         sb = new StringBuilder();
         writer = XmlWriter.Create(sb);
         writer.WriteStartElement("category", ns);
         writer.WriteAttributeString("id", "Annotations");
         writer.WriteAttributeString("headerText", Localizer.Replace("AnnotationCategoryHeaderText", "Notes and Attachments"));
         writer.WriteElementString("description", ns, Localizer.Replace("AnnotationCategoryDescription", "Enter optional notes and attach files."));
         writer.WriteStartElement("dataFields", ns);
         // _Annotation_NoteNew dataField
         writer.WriteStartElement("dataField", ns);
         writer.WriteAttributeString("fieldName", "_Annotation_NoteNew");
         writer.WriteAttributeString("columns", "50");
         writer.WriteAttributeString("rows", "7");
         writer.WriteEndElement();
         // _Annotation_AttachmentNew
         writer.WriteStartElement("dataField", ns);
         writer.WriteAttributeString("fieldName", "_Annotation_AttachmentNew");
         writer.WriteEndElement();
         writer.WriteEndElement();
         writer.WriteEndElement();
         writer.Close();
         view.AppendChild(sb.ToString());
         _retrieveAnnotations = !(request.Inserting);
         _config.Expressions = expressions.ToArray();
     }
 }
Esempio n. 48
0
 protected virtual BusinessRules InitBusinessRules(PageRequest request, ViewPage page)
 {
     BusinessRules rules = _config.CreateBusinessRules();
     _serverRules = rules;
     if (_serverRules == null)
         _serverRules = CreateBusinessRules();
     _serverRules.Page = page;
     _serverRules.RequiresRowCount = (page.RequiresRowCount && !((request.Inserting || request.DoesNotRequireData)));
     if (rules != null)
         rules.BeforeSelect(request);
     else
         _serverRules.ExecuteServerRules(request, ActionPhase.Before);
     return rules;
 }
		private void RenderViewPage(ViewContext context, ViewPage page)
		{
			if(!string.IsNullOrEmpty(this.MasterPath))
				page.MasterLocation = this.MasterPath;

			page.Init += delegate
			{
				//动态添加页面内容
				this.GeneratePageContent(context, page);
			};

			page.ViewData = context.ViewData;
			page.RenderView(context);
		}
Esempio n. 50
0
 internal static void RenderViewAndRestoreContentType(ViewPage containerPage, ViewContext viewContext) {
     // We need to restore the Content-Type since Page.SetIntrinsics() will reset it. It's not possible
     // to work around the call to SetIntrinsics() since the control's render method requires the
     // containing page's Response property to be non-null, and SetIntrinsics() is the only way to set
     // this.
     string savedContentType = viewContext.HttpContext.Response.ContentType;
     containerPage.RenderView(viewContext);
     viewContext.HttpContext.Response.ContentType = savedContentType;
 }
Esempio n. 51
0
        private void RenderViewPage(ViewContext context, ViewPage page)
        {
            if (!String.IsNullOrEmpty(BaseView.MasterPath))
            {
                page.MasterLocation = BaseView.MasterPath;
            }

            page.ViewData = context.ViewData;

            page.PreLoad += (sender, e) => BuildUpMasterPage(page.Master);

            page.RenderView(context);
        }
Esempio n. 52
0
 public static string GenerateDataRecordPath(string controller, ViewPage page, FieldValue[] values, int rowIndex)
 {
     // Sample path:
     // [Documents]\Code OnTime\Projects\Web Site Factory\Annotations\App_Data\OrderDetails\10248,11
     // Sample URL parameter:
     // u|OrderDetails,_Annotation_AttachmentNew|10248|11
     string p = AnnotationPlugIn.AnnotationsPath;
     if (String.IsNullOrEmpty(controller))
     {
         string handlerInfo = HttpContext.Current.Request["AnnotationPlugIn"];
         Match m = Regex.Match(handlerInfo, "^((t|o|u)\\|){0,1}\\w+\\|(\\w+).+?\\|(.+)?$");
         if (m.Success)
         {
             p = Path.Combine(p, m.Groups[3].Value);
             p = Path.Combine(p, m.Groups[4].Value.Replace("|", ","));
         }
     }
     else
     {
         p = Path.Combine(p, controller);
         string keys = String.Empty;
         foreach (DataField field in page.Fields)
             if (field.IsPrimaryKey)
             {
                 string keyValue = null;
                 if (values == null)
                     keyValue = Convert.ToString(page.Rows[rowIndex][page.Fields.IndexOf(field)]);
                 else
                     foreach (FieldValue v in values)
                         if (v.Name == field.Name)
                         {
                             keyValue = Convert.ToString(v.Value);
                             break;
                         }
                 if (keys.Length > 0)
                     keys = (keys + ",");
                 keys = (keys + keyValue.Trim());
             }
         p = Path.Combine(p, keys);
     }
     return p;
 }
Esempio n. 53
0
 void IPlugIn.ProcessPageRequest(PageRequest request, ViewPage page)
 {
     if (page.Rows.Count == 0)
     {
         page.Icons = new string[0];
         return;
     }
     if (!(_requireProcessing))
     {
         List<string> icons = new List<string>();
         for (int i = 0; (i < page.Rows.Count); i++)
         {
             string rowDir = AnnotationPlugIn.GenerateDataRecordPath(request.Controller, page, null, i);
             if (Directory.Exists(rowDir))
                 icons.Add("Attachment");
             else
                 icons.Add(null);
         }
         page.Icons = icons.ToArray();
         return;
     }
     List<DynamicExpression> expressions = new List<DynamicExpression>(page.Expressions);
     DynamicExpression de = new DynamicExpression();
     de.Target = "Annotations";
     de.Scope = DynamicExpressionScope.CategoryVisibility;
     de.Type = DynamicExpressionType.ClientScript;
     de.Test = "!this.get_isInserting()";
     de.ViewId = page.View;
     expressions.Add(de);
     page.Expressions = expressions.ToArray();
     if (!(_retrieveAnnotations))
         return;
     DataField field = page.FindField("_Annotation_AttachmentNew");
     if (field != null)
     {
         int fieldIndex = page.Fields.IndexOf(field);
         string newValue = String.Format("{0},{1}|{2}", request.Controller, field.Name, Regex.Replace(((string)(page.Rows[0][fieldIndex])), "^\\w+\\|(.+)$", "$1"));
         if (field.Name == "_Annotation_AttachmentNew")
             newValue = ("null|" + newValue);
         page.Rows[0][fieldIndex] = newValue;
     }
     string p = AnnotationPlugIn.GenerateDataRecordPath(request.Controller, page, null, 0);
     if (Directory.Exists(p))
     {
         string[] files = Directory.GetFiles(p, "*.xml");
         List<object> values = new List<object>(page.Rows[0]);
         int i = (files.Length - 1);
         while (i >= 0)
         {
             string filename = files[i];
             XPathDocument doc = new XPathDocument(filename);
             XPathNavigator nav = doc.CreateNavigator().SelectSingleNode("/*");
             DataField f = null;
             if (nav.Name == "note")
             {
                 f = new DataField();
                 f.Name = "_Annotation_Note";
                 f.Type = "String";
                 f.HeaderText = String.Format(Localizer.Replace("AnnotationNoteDynamicFieldHeaderText", "{0} written at {1}"), ReadNameAndEmail(nav), Convert.ToDateTime(nav.GetAttribute("timestamp", String.Empty)));
                 f.Columns = 50;
                 f.Rows = 7;
                 f.TextMode = TextInputMode.Note;
                 values.Add(nav.Value);
             }
             else
                 if (nav.Name == "attachment")
                 {
                     f = new DataField();
                     f.Name = "_Annotation_Attachment";
                     f.Type = "Byte[]";
                     f.HeaderText = String.Format(Localizer.Replace("AnnotationAttachmentDynamicFieldHeaderText", "{0} attached <b>{1}</b> at {2}"), ReadNameAndEmail(nav), nav.GetAttribute("fileName", String.Empty), Convert.ToDateTime(nav.GetAttribute("timestamp", String.Empty)));
                     f.OnDemand = true;
                     f.OnDemandHandler = "AnnotationPlugIn";
                     f.OnDemandStyle = OnDemandDisplayStyle.Link;
                     if (nav.GetAttribute("contentType", String.Empty).StartsWith("image/"))
                         f.OnDemandStyle = OnDemandDisplayStyle.Thumbnail;
                     f.CategoryIndex = (page.Categories.Count - 1);
                     values.Add(nav.GetAttribute("value", String.Empty));
                 }
             if (f != null)
             {
                 f.Name = (f.Name + Path.GetFileNameWithoutExtension(filename));
                 f.AllowNulls = true;
                 f.CategoryIndex = (page.Categories.Count - 1);
                 if (!(Controller.UserIsInRole("Administrators")))
                     f.ReadOnly = true;
                 page.Fields.Add(f);
             }
             i = (i - 1);
         }
         page.Rows[0] = values.ToArray();
         if (files.Length > 0)
         {
             page.Categories[(page.Categories.Count - 1)].Tab = Localizer.Replace("AnnotationTab", "Notes & Attachments");
             expressions.RemoveAt((expressions.Count - 1));
             page.Expressions = expressions.ToArray();
         }
     }
     else
     {
         de.Test = "this.get_isEditing() && this.get_view()._displayAnnotations";
         ActionGroup g = new ActionGroup();
         page.ActionGroups.Add(g);
         g.Scope = "ActionBar";
         g.Flat = true;
         Action a = new Action();
         g.Actions.Add(a);
         a.WhenLastCommandName = "Edit";
         a.WhenView = page.View;
         a.CommandName = "ClientScript";
         a.CommandArgument = "this.get_view()._displayAnnotations=true;this._focusedFieldName = \'_Annotation_No" +
             "teNew\';this._raiseSelectedDelayed=false;";
         a.HeaderText = Localizer.Replace("AnnotationActionHeaderText", "Annotate");
         a.CssClass = "AttachIcon";
         a.WhenClientScript = "this.get_view()._displayAnnotations!=true;";
     }
 }
Esempio n. 54
0
 void IPlugIn.ProcessArguments(ActionArgs args, ActionResult result, ViewPage page)
 {
     if (_annotations.Count == 0)
         return;
     string p = AnnotationPlugIn.GenerateDataRecordPath(args.Controller, page, args.Values, 0);
     if (!(Directory.Exists(p)))
         Directory.CreateDirectory(p);
     foreach (FieldValue v in _annotations)
     {
         Match m = Regex.Match(v.Name, "^_Annotation_(Note)(New|\\w+)$");
         if (m.Success)
         {
             if (m.Groups[1].Value == "Note")
             {
                 string fileName = m.Groups[2].Value;
                 if (fileName == "New")
                 {
                     fileName = DateTime.Now.ToString("u");
                     fileName = Regex.Replace(fileName, "[\\W]", String.Empty);
                 }
                 fileName = Path.Combine(p, (fileName + ".xml"));
                 if (!(String.IsNullOrEmpty(Convert.ToString(v.NewValue))))
                 {
                     XmlWriterSettings settings = new XmlWriterSettings();
                     settings.CloseOutput = true;
                     XmlWriter writer = XmlWriter.Create(new FileStream(fileName, FileMode.Create), settings);
                     try
                     {
                         writer.WriteStartElement("note");
                         writer.WriteAttributeString("timestamp", DateTime.Now.ToString("o"));
                         writer.WriteAttributeString("username", HttpContext.Current.User.Identity.Name);
                         writer.WriteAttributeString("email", AnnotationPlugIn.UserEmail);
                         writer.WriteString(Convert.ToString(v.NewValue));
                         writer.WriteEndElement();
                     }
                     finally
                     {
                         writer.Close();
                     }
                 }
                 else
                 {
                     File.Delete(fileName);
                     if (Directory.GetFiles(p).Length == 0)
                         Directory.Delete(p);
                 }
             }
         }
     }
 }
Esempio n. 55
0
 protected virtual void SyncRequestedPage(PageRequest request, ViewPage page, DbConnection connection)
 {
     if (((request.SyncKey == null) || (request.SyncKey.Length == 0)) || (page.PageSize < 0))
         return;
     List<DataField> keyFields = new List<DataField>();
     foreach (DataField field in page.Fields)
         if (field.IsPrimaryKey)
             keyFields.Add(field);
     if ((keyFields.Count > 0) && (keyFields.Count == request.SyncKey.Length))
     {
         DbCommand syncCommand = CreateCommand(connection);
         ConfigureCommand(syncCommand, page, CommandConfigurationType.Sync, null);
         bool useSkip = (_serverRules.EnableResultSet || SupportsSkipInSelect(syncCommand));
         if (!(useSkip))
             for (int i = 0; (i < keyFields.Count); i++)
             {
                 DataField field = keyFields[i];
                 DbParameter p = syncCommand.CreateParameter();
                 p.ParameterName = String.Format("{0}PrimaryKey_{1}", _parameterMarker, field.Name);
                 AssignParameterValue(p, field.Type, request.SyncKey[i]);
                 syncCommand.Parameters.Add(p);
             }
         DbDataReader reader;
         if (_serverRules.EnableResultSet)
             reader = ExecuteResultSetReader(page);
         else
             reader = syncCommand.ExecuteReader();
         if (!(useSkip))
         {
             if (reader.Read())
             {
                 long rowIndex = Convert.ToInt64(reader[0]);
                 page.PageIndex = Convert.ToInt32(Math.Floor((Convert.ToDouble((rowIndex - 1)) / Convert.ToDouble(page.PageSize))));
                 page.PageOffset = 0;
             }
         }
         else
         {
             long rowIndex = 1;
             List<int> keyFieldIndexes = new List<int>();
             foreach (DataField pkField in keyFields)
                 keyFieldIndexes.Add(reader.GetOrdinal(pkField.Name));
             while (reader.Read())
             {
                 int matchCount = 0;
                 foreach (int primaryKeyFieldIndex in keyFieldIndexes)
                     if (Convert.ToString(reader[primaryKeyFieldIndex]) == Convert.ToString(request.SyncKey[matchCount]))
                         matchCount++;
                     else
                         break;
                 if (matchCount == keyFieldIndexes.Count)
                 {
                     page.PageIndex = Convert.ToInt32(Math.Floor((Convert.ToDouble((rowIndex - 1)) / Convert.ToDouble(page.PageSize))));
                     page.PageOffset = 0;
                     page.ResetSkipCount(false);
                     break;
                 }
                 else
                     rowIndex++;
             }
         }
         reader.Close();
     }
 }
Esempio n. 56
0
 private void ExecuteDataExport(ActionArgs args, ActionResult result)
 {
     if (!(String.IsNullOrEmpty(args.CommandArgument)))
     {
         string[] arguments = args.CommandArgument.Split(',');
         if (arguments.Length > 0)
         {
             bool sameController = (args.Controller == arguments[0]);
             args.Controller = arguments[0];
             if (arguments.Length == 1)
                 args.View = "grid1";
             else
                 args.View = arguments[1];
             if (sameController)
                 args.SortExpression = null;
             SelectView(args.Controller, args.View);
         }
     }
     PageRequest request = new PageRequest(-1, -1, null, null);
     request.SortExpression = args.SortExpression;
     request.Filter = args.Filter;
     request.ContextKey = null;
     request.PageIndex = 0;
     request.PageSize = Int32.MaxValue;
     request.View = args.View;
     if (args.CommandName.EndsWith("Template"))
     {
         request.PageSize = 0;
         args.CommandName = "ExportCsv";
     }
     // store export data to a temporary file
     string fileName = Path.GetTempFileName();
     StreamWriter writer = File.CreateText(fileName);
     try
     {
         ViewPage page = new ViewPage(request);
         page.ApplyDataFilter(_config.CreateDataFilter(), args.Controller, args.View, null, null, null);
         if (_serverRules == null)
         {
             _serverRules = _config.CreateBusinessRules();
             if (_serverRules == null)
                 _serverRules = CreateBusinessRules();
         }
         _serverRules.Page = page;
         _serverRules.ExecuteServerRules(request, ActionPhase.Before);
         using (DbConnection connection = CreateConnection())
         {
             DbCommand selectCommand = CreateCommand(connection);
             if ((selectCommand == null) && _serverRules.EnableResultSet)
             {
                 PopulatePageFields(page);
                 EnsurePageFields(page, null);
             }
             ConfigureCommand(selectCommand, page, CommandConfigurationType.Select, null);
             DbDataReader reader = ExecuteResultSetReader(page);
             if (reader == null)
                 reader = selectCommand.ExecuteReader();
             if (args.CommandName.EndsWith("Csv"))
                 ExportDataAsCsv(page, reader, writer);
             if (args.CommandName.EndsWith("Rss"))
                 ExportDataAsRss(page, reader, writer);
             if (args.CommandName.EndsWith("Rowset"))
                 ExportDataAsRowset(page, reader, writer);
             reader.Close();
         }
         _serverRules.ExecuteServerRules(request, ActionPhase.After);
     }
     finally
     {
         writer.Close();
     }
     result.Values.Add(new FieldValue("FileName", null, fileName));
 }
Esempio n. 57
0
 protected virtual bool RequiresHierarchy(ViewPage page)
 {
     if (!((GetRequestedViewType(page) == "DataSheet")))
         return false;
     foreach (DataField field in page.Fields)
         if (field.IsTagged("hierarchy-parent"))
         {
             if ((page.Filter != null) && (page.Filter.Length > 0))
                 return false;
             return true;
         }
     return false;
 }
Esempio n. 58
0
 private void ExportDataAsRss(ViewPage page, DbDataReader reader, StreamWriter writer)
 {
     string appPath = Regex.Replace(HttpContext.Current.Request.Url.AbsoluteUri, "^(.+)Export.ashx.+$", "$1", RegexOptions.IgnoreCase);
     XmlWriterSettings settings = new XmlWriterSettings();
     settings.CloseOutput = false;
     XmlWriter output = XmlWriter.Create(writer, settings);
     output.WriteStartDocument();
     output.WriteStartElement("rss");
     output.WriteAttributeString("version", "2.0");
     output.WriteStartElement("channel");
     output.WriteElementString("title", ((string)(_view.Evaluate("string(concat(/c:dataController/@label, \' | \',  @label))", Resolver))));
     output.WriteElementString("lastBuildDate", DateTime.Now.ToString("r"));
     output.WriteElementString("language", System.Threading.Thread.CurrentThread.CurrentCulture.Name.ToLower());
     int rowCount = 0;
     while ((rowCount < MaximumRssItems) && reader.Read())
     {
         output.WriteStartElement("item");
         bool hasTitle = false;
         bool hasPubDate = false;
         StringBuilder desc = new StringBuilder();
         for (int i = 0; (i < page.Fields.Count); i++)
         {
             DataField field = page.Fields[i];
             if (!(field.Hidden))
             {
                 if (rowCount == 0)
                     field.NormalizeDataFormatString();
                 if (!(String.IsNullOrEmpty(field.AliasName)))
                     field = page.FindField(field.AliasName);
                 string text = String.Empty;
                 object v = reader[field.Name];
                 if (!(DBNull.Value.Equals(v)))
                     if (!(String.IsNullOrEmpty(field.DataFormatString)))
                         text = String.Format(field.DataFormatString, v);
                     else
                         text = Convert.ToString(v);
                 if (!(hasPubDate) && (field.Type == "DateTime"))
                 {
                     hasPubDate = true;
                     if (!(String.IsNullOrEmpty(text)))
                         output.WriteElementString("pubDate", ((DateTime)(reader[field.Name])).ToString("r"));
                 }
                 if (!(hasTitle))
                 {
                     hasTitle = true;
                     output.WriteElementString("title", text);
                     StringBuilder link = new StringBuilder();
                     link.Append(_config.Evaluate("string(/c:dataController/@name)"));
                     foreach (DataField pkf in page.Fields)
                         if (pkf.IsPrimaryKey)
                             link.Append(String.Format("&{0}={1}", pkf.Name, reader[pkf.Name]));
                     string itemGuid = String.Format("{0}Details.aspx?l={1}", appPath, HttpUtility.UrlEncode(Convert.ToBase64String(Encoding.Default.GetBytes(link.ToString()))));
                     output.WriteElementString("link", itemGuid);
                     output.WriteElementString("guid", itemGuid);
                 }
                 else
                     if (!(String.IsNullOrEmpty(field.OnDemandHandler)) && (field.OnDemandStyle == OnDemandDisplayStyle.Thumbnail))
                     {
                         if (text.Equals("1"))
                         {
                             desc.AppendFormat("{0}:<br /><img src=\"{1}Blob.ashx?{2}=t", HttpUtility.HtmlEncode(field.Label), appPath, field.OnDemandHandler);
                             foreach (DataField f in page.Fields)
                                 if (f.IsPrimaryKey)
                                 {
                                     desc.Append("|");
                                     desc.Append(reader[f.Name]);
                                 }
                             desc.Append("\" style=\"width:92px;height:71px;\"/><br />");
                         }
                     }
                     else
                         desc.AppendFormat("{0}: {1}<br />", HttpUtility.HtmlEncode(field.Label), HttpUtility.HtmlEncode(text));
             }
         }
         output.WriteStartElement("description");
         output.WriteCData(String.Format("<span style=\\\"font-size:small;\\\">{0}</span>", desc.ToString()));
         output.WriteEndElement();
         output.WriteEndElement();
         rowCount++;
     }
     output.WriteEndElement();
     output.WriteEndElement();
     output.WriteEndDocument();
     output.Close();
 }
Esempio n. 59
0
 public void AssignDynamicExpressions(ViewPage page)
 {
     List<DynamicExpression> list = new List<DynamicExpression>();
     foreach (DynamicExpression de in _expressions)
         if (de.AllowedInView(page.View))
             list.Add(de);
     page.Expressions = list.ToArray();
 }
Esempio n. 60
0
 void IPlugIn.PreProcessArguments(ActionArgs args, ActionResult result, ViewPage page)
 {
     _annotations = new List<FieldValue>();
     if (args.Values != null)
         foreach (FieldValue v in args.Values)
             if (v.Name.StartsWith("_Annotation_") && v.Modified)
             {
                 _annotations.Add(v);
                 v.Modified = false;
             }
 }