public async Task <ge_transform> CreateTransform(ge_transform newTransform) { await _unitOfWork.Transform.AddAsync(newTransform); await _unitOfWork.CommitAsync(); return(newTransform); }
public async Task <ActionResult> Run( Guid transformId, string[] projects, string[] holes, string[] tables, string[] geols, string[] options, string flwor, string xpath, string version) { if (transformId == Guid.Empty) { return(new EmptyResult()); } transform = _context.ge_transform. Where(t => t.Id == transformId).FirstOrDefault(); if (transform == null) { new EmptyResult(); } var data = _context.ge_data. Where(d => d.Id == transform.dataId).FirstOrDefault(); if (data == null) { new EmptyResult(); } if (String.IsNullOrEmpty(transform.storedprocedure)) { new EmptyResult(); } string dataId = data.Id.ToString(); if (String.IsNullOrEmpty(transform.add_data)) { dataId = dataId + ";" + transform.add_data; } string[] data_all = dataId.Split(";"); if (String.IsNullOrEmpty(version)) { version = data.AGSVersion(); } string rawSQL = getSQLCommand(constEXECUTE, data_all, holes, tables, version); int returnRows = await _context.Database.ExecuteSqlCommandAsync(rawSQL); if (returnRows == 1) { return(RedirectToPageMessage(msgCODE.TRANSFORM_RUN_STOREDPROCEDURE_SUCCESSFULL)); } else { return(RedirectToPageMessage(msgCODE.TRANSFORM_RUN_STOREDPROCEDURE_NOTSUCCESSFULL)); } // return new OkResult(); }
public async Task <ActionResult> View(Guid transformId, Guid?Id, Guid?projectId, Guid?groupId, string[] projects, string[] holes, string[] tables, string[] geols, string[] options, string[] args, string[] vals, string flwor, string xpath, string version) { if (transformId == Guid.Empty) { return(new EmptyResult()); } transform = _context.ge_transform. Include(t => t.project). Where(t => t.Id == transformId).FirstOrDefault(); if (transform == null) { return(new EmptyResult()); } string arg_val = ""; for (int i = 0; i < args.Length; i++) { if (arg_val.Length > 0) { arg_val += "&"; } arg_val += args[i] + "=" + vals[i]; } if (projectId == null) { projectId = transform.projectId; } if (groupId == null) { groupId = transform.project.groupId; } ge_transform_parameters transform_params = getTransformParameters(transformId, Id, projectId, groupId, projects, holes, tables, geols, options, arg_val, flwor, xpath, version); /* Convert JSON back to string to pass via ViewBag */ string parameters = JsonConvert.SerializeObject(transform_params); if (transform.service_endpoint != null) { string endpoint = getEndPointURL(transform.service_endpoint); var resp = await getServiceEndPointData(endpoint, transform_params); var xmlResult = resp as XmlActionResult; if (xmlResult != null) { xml_data = xmlResult.Value(); } var okResult = resp as OkObjectResult; if (okResult != null) { if (okResult.StatusCode == 200) { xml_data = okResult.Value as string; } } } if (transform.dataId != null && transform.storedprocedure == null) { xml_data = await new ge_dataController(_context, _authorizationService, _userManager, _env, _ge_config).getDataAsParsedXmlString(transform.dataId.Value); } if (transform.styleId != null) { xsl_data = await new ge_dataController(_context, _authorizationService, _userManager, _env, _ge_config).getDataAsParsedXmlString(transform.styleId.Value); } if (transform.queryId != null) { qry_data = await new ge_dataController(_context, _authorizationService, _userManager, _env, _ge_config).getDataAsString(transform.queryId.Value, false); } if (transform.dataId != null && transform.storedprocedure != null) { string dataId = transform.dataId.ToString(); if (!String.IsNullOrEmpty(transform.add_data)) { dataId = dataId + ";" + transform.add_data; } string[] data_all = dataId.Split(";"); string rawSQL = getSQLCommand(constSELECTALLFROM, data_all, holes, tables, version); ge_data_file task_xml_data_big = await _context.ge_data_file.FromSql(rawSQL).SingleOrDefaultAsync(); xml_data = task_xml_data_big.getParsedXMLstring(null); } if (!String.IsNullOrEmpty(qry_data)) { string res = XQuery(xml_data, qry_data); if (!String.IsNullOrEmpty(res)) { xml_data = res; } } if (xml_data == null || xsl_data == null) { new EmptyResult(); } ViewBag.xml_data = xml_data; ViewBag.xsl_stylesheet = xsl_data; ViewBag.xlt_arguments = parameters; return(View("View")); }
public static int IsOperationAllowed(this ge_DbContext context, string operation, ge_project project, ge_transform transform) { if (context == null || transform == null || project == null || operation == String.Empty) { return(geOPSResp.InvalidInput); } // check project record status if (project.data_operations == null) { return(geOPSResp.ProjectData); } if (!project.data_operations.Contains(operation)) { return(geOPSResp.ProjectData); } if (operation == Constants.UpdateOperationName || operation == Constants.DeleteOperationName) { if (project.pstatus == Constants.PublishStatus.Approved) { return(geOPSResp.ProjectApproved); } } //Check data record status if (transform.Id == Guid.Empty) { return(geOPSResp.Allowed); } // if (operation == geOPS.Update || operation==geOPS.Delete) { // if (transform.pstatus == Constants.PublishStatus.Approved) { // return geOPSResp.DataApproved; // } // } if (transform.operations == null) { return(geOPSResp.Data); } if (!transform.operations.Contains(operation)) { return(geOPSResp.Data); } return(geOPSResp.Allowed); }
public void updateTransform(ge_transform transform) { }
public void insertTransform(ge_transform transform) { }
public async Task DeleteTransform(ge_transform transform) { _unitOfWork.Transform.Remove(transform); await _unitOfWork.CommitAsync(); }
public async Task UpdateTransform(ge_transform dest, ge_transform srce) { dest.name = srce.name; dest.styleId = srce.styleId; await _unitOfWork.CommitAsync(); }
public async Task <IActionResult> OnGetAsync(Guid projectId) { if (projectId == null) { return(NotFound()); } var project = await _context.projectFull(projectId).FirstOrDefaultAsync(); if (project == null) { return(NotFound()); } transform = new ge_transform(); transform.project = project; transform.projectId = projectId; transform.operations = project.data_operations; var UserAuthorised = await IsUserCreateAuthorised(); if (IsCreateAllowed() != geOPSResp.Allowed) { return(RedirectToPageMessage(msgCODE.TRANSFORM_CREATE_PROHIBITED)); } if (!UserAuthorised.Succeeded) { return(RedirectToPageMessage(msgCODE.TRANSFORM_CREATE_USER_PROHIBITED)); } Guid[] libraryId = _config.templateProjectId_ToGuid(); var xml_data = _context.ge_data .Where(d => d.projectId == transform.projectId || libraryId.Contains(d.projectId)) .Where(d => d.fileext == AGS.FileExtension.XML); var image_data = _context.ge_data .Where(d => d.projectId == transform.projectId || libraryId.Contains(d.projectId)) .Where(d => d.filetype.Contains("image")); var script_data = _context.ge_data .Where(d => d.projectId == transform.projectId || libraryId.Contains(d.projectId)) .Where(d => d.filetype.Contains("script")); var css_data = _context.ge_data .Where(d => d.projectId == transform.projectId || libraryId.Contains(d.projectId)) .Where(d => d.filetype.Contains("css")); var xlt_data = _context.ge_data .Where(d => d.projectId == transform.projectId || libraryId.Contains(d.projectId)) .Where(d => d.fileext == AGS.FileExtension.XSL); // .xq, .xql, .xqm, .xqy, and .xquery. var xq_data = _context.ge_data .Where(d => d.projectId == transform.projectId || libraryId.Contains(d.projectId)) .Where(d => d.fileext == AGS.FileExtension.XQ); var transforms = _context.ge_transform .Include(t => t.style) .Where(t => t.projectId == transform.projectId); if (!xml_data.Any() || !xlt_data.Any()) { return(RedirectToPageMessage(msgCODE.TRANSFORM_NO_MATCHING)); } setViewData(xml_data, xlt_data, xq_data, image_data, script_data, css_data, transforms); return(Page()); }
public async Task <IActionResult> OnGetAsync(Guid dataId) { if (dataId == null) { return(NotFound()); } var data = await _context.ge_data.Include(d => d.project) .Where(d => d.Id == dataId) .Where(d => d.fileext == AGS.FileExtension.XML) .FirstOrDefaultAsync(); if (data == null) { return(NotFound()); } var task_ags_version = await getAGSVersion(dataId); string ags_version = task_ags_version.Value; if (String.IsNullOrEmpty(ags_version)) { return(RedirectToPageMessage(msgCODE.TRANSFORM_AGS_NONE)); } // Create a new transform to check authorisations transform = new ge_transform(); transform.dataId = dataId; transform.project = data.project; transform.projectId = data.projectId; var UserAuthorised = await IsUserCreateAuthorised(); if (IsCreateAllowed() != geOPSResp.Allowed) { return(RedirectToPageMessage(msgCODE.TRANSFORM_CREATE_PROHIBITED)); } if (!UserAuthorised.Succeeded) { return(RedirectToPageMessage(msgCODE.TRANSFORM_CREATE_USER_PROHIBITED)); } ge_transform_parameters ags_transforms = getAGSTransforms(ags_version); if (ags_transforms == null) { return(RedirectToPageMessage(msgCODE.TRANSFORM_AGS_NONE)); } project = new ge_transform(); project.Id = Guid.NewGuid(); project.projectId = data.projectId; project.name = "Project Summaries for " + data.filename; project.description = "HTML transforms for AGSML Project (" + GetTimestamp(DateTime.Now) + ")"; project.styleId = Guid.Parse(ags_transforms.project); project.operations = data.project.data_operations; hole = new ge_transform(); hole.Id = Guid.NewGuid(); hole.projectId = data.projectId; hole.name = "Hole Summaries for " + data.filename; hole.description = "HTML transforms for AGSML Hole (" + GetTimestamp(DateTime.Now) + ")"; hole.styleId = Guid.Parse(ags_transforms.hole); hole.operations = data.project.data_operations; table = new ge_transform(); table.Id = Guid.NewGuid(); table.projectId = data.projectId; table.name = "Table Summaries for " + data.filename; table.description = "HTML transforms for AGSML Tables (" + GetTimestamp(DateTime.Now) + ")"; table.styleId = Guid.Parse(ags_transforms.table); table.operations = data.project.data_operations; ge_transform_parameters tparams = new ge_transform_parameters(); tparams.project = project.Id.ToString(); tparams.hole = hole.Id.ToString(); tparams.table = table.Id.ToString(); string json_tparams = JsonConvert.SerializeObject(tparams); transform.parameters = json_tparams; // /*Add prospective transforms to list incase user wants to rebuilds json string */ // ge_transform[] Addtransforms = {project, hole, table}; // var Alltransforms = transforms.Concat(Addtransforms); // ViewData["styleId"] = new SelectList(xlt_data, "Id", "filename"); // ViewData["transformId"] = new SelectList(Alltransforms, "Id", "name"); // string[] p = new [] {"project","hole","table","geol"}; // ViewData["selectparameter"] = new SelectList(p); setViewData(); return(Page()); }