// ObjectResult<IEnumerable<ReaderOutput>> public ObjectResult Get() { _logger.LogInformation("Get all readers"); string message; ObjectResult result; try { var readers = new List <ReaderOutput>(); if (database.Readers.Any()) { foreach (var reader in database.Readers) { var books = database.ReadedBooks .Where(x => x.Reader.Nickname == reader.Nickname) .Select(x => x.Name) .ToList(); var nickname = reader.Nickname; var addedreader = new ReaderOutput() { Nickname = nickname, Books = books }; readers.Add(addedreader); } message = "Successful getting"; result = Ok(readers); _logger.LogInformation(message); } else { message = "No readers found"; result = NotFound(message); _logger.LogInformation(message); } } catch { message = "Problem with database while getting"; result = StatusCode(500, message); _logger.LogError(message); } return(result); }
private bool OutputEqual(ReaderOutput ro1, ReaderOutput ro2) { bool result = ro1.Nickname == ro2.Nickname; if (result) { if (ro1.Books != null && ro2.Books != null) { result = ro1.Books.Count == ro2.Books.Count; for (int i = 0; i < ro1.Books.Count && result; i++) { result = ro1.Books[i] == ro2.Books[i]; } } else { result = ro1.Books == ro2.Books; } } return(result); }
public void Test6() { var readers = new List <Reader>() { CreateReader("R1", new List <string>() { "B1", "B2", "B3" }), CreateReader("R2", new List <string>() { "B3", "B1", "B5" }), CreateReader("R3", new List <string>() { "B2", "B6", "B7" }) }; var readerOutput = new ReaderOutput() { Nickname = "R2", Books = new List <string>() { "B3", "B1", "B5" } }; database = GetDatabase(readers); var service = new ReaderController(database, _logger); var result = service.Get("R2"); Assert.AreEqual(200, result.StatusCode); var output = (ReaderOutput)result.Value; Assert.AreEqual(true, OutputEqual(readerOutput, output)); }