示例#1
0
        public async Task <MeasurementByRcc> GetMeasurementByRccAsync(ResolveFieldContext context, int rcc)
        {
            if (context.ThrowIfInvalidAuthorization() == false)
            {
                return(null);
            }
            var rcckeys = context.GetSiteKeysByRcc();

            if (rcckeys.ContainsKey(rcc) == false)
            {
                context.Errors.Add(new GraphQL.ExecutionError("대상 RCC의 지역 사이트는 소유하지 않았습니다"));
                return(null);
            }
            MeasurementByRcc measurementByRcc = new MeasurementByRcc();
            List <double>    socs             = new List <double>();

            foreach (int siteid in rcckeys[rcc])
            {
                MeasurementBySite site = await GetMeasurementsBySiteIdAsync(siteid);

                socs.Add(site.meanofsoc);
                measurementByRcc.countofbms        += site.countofbms;
                measurementByRcc.countofpcs        += site.countofpcs;
                measurementByRcc.countofpv         += site.countofpv;
                measurementByRcc.countofevent      += site.countofevent;
                measurementByRcc.sumofactivepower  += site.sumofactivepower;
                measurementByRcc.sumofpvgeneration += site.sumofpvgeneration;
                measurementByRcc.sumofcharge       += site.sumofcharge;
                measurementByRcc.sumofdischarge    += site.sumofdischarge;
            }
            measurementByRcc.meanofsoc    = socs.Average();
            measurementByRcc.countofsites = rcckeys[rcc].Count;
            measurementByRcc.rcc          = rcc;
            return(measurementByRcc);
        }
示例#2
0
        public async Task <IEnumerable <MeasurementByRcc> > GetMeasurementsAsync(ResolveFieldContext context)
        {
            if (context.ThrowIfInvalidAuthorization() == false)
            {
                return(null);
            }
            var siteKeys = context.GetSiteKeysByRcc();
            List <MeasurementByRcc> result = new List <MeasurementByRcc>();

            foreach (int rcc in siteKeys.Keys)
            {
                MeasurementByRcc measurementByRcc = await GetMeasurementByRccAsync(context, rcc);

                if (measurementByRcc == null)
                {
                    continue;
                }
                result.Add(measurementByRcc);
            }
            return(result);
        }