Exemplo n.º 1
0
        public IActionResult GoToFile(int fileId)
        {
            if (fileId == 0)
            {
                return(RedirectToAction(nameof(Index)));
            }

            var doc = _documentService.GetDocumentById(fileId);

            if (doc == null)
            {
                return(RedirectToAction(nameof(Index)));
            }

            // Transform json into an object
            var classificationObjResult = JsonConvert.DeserializeObject <ClassificationDto[]>(doc.Classification)[0];

            // Create Dto Response for View
            var dto = new DocumentSummaryData()
            {
                Id             = doc.Id,
                Summary        = doc.Summary,
                Title          = doc.Title,
                Classification = classificationObjResult.Classification
                                 .OrderByDescending(c => c.P)
                                 .Select(t => string.Format(t.ClassName + ": " + "{0:0.0%}", t.P))
                                 .ToArray()
            };

            return(View("DocumentSummary", dto));
        }
Exemplo n.º 2
0
        public IActionResult DocumentSummary()
        {
            var dto = new DocumentSummaryData()
            {
                Id             = 0,
                Summary        = "No result.",
                Title          = "",
                Classification = new string[] { }
            };

            return(View(dto));
        }
Exemplo n.º 3
0
        public IActionResult Index(List <IFormFile> files)
        {
            // Get file
            if (files.Count == 0)
            {
                return(View(PrepareDocumentsList()));
            }
            var formFile = files[0];

            // Get size
            long size = files.Sum(f => f.Length);

            // Get filepath and extension
            var filePath = System.IO.Path.GetTempFileName();
            var ext      = System.IO.Path.GetExtension(formFile.FileName).ToLower();

            // Check extension
            if (ext.Equals(".txt") || ext.Equals(".pdf") || ext.Equals(".doc") || ext.Equals(".docx"))
            {
                if (formFile.Length > 0)
                {
                    // Read from file
                    using (var stream = new MemoryStream())
                    {
                        //Prepare file to Db
                        formFile.CopyTo(stream);
                        Entities.UserForm.Document entity = new Entities.UserForm.Document()
                        {
                            Title        = formFile.FileName,
                            Stream       = stream.ToArray(),
                            ContentType  = formFile.ContentType,
                            Size         = size,
                            CreatedOnUtc = DateTime.Now
                        };

                        // Read text from file
                        string fullText = ReadText(ext, entity.Stream, formFile.ContentType);

                        // Summarize text
                        string textSummary = SummarizeText(fullText);

                        // Get summary classification
                        string classification = GetClassification(textSummary);

                        // Save file to db
                        entity.Summary        = textSummary;
                        entity.Classification = classification;
                        _documentService.Create(entity);

                        // Transform json into an object
                        var classificationObjResult = JsonConvert.DeserializeObject <ClassificationDto[]>(classification)[0];

                        // Create Dto Response for View
                        var dto = new DocumentSummaryData()
                        {
                            Id             = entity.Id,
                            Summary        = textSummary,
                            Title          = entity.Title,
                            Classification = classificationObjResult.Classification
                                             .OrderByDescending(c => c.P)
                                             .Select(t => string.Format(t.ClassName + ": " + "{0:0.0%}", t.P))
                                             .ToArray()
                        };
                        return(View("DocumentSummary", dto));
                    }
                }
            }
            // Invalid extension, add model state error
            else
            {
                ModelState.AddModelError(string.Empty, "Extension not supported - (only *.txt, *.pdf, *.doc, *.docx)");
            }

            // Return View
            return(View(PrepareDocumentsList()));
        }