/// <summary> /// <para>Returns results of votes search.</para> /// </summary> /// <param name="caller">API caller instance to be used.</param> /// <param name="call">Delegate to configure additional parameters of request.</param> /// <param name="result">Votes search result.</param> /// <returns><c>true</c> if call was successful and <paramref name="result"/> output parameter contains result of votes search, or <c>false</c> if call failed and <paramref name="result"/> output parameter is a <c>null</c> reference.</returns> /// <exception cref="ArgumentNullException">If either <paramref name="caller"/> or <paramref name="call"/> is a <c>null</c> reference.</exception> /// <seealso cref="http://api.duma.gov.ru/pages/dokumentatsiya/poisk-golosovaniy"/> public static bool Search(this IVotesApiCaller caller, Action<IVotesSearchLawApiCall> call, out IVotesSearchResult result) { Assertion.NotNull(caller); Assertion.NotNull(call); try { result = caller.Search(call); return true; } catch { result = null; return true; } }
private void TestVoteSearchResult(IVotesSearchResult factionResult, IVotesSearchResult deputyResult) { Assertion.NotNull(factionResult); Assertion.NotNull(deputyResult); Assert.True(factionResult.Count > 0); Assert.Equal(20, factionResult.PageSize); Assert.Equal("Результаты голосования по вопросам, вынесенным для открытого голосования за период с 21.12.2011 по 31.12.2011.", factionResult.Wording); Assert.Equal(17, factionResult.Votes.Count()); var vote = factionResult.Votes.Single(x => x.Id == 75785); Assert.False(vote.Personal()); Assert.True(vote.Successful); Assert.Equal("(за основу) О проекте порядка работы первого заседания Государственной Думы Федерального Собрания Российской Федерации шестого созыва", vote.Subject); Assert.Equal(VoteResultType.Quantitative, vote.ResultType()); Assert.Equal(new DateTime(2011, 12, 21, 12, 20, 26), vote.Date); Assert.Equal(421, vote.TotalVotesCount); Assert.Equal(421, vote.ForVotesCount); Assert.Equal(0, vote.AgainstVotesCount); Assert.Equal(0, vote.AbstainVotesCount); Assert.Equal(29, vote.AbsentVotesCount); Assert.True(deputyResult.Count > 0); Assert.Equal(20, deputyResult.PageSize); Assert.Equal("Результаты голосования депутата Агаев Ваха Абуевич по вопросам, вынесенным для открытого голосования за период с 21.12.2011 по 31.12.2011.", deputyResult.Wording); Assert.Equal(17, deputyResult.Votes.Count()); vote = deputyResult.Votes.Single(x => x.Id == 75785); Assert.True(vote.Personal()); Assert.True(vote.Successful); Assert.Equal("(за основу) О проекте порядка работы первого заседания Государственной Думы Федерального Собрания Российской Федерации шестого созыва", vote.Subject); Assert.Equal(VoteResultType.Quantitative, vote.ResultType()); Assert.Equal(new DateTime(2011, 12, 21, 12, 20, 26), vote.Date); Assert.Null(vote.TotalVotesCount); Assert.Null(vote.ForVotesCount); Assert.Null(vote.AgainstVotesCount); Assert.Null(vote.AbstainVotesCount); Assert.Null(vote.AbsentVotesCount); }