Exemple #1
0
        public async Task <bool> ProcessDataAsync(string content, string contentId, string direction)
        {
            var itemToProcess = new ItemToProcess
            {
                ContentId = contentId,
                Direction = direction,
                Size      = content.Length,
                Text      = content
            };
            var currenResult = _comparisonRepository.GetResultByContentId(contentId);
            var itemOnDb     = await _itemToProcessRepository.GetDataFromDbById(contentId);

            //If no item in the DB create new Process
            if (currenResult == null)
            {
                SaveNewContentToDb(content, contentId, itemToProcess);
                return(true);
            }
            //Process if already in DB
            if ((itemOnDb.Direction == "right" && direction == "left") || (itemOnDb.Direction == "left" && direction == "right"))
            {
                return(ProcessContentAlreadyOnDb(content, contentId, direction, itemToProcess, itemOnDb));
            }
            return(false);
        }
        public ProcessResult SaveProcessResult(ItemToProcess itemToProcessRight, ItemToProcess itemToProcessLeft)
        {
            var processResult = _comparisonRepository.GetResultByContentId(itemToProcessRight.ContentId);

            processResult.IsEqual     = itemToProcessRight.Hash == itemToProcessLeft.Hash;
            processResult.IsEqualSize = itemToProcessRight.Size == itemToProcessLeft.Size;
            //if same size find the difference
            if (processResult.IsEqualSize)
            {
                var diff = _diffenceSearchService.GetDifferences(itemToProcessRight.Text, itemToProcessLeft.Text, itemToProcessRight.Size);
                processResult.Differences = diff;
            }
            processResult.status = StatusEnum.DONE;
            return(_comparisonRepository.UpdateResultByContentId(processResult, itemToProcessRight.ContentId));
        }
Exemple #3
0
 public ActionResult Get(string id)
 {
     return(Ok(_processResultRepositoryRepository.GetResultByContentId(id)));
 }