public async Task <ActionResult <ArquivoRedeViewModel> > GetArquivoRedeBayesiana(int id)
        {
            ArquivoRedeViewModel arquivoRedeViewModel = new ArquivoRedeViewModel();
            ArquivoRedeService   arquivoRedeService   = new ArquivoRedeService(_context);

            var arquivoRedeBayesiana = await _context.ArquivosRedeBayesiana.FindAsync(id);

            if (arquivoRedeBayesiana == null)
            {
                return(NotFound());
            }
            arquivoRedeViewModel.NomeRede          = arquivoRedeBayesiana.NomeRede;
            arquivoRedeViewModel.Descricao         = arquivoRedeBayesiana.Descricao;
            arquivoRedeViewModel.RedeBayesianaJson = await arquivoRedeService.GetRedeBayesiana(arquivoRedeBayesiana);

            return(arquivoRedeViewModel);
        }
Beispiel #2
0
        public async Task <IActionResult> Create(IFormFile file, string nomeRede, string descricaoRede)
        {
            var result = string.Empty;

            using (var reader = new StreamReader(file.OpenReadStream()))
            {
                result = reader.ReadToEnd();
            }

            ArquivoRedeViewModel arquivoRede = new ArquivoRedeViewModel();

            arquivoRede.RedeBayesianaJson = JsonConvert.DeserializeObject <FileBayesianNetwork>(result);
            arquivoRede.Descricao         = descricaoRede;
            arquivoRede.NomeRede          = nomeRede;

            ArquivoRedeService   arquivoRedeService = new ArquivoRedeService(_context);
            ArquivoRedeBayesiana arq = await arquivoRedeService.AddArquivoRedeBayesiana(arquivoRede);


            return(RedirectToAction("Details", new { id = arq.ID }));
            // return View(arq);
        }
        public async Task <ArquivoRedeBayesiana> AddArquivoRedeBayesiana(ArquivoRedeViewModel arg)
        {
            ArquivoRedeBayesiana arquivoRedeBayesiana = new ArquivoRedeBayesiana();

            arquivoRedeBayesiana.DataUpload  = DateTime.Now;
            arquivoRedeBayesiana.Descricao   = arg.Descricao;
            arquivoRedeBayesiana.NomeRede    = string.IsNullOrEmpty(arg.NomeRede) ? arg.RedeBayesianaJson.Network.name : arg.NomeRede;
            arquivoRedeBayesiana.ArquivoJson = JsonConvert.SerializeObject(arg.RedeBayesianaJson);



            //Necessario salvar para obter id para usar no nome do arquivo
            _context.ArquivosRedeBayesiana.Add(arquivoRedeBayesiana);
            await _context.SaveChangesAsync();

            //Atualiza nome arquivo com Id e salva novamente
            arquivoRedeBayesiana.NomeArquivo = DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") + "_" + arquivoRedeBayesiana.ID.ToString("D8") + ".json";
            _context.ArquivosRedeBayesiana.Update(arquivoRedeBayesiana);
            await _context.SaveChangesAsync();

            var serializerSettings = new JsonSerializerSettings
            {
                TypeNameHandling           = TypeNameHandling.Auto,
                ContractResolver           = new CollectionAsObjectResolver(),
                PreserveReferencesHandling = PreserveReferencesHandling.Objects
            };
            var serializer = JsonSerializer.Create(serializerSettings);


            // write to disk
            using (FileStream stream = new FileStream(@"RepoArquivos/" + @arquivoRedeBayesiana.NomeArquivo, FileMode.Create))
            {
                var streamWriter = new StreamWriter(stream);
                var jsonWriter   = new JsonTextWriter(streamWriter);
                serializer.Serialize(jsonWriter, arg.RedeBayesianaJson);
                jsonWriter.Flush();
            }
            return(arquivoRedeBayesiana);
        }
        public async Task <ActionResult <ArquivoRedeBayesiana> > PostArquivoRedeBayesiana(ArquivoRedeViewModel arg)
        {
            ArquivoRedeService   arquivoRedeService = new ArquivoRedeService(_context);
            ArquivoRedeBayesiana arq = await arquivoRedeService.AddArquivoRedeBayesiana(arg);

            return(CreatedAtAction("GetArquivoRedeBayesiana", new { id = arq.ID }, arq));
        }