private async Task <RevenueModelByRcc> RevenueByRcc <RType>(ResolveFieldContext context, QueryTemplate <RType> query, DateTime date, int rcc) where RType : IRevenue { if (context.ThrowIfInvalidAuthorization() == false) { return(null); } var rcckeys = context.GetSiteKeysByRcc(); List <RevenueModelByRcc> results = new List <RevenueModelByRcc>(); if (rcckeys.ContainsKey(rcc) == false) { context.Errors.Add(new GraphQL.ExecutionError("대상 RCC의 지역 사이트는 소유하지 않았습니다")); return(null); } IEnumerable <int> siteKeys = rcckeys[rcc]; using (IStatelessSession session = mysqlDataAccessor.SessionFactory.OpenStatelessSession()) { var result = await query(session, date, siteKeys); RevenueModelByRcc line = new RevenueModelByRcc { rcc = rcc, sumofmoney = result.Sum(x => x.Revenue) }; return(line); } }
private async Task <IEnumerable <RevenueModelByRcc> > RevenueByAll <RType>(ResolveFieldContext context, QueryTemplate <RType> query, DateTime date) where RType : IRevenue { if (context.ThrowIfInvalidAuthorization() == false) { return(null); } var rcckeys = context.GetSiteKeysByRcc(); List <RevenueModelByRcc> results = new List <RevenueModelByRcc>(); using (IStatelessSession session = mysqlDataAccessor.SessionFactory.OpenStatelessSession()) { foreach (int rcc in rcckeys.Keys) { IEnumerable <int> siteKeys = rcckeys[rcc]; var rows = await query(session, date, siteKeys); RevenueModelByRcc line = new RevenueModelByRcc { rcc = rcc, sumofmoney = rows.Sum(x => x.Revenue) }; line.sites = rows.Select(x => new RevenueBySite { siteid = x.Siteid, sumofmoney = x.Revenue }); results.Add(line); } return(results); } }