Esempio n. 1
0
 string ObjectKey(ViewShortcut currentShortcut, IModelViewFriendlyUrl modelView) {
     if (!string.IsNullOrEmpty(currentShortcut.ObjectKey)) {
         var objectByKey = GetObjectByKey(currentShortcut.ObjectKey, modelView.AsObjectView);
         return GetFriendlyObjectKey(modelView, objectByKey);
     }
     return null;
 }
        public override string GetQueryString(ViewShortcut viewShortcut)
        {
            if (viewShortcut != null && !IsNewObjectView(viewShortcut))
            {
                if (IsListView(viewShortcut.ViewId) && reductions.TryGetValue(viewShortcut.ToString(), out string str))
                {
                    return(str);
                }
                if (IsDetailView(viewShortcut.ViewId))
                {
                    IModelViewFriendlyUrl modelView = (IModelViewFriendlyUrl)WebApplication.Instance.Model.Views[viewShortcut.ViewId];
                    var    objectKey = ObjectKey(viewShortcut, modelView);
                    string strmode   = viewShortcut.TryGetValue("mode", out string mode) ? string.Format("&mode={0}", mode) : "";
                    string strView   = string.Empty;
                    if (objectKey != null)
                    {
                        strView = strmode == "" ? viewShortcut.ToString().Replace(objectKey, "{0}") : viewShortcut.ToString().Replace(objectKey, "{0}").Replace(strmode, "");
                    }
                    else
                    {
                        strView = strmode == "" ? viewShortcut.ToString() : viewShortcut.ToString().Replace(strmode, "");
                    }

                    if (reductions.TryGetValue(strView, out str))
                    {
                        return(string.Format("{0}?{1}={2}{3}", str, ((IModelDetailViewFriendlyUrl)modelView).Url.ValueMemberName, objectKey, strmode));
                    }
                }
            }

            return(base.GetQueryString(viewShortcut));
        }
 string ObjectKey(ViewShortcut currentShortcut, IModelViewFriendlyUrl modelView)
 {
     if (!string.IsNullOrEmpty(currentShortcut.ObjectKey))
     {
         var objectByKey = GetObjectByKey(currentShortcut.ObjectKey, modelView.AsObjectView);
         return(GetFriendlyObjectKey(modelView, objectByKey));
     }
     return(null);
 }
 string GetFriendlyObjectKey(IModelViewFriendlyUrl modelView, object objectByKey)
 {
     if (modelView.AsObjectView != null && modelView.AsObjectView.ModelClass.TypeInfo.IsPersistent)
     {
         var friendlyKeyMember = ((IModelDetailViewFriendlyUrl)modelView).Url.ValueMemberName;
         var memberInfo        = modelView.AsObjectView.ModelClass.FindMember(friendlyKeyMember).MemberInfo;
         if (objectByKey != null)
         {
             var value = memberInfo.GetValue(objectByKey);
             return(value?.ToString());
         }
     }
     return(null);
 }
Esempio n. 5
0
 string GetFriendlyObjectKey(IModelViewFriendlyUrl modelView, object objectByKey) {
     if (modelView.AsObjectView != null && modelView.AsObjectView.ModelClass.TypeInfo.IsPersistent) {
         var friendlyKeyMember = ((IModelDetailViewFriendlyUrl)modelView).Url.ValueMemberName;
         var memberInfo = modelView.AsObjectView.ModelClass.FindMember(friendlyKeyMember).MemberInfo;
         if (objectByKey != null) {
             var value = memberInfo.GetValue(objectByKey);
             return value != null ? value.ToString() : null;
         }
     }
     return null;
 }