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); } }
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); }