private static void CalculateTypeWeight(MediumDto mediumDto, IReadOnlyList <string> searchTerms) { var mediumTypeString = mediumDto.Type.ToString("G"); if (searchTerms.Any(x => x.ContainsInvariant(mediumTypeString))) { mediumDto.Weight += TypeWeight * FullMatchMultiplier; } else if (searchTerms.Any(x => mediumTypeString.ContainsInvariant(x))) { mediumDto.Weight += TypeWeight; } }
public IHttpActionResult CreateMedium(MediumDto mediumDto) { if (!ModelState.IsValid) { return(BadRequest()); } var medium = Mapper.Map <MediumDto, Medium>(mediumDto); _context.Mediums.Add(medium); _context.SaveChanges(); mediumDto.Id = medium.Id; return(Created(new Uri(Request.RequestUri + "/" + medium.Id), mediumDto)); }
// Extract relevant Mediums private void GetRelevantMediums() { // check all the Mediums/Media foreach (var mediumObj in _dataService.GetEntitiesData().media) { // calculate the weight of medium record mediumObj.CalculateEntityWeight(_searchText); // if weight is not 0 then add it in the result array if (mediumObj.Weight > 0) { var mediumTemp = new MediumDto(); mediumTemp.Put(mediumObj); _searchResults.Add(mediumTemp); // for next search make the calculated weight zero mediumObj.Weight = 0; } } }
// PUT /api/mediums/1 public IHttpActionResult UpdateMedium(int id, MediumDto mediumDto) { if (!ModelState.IsValid) { return(BadRequest()); } var mediumInDb = _context.Mediums.SingleOrDefault(c => c.Id == id); if (mediumInDb == null) { return(NotFound()); } Mapper.Map(mediumDto, mediumInDb); _context.SaveChanges(); return(Ok()); }
private static void CalculatePartialMatches(MediumDto mediumDto, IReadOnlyList <string> separateSearchTerms, IReadOnlyList <string> matchedProperties) { foreach (var searchTerm in separateSearchTerms) { if (!matchedProperties.Contains(nameof(mediumDto.Description)) && (mediumDto.Description?.ContainsInvariant(searchTerm) ?? false)) { mediumDto.Weight += DescriptionWeight; } if (!matchedProperties.Contains(nameof(mediumDto.Owner)) && (mediumDto.Owner?.ContainsInvariant(searchTerm) ?? false)) { mediumDto.Weight += OwnerWeight; } if (!matchedProperties.Contains(nameof(mediumDto.SerialNumber)) && (mediumDto.SerialNumber?.ContainsInvariant(searchTerm) ?? false)) { mediumDto.Weight += SerialNumberWeight; } } }
private static IReadOnlyList <string> CalculateFullMatch(MediumDto mediumDto, string searchQuery) { var fullyMatchedProperties = new List <string>(); if (searchQuery.ContainsInvariant(mediumDto.Owner)) { mediumDto.Weight += OwnerWeight * FullMatchMultiplier; fullyMatchedProperties.Add(nameof(mediumDto.Owner)); } if (searchQuery.ContainsInvariant(mediumDto.Description)) { mediumDto.Weight += DescriptionWeight * FullMatchMultiplier; fullyMatchedProperties.Add(nameof(mediumDto.Description)); } if (searchQuery.ContainsInvariant(mediumDto.SerialNumber)) { mediumDto.Weight += SerialNumberWeight * FullMatchMultiplier; fullyMatchedProperties.Add(nameof(mediumDto.SerialNumber)); } return(fullyMatchedProperties); }