public HttpResponseMessage Compare(CompareRequest compareRequest) { try { // check formats if (comparisonService.CheckFiles(compareRequest)) { // compare CompareResultResponse result = comparisonService.Compare(compareRequest); JsonSerializerSettings settings = new JsonSerializerSettings(); settings.ContractResolver = new LowercaseContractResolver(); string json = JsonConvert.SerializeObject(result, Formatting.Indented, settings); var compareResult = JsonConvert.DeserializeObject(json); return(Request.CreateResponse(HttpStatusCode.OK, compareResult)); } else { return(Request.CreateResponse(HttpStatusCode.OK, new Resources().GenerateException(new Exception("Document types are different")))); } } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, new Resources().GenerateException(ex))); } }
private static CompareResultResponse GetCompareResultResponse(ChangeInfo[] changes, string resultGuid) { CompareResultResponse compareResultResponse = new CompareResultResponse(); compareResultResponse.SetChanges(changes); List <PageDescriptionEntity> pages = LoadDocumentPages(resultGuid, "", true).GetPages(); compareResultResponse.SetPages(pages); compareResultResponse.SetGuid(resultGuid); return(compareResultResponse); }
private CompareResultResponse CompareTwoDocuments(CompareRequest compareRequest) { // to get correct coordinates we will compare document twice // this is a first comparing to get correct coordinates of the insertions and style changes string extension = Path.GetExtension(compareRequest.guids[0].GetGuid()); string guid = Guid.NewGuid().ToString(); //save all results in file string resultGuid = Path.Combine(globalConfiguration.Comparison.GetResultDirectory(), guid + extension); Comparer compareResult = CompareFiles(compareRequest, resultGuid); ChangeInfo[] changes = compareResult.GetChanges(); CompareResultResponse compareResultResponse = GetCompareResultResponse(changes, resultGuid); compareResultResponse.SetExtension(extension); return(compareResultResponse); }
public CompareResultResponse Compare(CompareRequest compareRequest) { CompareResultResponse compareResultResponse = CompareTwoDocuments(compareRequest); return(compareResultResponse); }