示例#1
0
        public async Task <bool> CreateNewComparismRecord(ComparedFiles comparedFiles)
        {
            await _dataContext.ComparedFiles.AddAsync(comparedFiles);

            var created = await _dataContext.SaveChangesAsync();

            return(created > 0);
        }
        public async Task <IActionResult> CompareStudentFiles([FromForm] CompareFileRequest compareFileRequest)
        {
            // Getting Name
            string firstStudentName  = compareFileRequest.FirstStudentName;
            string secondStudentName = compareFileRequest.SecondStudentName;

            // Getting Files
            var fileOne = compareFileRequest.FirstStudentFile;
            var fileTwo = compareFileRequest.SecondStudentFile;

            double percentageSimilarity;
            string file1, file2;

            // Saving Files on Server
            var extension  = Path.GetExtension(fileOne.FileName);
            var extension2 = Path.GetExtension(fileTwo.FileName);

            if (fileOne.Length > 0 && extension.ToLower().Equals(".txt"))
            {
                if (fileTwo.Length > 0 && extension2.ToLower().Equals(".txt"))
                {
                    file1 = await getFileDataAsync(fileOne);

                    file2 = await getFileDataAsync(fileTwo);

                    percentageSimilarity = CalculateSimilarity(file1, file2);

                    var user = HttpContext.Session.GetString("Id");


                    var comparism = new ComparedFiles
                    {
                        CreatorId            = user,
                        FirstStudentName     = firstStudentName,
                        FirstStudentFile     = file1,
                        SecondStudentName    = secondStudentName,
                        SecondStudentFile    = file2,
                        PercentageSimilarity = percentageSimilarity * 100 + " %"
                    };

                    await _compareFilesService.CreateNewComparismRecord(comparism);
                }
                else
                {
                    return(Ok(new GenericResponse {
                        Status = "Error", Message = "Please select first Student File or Upload Valid Text File"
                    }));
                }
            }
            else
            {
                return(Ok(new GenericResponse {
                    Status = "Error", Message = "Please select first Student File or Upload Valid Text File"
                }));
            }



            return(Ok(new ComparismResponse
            {
                FirstStudentName = firstStudentName,
                FirstStudentFileContent = file1,
                SecondStudentName = secondStudentName,
                SecondStudentFileContent = file2,
                PercentageSimilarity = percentageSimilarity * 100 + "%"
            }));
        }