Exemplo n.º 1
0
        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"));
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
 public void updateTransform(ge_transform transform)
 {
 }
Exemplo n.º 6
0
 public void insertTransform(ge_transform transform)
 {
 }
Exemplo n.º 7
0
 public async Task DeleteTransform(ge_transform transform)
 {
     _unitOfWork.Transform.Remove(transform);
     await _unitOfWork.CommitAsync();
 }
Exemplo n.º 8
0
 public async Task UpdateTransform(ge_transform dest, ge_transform srce)
 {
     dest.name    = srce.name;
     dest.styleId = srce.styleId;
     await _unitOfWork.CommitAsync();
 }
Exemplo n.º 9
0
        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());
        }
Exemplo n.º 10
0
        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());
        }