Ejemplo n.º 1
0
        public int loadTemplateAndLines(ge_data data_file,
                                        ge_search template,
                                        string table,
                                        string sheet,
                                        IDataService _dataService,
                                        out ge_search template_loaded,
                                        out string[] lines)
        {
            lines           = null;
            template_loaded = null;

            if (data_file.fileext == ".csv")
            {
                var resp = _dataService.GetFileAsLines(data_file.Id);
                lines = (string[])resp.Result;
                SearchTerms st = new SearchTerms();
                template_loaded = st.findSearchTerms(template, table, lines);
                if (template_loaded.search_tables.Count == 0)
                {
                    return(-1);
                }
            }

            if (data_file.fileext == ".xlsx")
            {
                var resp = _dataService.GetFileAsMemoryStream(data_file.Id);
                using (MemoryStream ms = (MemoryStream)resp.Result) {
                    ge_log_workbook wb = new ge_log_workbook(ms);

                    SearchTerms st = new SearchTerms();
                    if (sheet.Contains(","))
                    {
                        string[] sheets = sheet.Split(",");
                        template_loaded = st.findSearchTerms(template, table, wb, sheets);
                    }
                    else
                    {
                        template_loaded = st.findSearchTerms(template, table, wb, sheet);
                    }

                    if (template_loaded.search_tables.Count == 0)
                    {
                        lines = null;
                        return(-1);
                    }

                    wb.setWorksheet(template_loaded.search_tables[0].sheet);
                    wb.evaluateSheet();
                    lines = wb.WorksheetToTable(50, true);
                    wb.close();

                    return(1);
                }
            }

            return(-1);
        }
Ejemplo n.º 2
0
        public async Task <ge_log_file> NewFile(Guid Id, Guid templateId, string table, string sheet, IDataService _dataService)
        {
            string[]  lines           = null;
            ge_search template_loaded = null;

            ge_search template = await _dataService.GetFileAsClass <ge_search>(templateId);

            ge_data data_file = await _dataService.GetDataById(Id);

            if (data_file.fileext == ".csv")
            {
                lines = await _dataService.GetFileAsLines(data_file.Id);

                SearchTerms st = new SearchTerms();
                template_loaded = st.findSearchTerms(template, table, lines);
                if (template_loaded.search_tables.Count == 0)
                {
                    return(null);
                }
            }

            if (data_file.fileext == ".xlsx")
            {
                using (MemoryStream ms = await _dataService.GetFileAsMemoryStream(data_file.Id)) {
                    ge_log_workbook wb = new ge_log_workbook(ms);
                    SearchTerms     st = new SearchTerms();
                    if (sheet.Contains(","))
                    {
                        string[] sheets = sheet.Split(",");
                        template_loaded = st.findSearchTerms(template, table, wb, sheets);
                    }
                    else
                    {
                        template_loaded = st.findSearchTerms(template, table, wb, sheet);
                    }

                    if (template_loaded.search_tables.Count == 0)
                    {
                        return(null);
                    }

                    wb.setWorksheet(template_loaded.search_tables[0].sheet);
                    wb.evaluateSheet();
                    lines = wb.WorksheetToTable();
                    wb.close();
                }
            }

            return(NewFile(template_loaded,
                           lines,
                           Id,
                           templateId));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> PSDWorkbook(Guid Id,
                                                      Guid templateId,
                                                      string table,
                                                      string sheet,
                                                      string format = "view",
                                                      Boolean save  = false)
        {
            var _data = await _context.ge_data
                        .Include(d => d.project)
                        .SingleOrDefaultAsync(m => m.Id == Id);

            if (_data == null)
            {
                return(NotFound());
            }

            if (_data.fileext != ".xlsx")
            {
                return(UnprocessableEntity());
            }

            var assert = await new ge_accessController(_context,
                                                       _authorizationService,
                                                       _userManager,
                                                       _env,
                                                       _ge_config).AssertOperations(_data, new string[] { "Download", "Create" });

            var template = await new ge_dataController(_context,
                                                       _authorizationService,
                                                       _userManager,
                                                       _env,
                                                       _ge_config).getDataAsClass <ge_search>(templateId);



            List <GRAG_WC> GRAG_WC;

            using (MemoryStream ms = await new ge_dataController(_context,
                                                                 _authorizationService,
                                                                 _userManager,
                                                                 _env,
                                                                 _ge_config).GetMemoryStream(Id)) {
                ge_log_workbook wb = new ge_log_workbook(ms);
                SearchTerms     st = new SearchTerms();
                ge_search       template_loaded = st.findSearchTerms(template, table, wb, sheet);
                if (template_loaded.search_tables.Count == 0)
                {
                    return(BadRequest(template_loaded));
                }
                var psd_resp = await ReadPSDData(template_loaded, wb, sheet);

                var psd_okResult = psd_resp as OkObjectResult;
                if (psd_okResult.StatusCode != 200)
                {
                    return(Json(psd_resp));
                }

                GRAG_WC = psd_okResult.Value as List <GRAG_WC>;
            }

            string[] tables   = new string[] { "GRAG", "GRAT" };
            var      ags_resp = await new ge_gINTController(_context,
                                                            _authorizationService,
                                                            _userManager,
                                                            _env,
                                                            _ge_config).getAGSTable(GRAG_WC, tables, "4.04", false);
            var ags_okResult = ags_resp as OkObjectResult;

            if (ags_okResult.StatusCode != 200)
            {
                return(Json(ags_resp));
            }

            string s1 = ags_okResult.Value as string;

            byte[] ags = Encoding.ASCII.GetBytes(s1);

            if (format == "download")
            {
                return(File(ags, "text/plain", _data.filename));
            }

            if (format == null || format == "view")
            {
                return(File(ags, "text/plain"));
            }

            //   if (format=="view") {
            //   return View("GRAG_WC",GRAG_WC);
            //   }

            return(Ok(GRAG_WC));
        }