Exemplo n.º 1
0
        public RQItemModel Get(string dbname, string format, string verb = "", string queryString = "")
        {
            if (System.Web.HttpContext.Current.Request.Headers.Get("Accept").ToLower().Contains("text/html"))
            {
                throw new HttpResponseException(JsonErrorResponse.Redirect(Request.RequestUri.ToString().Replace("rqds/" + dbname + "/" + format, dbname + "/" + "RQItemsLD?verb=" + format)));
            }
            else
            {
                RQItemModel           result;
                RQItemModelRepository repo = new RQItemModelRepository(new FormatParameter((FormatParameter.FormatEnum)Enum.Parse(typeof(FormatParameter.FormatEnum), format)));

                result = repo.GetModel(queryString, Areas.UserSettings.UserState.StateType(verb));
                return(result);
            }
        }
Exemplo n.º 2
0
        public ActionResult RQItemDescElement(string rqitemId, string fieldName, string subFieldIndex)
        {
            if (!string.IsNullOrEmpty(fieldName) && !string.IsNullOrEmpty(rqitemId))
            {
                try
                {
                    RQItem rqitem = modelRepository.GetModel("$access$" + rqitemId, UserState.States.ItemViewState).RQItems.FirstOrDefault(p => p.DocNo == rqitemId);

                    return(View("ServIndRQItem", rqitem.GetLinkedData(fieldName, System.Convert.ToInt16(subFieldIndex))));
                }
                catch (Exception)
                {
                    throw;
                };
            }
            return(null);
        }
Exemplo n.º 3
0
        public RQItem Post(string dbname, string id, [FromBody] RQItem changeRQItem)
        {
            if (ModelState.IsValid)
            {
                RQItemModelRepository repo  = new RQItemModelRepository((new FormatParameter(FormatParameter.FormatEnum.rqi)));
                RQItemModel           model = null;
                RQItem rqitem = null;

                model  = repo.GetModel("$access$" + id, UserState.States.EditState, true);
                rqitem = model.RQItems.FirstOrDefault(p => p.DocNo == id);
                rqitem.Change(changeRQItem);
                model.Update();
                CacheManager.Clear();
                return(Get("rqitems", id, "rqi", "edititem", ""));
            }
            else
            {
                throw new HttpResponseException(JsonErrorResponse.InvalidData());
            }
        }
Exemplo n.º 4
0
        public ActionResult RQItemList(string verb, string queryString, string serviceId, string dbname)
        {
            if (!string.IsNullOrEmpty(queryString) && (queryString.StartsWith("Signature: R*")))
            {
                this.modelRepository.modelParameters.SortType = ModelParameters.SortTypeEnum.ByShelf;
            }

            if ((!string.IsNullOrEmpty(verb)) && ((verb.ToLower() == "new") || (verb == RQResources.Views.Shared.SharedStrings.add)))
            {
                if (MvcRQ.Helpers.AccessRightsResolver.HasAddAccess())
                {
                    ViewBag.Title  = "RiQuest | Add";
                    ViewBag.Header = "Neues Dokument";
                    if (bClientEditing)
                    {
                        return(View("ClientEditor"));
                    }
                    else
                    {
                        ViewBag.EditButton1 = RQResources.Views.Shared.SharedStrings.add;
                        ViewBag.EditButton2 = RQResources.Views.Shared.SharedStrings.cancel;
                        return(View("EditRQItem", new RQItem()));
                    }
                }
                else
                {
                    throw new AccessViolationException("Not authorized for this function!");
                }
            }
            else if ((!string.IsNullOrEmpty(verb)) && (verb.ToLower() == "querylist"))
            {
                return(this.Content(modelRepository.GetModel(queryString, UserState.States.ListViewState).TransformModel(verb, 1, 0), "text/html", System.Text.Encoding.UTF8));
            }
            else if ((!string.IsNullOrEmpty(verb)) && (verb.ToLower() == "browselist"))
            {
                if (MvcRQ.Helpers.StateStorage.GetClasstreeOptionsState() == true)
                {
                    modelRepository.modelParameters.SortType = ModelParameters.SortTypeEnum.ByShelfClass;
                }
                return(this.Content(modelRepository.GetModel(queryString, UserState.States.BrowseViewState).TransformModel(verb, 1, 0), "text/html", System.Text.Encoding.UTF8));
            }
            else if (!string.IsNullOrEmpty(serviceId))
            {
                ViewBag.ServiceType = serviceId;
                ViewBag.TextSeg0    = "a list of RQItems";
                switch (serviceId)
                {
                case "mods":
                    throw new NotImplementedException("RiQuest data service not yet implemented for mods format.");

                case "oai_dc":
                    EnableXmlAttribute.XSLTransform = "~/xslt/rqi2dc.xslt";
                    break;

                case "srw_dc":
                    throw new NotImplementedException("RiQuest data service not yet implemented for srw_dc format.");

                case "info_ofi":
                    throw new NotImplementedException("RiQuest data service not yet implemented for info_ofi format.");

                case "rqi":
                    EnableXmlAttribute.XSLTransform = "";
                    break;

                case "rq":
                    EnableXmlAttribute.XSLTransform = "~/xslt/rqi2rq.xslt";
                    break;

                default:
                    throw new NotImplementedException("RiQuest data service not implemented for unknown format.");
                }
                return(View("ServRQItem", modelRepository.GetModel(queryString)));
            }
            else
            {
                ViewBag.docNo = HttpContext.Request.QueryString.Get("d") != null?HttpContext.Request.QueryString.Get("d") : modelRepository.GetQuery(queryString).DocId;

                ViewBag.HasAddPermit  = MvcRQ.Helpers.AccessRightsResolver.HasAddAccess(); // Enable the add new button if user is allowed to add RQItems ti the database.
                ViewBag.GetRQItemVerb = "QueryItem";                                       // Tell GetRQItem() in ResultViewer the appropiate verb for saving the user state.
                return(View("Index"));
            }
        }
Exemplo n.º 5
0
        public RQItemModel Get(string dbname, string format, string verb = "", string queryString = "")
        {
            if (System.Web.HttpContext.Current.Request.Headers.Get("Accept").ToLower().Contains("text/html"))
                throw new HttpResponseException(JsonErrorResponse.Redirect(Request.RequestUri.ToString().Replace("rqds/" + dbname + "/" + format, dbname + "/" + "RQItemsLD?verb=" + format)));
            else
            {
                RQItemModel result;
                RQItemModelRepository repo = new RQItemModelRepository(new FormatParameter((FormatParameter.FormatEnum)Enum.Parse(typeof(FormatParameter.FormatEnum), format)));

                result = repo.GetModel(queryString, Areas.UserSettings.UserState.StateType(verb));
                return result;
            }
        }
Exemplo n.º 6
0
        public RQItem Post(string dbname, string id, [FromBody]RQItem changeRQItem)
        {
            if (ModelState.IsValid)
            {
                RQItemModelRepository repo = new RQItemModelRepository((new FormatParameter(FormatParameter.FormatEnum.rqi)));
                RQItemModel model = null;
                RQItem rqitem = null;

                model = repo.GetModel("$access$" + id, UserState.States.EditState, true);
                rqitem = model.RQItems.FirstOrDefault(p => p.DocNo == id);
                rqitem.Change(changeRQItem);
                model.Update();
                CacheManager.Clear();
                return Get("rqitems",id, "rqi", "edititem", "");
            }
            else
                throw new HttpResponseException(JsonErrorResponse.InvalidData());
        }