Exemple #1
0
        public virtual async Task <IEnumerable <LatestSurveillanceResult> > GetLatestResults()
        {
            var latestResults = (await LatestSurveillanceResult.GetLatestSurveillanceResult(GetTeam(), Di.GetInstance <IJsonStorage <LatestSurveillanceResult> >())).ToList();
            var claimDb       = Di.GetInstance <ITableStorageDb <SurveilledItem> >();

            foreach (var possibleSurveillanceAction in Di.GetAllInstancesOf <ISurveillanceAction>())
            {
                foreach (var surveilanceItem in await SurveilledItem.GetAllForteam(possibleSurveillanceAction.GetKey(), GetTeam(), claimDb))
                {
                    var existing = latestResults.FirstOrDefault(result => result.ActionInstanceIdentifier == surveilanceItem.ActionInstanceIdentifier && result.ActionKey == surveilanceItem.ActionKey);

                    if (existing != null)
                    {
                        if (string.IsNullOrEmpty(existing.CommonIdentifier))
                        {
                            existing.CommonIdentifier = surveilanceItem.CommonIdentifier;
                        }

                        existing.Taken = true;
                        continue;
                    }

                    var lsr = new LatestSurveillanceResult
                    {
                        ActionKey = surveilanceItem.ActionKey,
                        ActionInstanceIdentifier = surveilanceItem.ActionInstanceIdentifier,
                        CommonIdentifier         = surveilanceItem.CommonIdentifier ?? surveilanceItem.ActionInstanceIdentifier,
                        RegisterEnvironmentInt   = surveilanceItem.RegisterEnvironmentInt,
                        RegisteredBy             = surveilanceItem.RegisteredByFriendlyName,
                        TeamProjectInt           = surveilanceItem.TeamProjectInt,
                        Success = true,
                        Taken   = true
                    };

                    latestResults.Add(lsr);
                }
            }

            return(latestResults.Where(x => x.Taken));
        }