public async Task <IActionResult> PutScoringValueSet(long id, ScoringValueSet scoringValueSet) { if (id != scoringValueSet.Id) { return(BadRequest()); } _context.Entry(scoringValueSet).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ScoringValueSetExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult <ScoringValueSet> > PostScoringValueSet(ScoringValueSet scoringValueSet) { _context.ScoringValueSet.Add(scoringValueSet); await _context.SaveChangesAsync(); return(CreatedAtAction("GetScoringValueSet", new { id = scoringValueSet.Id }, scoringValueSet)); }
public static int Score(string input, ScoringValueSet scoringValueSet = null) { Dictionary <char, int> values = null; Dictionary <int, string> valuesInitial; if (scoringValueSet == null) { valuesInitial = new Dictionary <int, string>() { { 1, "aeioulnrst" }, { 2, "dg" }, { 3, "bcmp" }, { 4, "fhvwy" }, { 5, "k" }, { 8, "jx" }, { 10, "qz" } }; } else { valuesInitial = new Dictionary <int, string>(); string[] valueSetArr = scoringValueSet.ScoringValuesSet.ToLower().Split(","); foreach (string item in valueSetArr) { string[] parts = item.Split(":"); valuesInitial.Add(Int32.Parse(parts[0]), parts[1]); } }; values = valuesInitial.SelectMany(kv => kv.Value.Select(c => (c, kv.Key))) .ToDictionary(kv => kv.c, kv => kv.Key); string word = input.ToLower(); int score = 0; int ind = 0; List <int> scores = new List <int> { 1, 3, 8, 14, 20, 34, 50, 120 }; foreach (char letter in word) { ind += 1; // score += values[letter]; score += scores[ind]; } return(score); }