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)); }
public ActionResult Get(string id) { return(Ok(_processResultRepositoryRepository.GetResultByContentId(id))); }