private async Task <uint> GetVnId() { using (var context = new DatabaseContext()) { uint data = 0; data = context.VnInfo.Where(v => v.Title == SelectedItem).Select(x => x.VnId).FirstOrDefault(); if (data != 0) { return(data); } if (data == 0) { data = context.VnIdList.Where(v => v.Title == SelectedItem).Select(x => x.VnId) .FirstOrDefault(); return(data); } if (data == 0) { Vndb client = new Vndb(true); var response = await client.GetVisualNovelAsync(VndbFilters.Title.Equals(SelectedItem)); if (response == null) { HandleError.HandleErrors(client.GetLastError(), 0); } else { VisualNovel firstOrDefault = response?.Items.FirstOrDefault(); if (firstOrDefault != null) { data = firstOrDefault.Id; } client.Logout(); client.Dispose(); return(data); } } return(0); } }