public static void Main(string[] args) { var options = new Options(); if(CommandLine.Parser.Default.ParseArgumentsStrict(args, options)) { var groupOptions = new GroupOptions(options.GroupId); var store = new CsvFileStore(new[] { "uid", "first_name", "last_name" }, options.OutputDirectory); var observerOptions = GroupObserverOptions.New .UseGroupOptions(groupOptions) .UseGroupMemberStore(store) .UseSimpleIntervalSchedule(TimeSpan.FromHours(1)) .UseGroupMembersProvider(new VkGroupMembersProvider(new HttpClientHandler())) .SetEventHandlers( OnGroupMembersJoinedHandler, OnGroupMembersLeftHandler, OnGroupObserverStatusChangedHandler, OnErrorOccuredHandler); var observer = new GroupObserver(observerOptions); observer.Run(); Console.WriteLine("Enter q and press enter to exit: "); while (Console.ReadLine() != "q") { } observer.Stop(); } }
public GroupObserverOptions UseGroupOptions(GroupOptions groupOptions) { if (groupOptions == null) { throw new ArgumentNullException(nameof(groupOptions)); } GroupOptions = groupOptions; return this; }