Exemplo n.º 1
0
        public async Task <IActionResult> ViewNetwork([FromQuery] string graphName)
        {
            var graph = await _context.Graphs.Where(x => x.Name.Equals(graphName)).FirstOrDefaultAsync();

            ViewBag.Graph_ID = graph.Id;
            ViewBag.LINK_URL = "https://" + Request.Host.Value + graph.GraphLinkURL;

            Graph fullGraph = await _context.Graphs.Where(x => x.Name.Equals(graphName)).FirstOrDefaultAsync();

            (List <GraphNodeDTO> nodes, List <GraphLinkDTO> links) = GraphMapperService.MapGraphToDTOs(fullGraph);
            ViewBag.NODES = JsonConvert.SerializeObject(nodes);
            ViewBag.LINKS = JsonConvert.SerializeObject(links);
            return(View("Network"));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Upload(UploadViewModel model)
        {
            var fileName = Path.GetFileName(model.file.FileName);

            if (Path.GetExtension(fileName).Equals(".dgml"))
            {
                try
                {
                    using var uploadedFile = model.file.OpenReadStream();
                    (List <GraphNodeDTO> nodes, List <GraphLinkDTO> links) = GraphMapperService.GenerateD3Network(uploadedFile, model.DGML_Type_ID);

                    Graph newGraph = GraphMapperService.MapToNewGraphInDB(nodes, links);
                    newGraph.ReadableName = model.GraphName;
                    string LINK_URL = "/DGML/ViewNetwork?graphName=" + newGraph.Name;
                    newGraph.GraphLinkURL = LINK_URL;
                    var user = await _userManager.GetUserAsync(HttpContext.User);

                    newGraph.Creator = user;
                    _context.Graphs.Add(newGraph);
                    await _context.SaveChangesAsync();

                    string NODES = JsonConvert.SerializeObject(nodes);
                    string LINKS = JsonConvert.SerializeObject(links);

                    ViewBag.NODES = NODES;
                    ViewBag.LINKS = LINKS;

                    //await _graphRedisService.SaveGraphToCache(newGraph);

                    ViewBag.LINK_URL = "https://" + Request.Host.Value + LINK_URL;
                }
                catch (Exception error)
                {
                    Console.WriteLine(error.Message);
                    model.ErrorMsg = "Could not read file";
                    return(View("Upload", model));
                }
            }
            else
            {
                model.ErrorMsg = "Please Enter a valid .dgml";
                return(View("Upload", model));
            }

            return(View("Network"));
        }