本文整理汇总了C#中Keen.Core.KeenClient.QueryFunnelAsync方法的典型用法代码示例。如果您正苦于以下问题:C# KeenClient.QueryFunnelAsync方法的具体用法?C# KeenClient.QueryFunnelAsync怎么用?C# KeenClient.QueryFunnelAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Keen.Core.KeenClient
的用法示例。
在下文中一共展示了KeenClient.QueryFunnelAsync方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Funnel_Simple_Success
public async Task Funnel_Simple_Success()
{
var client = new KeenClient(SettingsEnv);
IEnumerable<FunnelStep> funnelsteps = new List<FunnelStep>
{
new FunnelStep
{
EventCollection = FunnelColA,
ActorProperty = "id",
},
new FunnelStep
{
EventCollection = FunnelColB,
ActorProperty = "id"
},
};
var expected = new FunnelResult
{
Steps = new []
{
new FunnelResultStep
{
EventCollection = FunnelColA,
},
new FunnelResultStep
{
EventCollection = FunnelColB,
},
},
Result = new[] { 3, 2 }
};
Mock<IQueries> queryMock = null;
if (UseMocks)
{
queryMock = new Mock<IQueries>();
queryMock.Setup(m => m.Funnel(
It.Is<IEnumerable<FunnelStep>>(f => f.Equals(funnelsteps)),
It.Is<QueryTimeframe>(t => t == null),
It.Is<string>(t => t == "")
))
.Returns(Task.FromResult(expected));
client.Queries = queryMock.Object;
}
var reply = (await client.QueryFunnelAsync(funnelsteps));
Assert.NotNull(reply);
Assert.NotNull(reply.Result);
Assert.NotNull(reply.Steps);
Assert.AreEqual(reply.Steps.Count(), 2);
if (null != queryMock)
queryMock.VerifyAll();
}
示例2: Funnel_ValidTimeframe_Success
public async void Funnel_ValidTimeframe_Success()
{
var client = new KeenClient(settingsEnv);
var filters = new List<QueryFilter>() { new QueryFilter("field1", QueryFilter.FilterOperator.GreaterThan(), "1") };
var funnelColA = "FunnelTestA";
var funnelColB = "FunnelTestB";
var funnelColC = "FunnelTestC";
try
{
if (!UseMocks)
{
client.DeleteCollection(funnelColA);
client.DeleteCollection(funnelColB);
client.DeleteCollection(funnelColC);
}
}
catch (Exception)
{
}
var timeframe = new QueryAbsoluteTimeframe(DateTime.Now, DateTime.Now.AddSeconds(2));
if (!UseMocks)
{
client.AddEvent(funnelColA, new { id = "1" });
client.AddEvent(funnelColA, new { id = "2" });
client.AddEvent(funnelColA, new { id = "3" });
client.AddEvent(funnelColB, new { id = "1" });
client.AddEvent(funnelColB, new { id = "2" });
client.AddEvent(funnelColC, new { id = "1" });
}
IEnumerable<FunnelStep> funnelsteps = new List<FunnelStep>()
{
new FunnelStep(){ EventCollection = funnelColA, ActorProperty = "id" },
new FunnelStep(){ EventCollection = funnelColB, ActorProperty = "id" },
new FunnelStep(){ EventCollection = funnelColC, ActorProperty = "id" },
};
IEnumerable<int> result = new List<int>() { 3, 2, 1 };
Mock<IQueries> queryMock = null;
if (UseMocks)
{
queryMock = new Mock<IQueries>();
queryMock.Setup(m => m.Funnel(
It.IsAny<string>(),
It.Is<IEnumerable<FunnelStep>>(f => f == funnelsteps),
It.Is<QueryTimeframe>(t => t == null),
It.Is<string>(t => t == "")
))
.Returns(Task.FromResult(result));
client.Queries = queryMock.Object;
}
var reply = (await client.QueryFunnelAsync(testCol, funnelsteps, null)).ToList();
if (null != queryMock)
queryMock.VerifyAll();
}
示例3: Funnel_ValidFilter_Success
public async void Funnel_ValidFilter_Success()
{
var client = new KeenClient(SettingsEnv);
var filters = new List<QueryFilter> { new QueryFilter("id", QueryFilter.FilterOperator.GreaterThanOrEqual(), 0) };
IEnumerable<FunnelStep> funnelsteps = new []
{
new FunnelStep
{
EventCollection = FunnelColA,
ActorProperty = "id",
Filters = filters,
},
new FunnelStep
{
EventCollection = FunnelColB,
ActorProperty = "id"
},
};
var expected = new FunnelResult
{
Steps = new []
{
new FunnelResultStep
{
EventCollection = FunnelColA,
Filters = filters
},
new FunnelResultStep
{
EventCollection = FunnelColB,
},
},
Result = new [] { 3, 2 }
};
Mock<IQueries> queryMock = null;
if (UseMocks)
{
queryMock = new Mock<IQueries>();
queryMock.Setup(m => m.Funnel(
It.Is<IEnumerable<FunnelStep>>(f => f.Equals(funnelsteps)),
It.Is<QueryTimeframe>(t => t == null),
It.Is<string>(t => t == "")
))
.Returns(Task.FromResult(expected));
client.Queries = queryMock.Object;
}
var reply = (await client.QueryFunnelAsync(funnelsteps));
Assert.NotNull(reply);
Assert.NotNull(reply.Result);
Assert.True(reply.Result.SequenceEqual(expected.Result));
Assert.NotNull(reply.Steps);
Assert.AreEqual(reply.Steps.Count(), 2);
if (null != queryMock)
queryMock.VerifyAll();
}