示例#1
0
        public IHttpActionResult Get(int?workspaceId = null)
        {
            try
            {
                View view = GetView(AppView);

                Durados.Workspace workspace = null;
                if (workspaceId.HasValue)
                {
                    workspace = Map.Database.GetWorkspace(workspaceId.Value);
                    if (workspace == null)
                    {
                        return(ResponseMessage(Request.CreateResponse(HttpStatusCode.NotFound, Messages.WorkspaceNotFound)));
                    }
                }
                else
                {
                    workspace = Map.Database.GetDefaultWorkspace();
                    if (workspace == null)
                    {
                        workspace = Map.Database.GetPublicWorkspace();
                    }
                }

                var item = RestHelper.GetApp(view, workspace, Map.Database, false);

                return(Ok(item));
            }
            catch (Exception exception)
            {
                throw new BackAndApiUnexpectedResponseException(exception, this);
            }
        }
示例#2
0
        public static Workspace GetCurrentWorkspace(string viewName)
        {
            Durados.Workspace workspace = null;

            if (!string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.QueryString["menuId"]))
            {
                int menuId = Convert.ToInt32(System.Web.HttpContext.Current.Request.QueryString["menuId"].TrimEnd('#'));

                workspace = Map.Database.GetWorkspaceByMenu(menuId);

                if (workspace != null)
                {
                    return(workspace);
                }
            }
            else
            {
                if (!string.IsNullOrEmpty(viewName))
                {
                    foreach (Workspace w in Map.Database.Workspaces.Values)
                    {
                        SpecialMenu menu = w.GetSpecialMenu(viewName);
                        if (menu != null)
                        {
                            return(w);
                        }
                    }
                }
            }

            object o = Map.Session["workspaceId"];

            if (o == null)
            {
                workspace = Map.Database.GetDefaultWorkspace();
                if (workspace == null)
                {
                    if (!string.IsNullOrEmpty(viewName) && Map.Database.Views.ContainsKey(viewName) && Map.Database.Workspaces.ContainsKey(Map.Database.Views[viewName].WorkspaceID))
                    {
                        workspace = Map.Database.Workspaces[Map.Database.Views[viewName].WorkspaceID];
                    }
                    else if (!string.IsNullOrEmpty(viewName) && Map.GetConfigDatabase().Views.ContainsKey(viewName))
                    {
                        workspace = Map.Database.Workspaces[Map.Database.GetAdminWorkspaceId()];
                    }
                    else
                    {
                        workspace = Map.Database.GetPublicWorkspace();
                    }
                }

                //if (workspace == null)
                //    workspace = Map.Database.Workspaces[Map.Database.GetPublicWorkspaceId()];
            }
            else
            {
                int workspaceId = Convert.ToInt32(o);
                if (Map.Database.Workspaces.ContainsKey(workspaceId))
                {
                    workspace = Map.Database.Workspaces[workspaceId];
                }
                else
                {
                    workspace = Map.Database.Workspaces[Map.Database.GetPublicWorkspaceId()];
                }
            }



            return(workspace);
        }