static async Task <(List <Group>, Group, Group, IDictionary <string, Group>, IDictionary <string, Group>)> ExtractGroupsFromInputFile(API api, string fileName) { List <Group> groups; Group firstLineParentGroupParsed; Group firstLineParentGroupFromDB; IDictionary <string, Group> groupLookupFromDB; IDictionary <string, Group> groupLookupParsed; try { var parser = new ImportGroupParser(api, rootGroupSreference); parser.RowParsed += Parser_RowParsed; using (FileStream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read)) { groups = await parser.ParseAsync(stream); } firstLineParentGroupParsed = parser.FirstLineParentGroupParsed; firstLineParentGroupFromDB = parser.FirstLineParentGroupFromDB; groupLookupFromDB = parser.GroupLookupFromDB; groupLookupParsed = parser.GroupLookupParsed; } catch (Exception exception) { Console.WriteLine("Parsing failed, exception: {0}", exception.Message); throw; } return(groups, firstLineParentGroupParsed, firstLineParentGroupFromDB, groupLookupFromDB, groupLookupParsed); }
static void Parser_RowParsed(object sender, RowParsedEventArgs <Group> e) { ImportGroupParser.RowParsedHandler(sender, e, Console.WriteLine, isVerboseMode, true); }