public IHttpActionResult PostOntology(Ontology_ApiRequestCreateModel ontologyRequestModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var idUser = _userIdentityService.Id; var ontology = _mapper.Map <Ontology>(ontologyRequestModel); ontology.Xml = ontology.Xml.Replace("%26", "&"); ontology.Xml = ontology.Xml.UnescapeXml(); var ontologyName = _ontologyService.GetOntologyNameFromXml(ontology); var ontologyAlreadyExists = _ontologyService.CheckIfOntologyAlreadyExists(ontologyName); if (ontologyAlreadyExists) { ontology = _ontologyService.GetByOntologyName(ontologyName); if (ontology.IdOwnerUser == idUser) { return(Content(System.Net.HttpStatusCode.Conflict, "The ontology already exists for this user.")); } var ontologyAlreadySharedWithUser = _ontology_UserService.CheckIfOntologyIsAlreadySharedWithUser(idUser); if (ontologyAlreadySharedWithUser) { return(Content(System.Net.HttpStatusCode.Conflict, "The ontology already exists for this user.")); } var ontology_User = new Ontology_User { IdOntology = ontology.Id, IdSharedUser = idUser }; var count = _ontology_UserService.Create(ontology_User); _ontologyService.ParseXml(ontology); } else { ontology.IdOwnerUser = idUser; ontology.OntologyName = ontologyName; var count = _ontologyService.Create(ontology); } var ontologyResponseModel = _mapper.Map <Ontology_ApiResponseViewModel>(ontology); return(Ok(ontologyResponseModel)); }
public async Task <ActionResult> UploadOntologyFile(string stringByteArray) { #region Set authorization to API calls SetAuthorizationToAPICalls(); #endregion Set authorization to API calls #region Get Ontologies Cookie string[] ontologiesCookie = null; var cookie = GetCookie(GRASEWS_ONTOLOGIES_OPENED_COOKIE); if (cookie != null) { ontologiesCookie = cookie.Value.Split(','); } #endregion Get Ontologies Cookie #region Read uploaded file var fileContent = ReadUploadedFile(stringByteArray); #endregion Read uploaded file #region Save ontology var postOntologyRequestBody = new Ontology_ApiRequestCreateModel { Xml = fileContent }; var postOntologyRequest = CreateApiRequest("api/ontologies", HttpMethodENUM.POST, "application/x-www-form-urlencoded"); postOntologyRequest.AddRequestBodyParameter(postOntologyRequestBody); var postOntologyResponse = await _apiRestClient.ExecuteAsync <Ontology_ApiResponseViewModel>(postOntologyRequest); #endregion Save ontology if (postOntologyResponse.StatusCode == System.Net.HttpStatusCode.OK) { var ontology = postOntologyResponse.Data; #region Get html for the tree view menu var htmlTreeViewMenuRequest = CreateApiRequest($"api/ontologies/{ontology.Id}/html/tree-view-menu", HttpMethodENUM.GET, "application/x-www-form-urlencoded"); var htmlTreeViewMenuResponse = await _apiRestClient.ExecuteAsync <string>(htmlTreeViewMenuRequest); var htmlTreeViewMenu = htmlTreeViewMenuResponse.Data; ontology.HtmlTreeViewMenu = htmlTreeViewMenu; #endregion Get html for the tree view menu #region Create cookie with ontologies (ids) opened var ontologiesForCookie = new List <string>(); if (ontologiesCookie != null && ontologiesCookie.Length > 0) { ontologiesForCookie.AddRange(ontologiesCookie.ToList()); } ontologiesForCookie.Add(ontology.Id.ToString()); SetCookie(GRASEWS_ONTOLOGIES_OPENED_COOKIE, string.Join(",", ontologiesForCookie)); #endregion Create cookie with ontologies (ids) opened return(Json(new { ontology }, JsonRequestBehavior.AllowGet)); } return(Json(new { message = postOntologyResponse.Content }, JsonRequestBehavior.AllowGet)); }