Exemple #1
0
        private void ProcessSportMsgHandler(ProcessSportMsg msg)
        {
            var sports = _serviceFacade.GetSports();
            List <IResourceFacade> resources = new List <IResourceFacade>();

            foreach (var sport in sports)
            {
                var _res = _serviceFacade.GetResources(sport.Name);
                if (ValidateResources(_res, sport.Name))
                {
                    resources.AddRange(_res);
                }
            }
            if (resources.Count > 1)
            {
                SortByMatchStatus(resources);
            }



            var streamListenerManagerActor = Context.System.ActorSelection(StreamListenerManagerActor.Path);

            foreach (var resource in resources)
            {
                streamListenerManagerActor.Tell(new ProcessResourceMsg {
                    Resource = resource
                }, Self);
            }
        }
        private void ProcessSportMsgHandler(ProcessSportMsg msg)
        {
            var resources = _serviceFacade.GetResources(msg.Sport);

            if (ValidateResources(resources, msg.Sport))
            {
                _logger.Debug($"Received {resources.Count} fixtures to process in sport={msg.Sport}");

                if (resources.Count > 1)
                {
                    resources.Sort((x, y) =>
                    {
                        if (x.Content.MatchStatus > y.Content.MatchStatus)
                        {
                            return(-1);
                        }

                        return(x.Content.MatchStatus < y.Content.MatchStatus
                            ? 1
                            : DateTime.Parse(x.Content.StartTime).CompareTo(DateTime.Parse(y.Content.StartTime)));
                    });
                }

                var streamListenerManagerActor = Context.System.ActorSelection(StreamListenerManagerActor.Path);

                foreach (var resource in resources)
                {
                    streamListenerManagerActor.Tell(new ProcessResourceMsg {
                        Resource = resource
                    }, Self);
                }
            }
        }
Exemple #3
0
        private void ProcessSportsMsgHandler(ProcessSportMsg msg)
        {
            var sports = _serviceFacade.GetSports();

            if (sports == null)
            {
                var errorMsg = "ServiceFacade GetSports responce=NULL probably credentials problem";
                _logger.Error(errorMsg);
                throw new Exception(errorMsg);
            }

            _logger.Debug($"ServiceFacade GetSports returned SportsCount={sports?.Count()} listOfSports={$"\"{string.Join(", ", sports.Select(_=> _.Name))}\"" }");

            List <IResourceFacade> resources = new List <IResourceFacade>();

            foreach (var sport in sports)
            {
                var _res = _serviceFacade.GetResources(sport.Name);
                if (_res != null && _res.Any())
                {
                    _logger.Info($"ProcessSportMsgHandler {GetListOfFixtures(_res, sport)}");
                }
                if (ValidateResources(_res, sport.Name))
                {
                    resources.AddRange(_res);
                }
            }
            if (resources.Count > 1)
            {
                try
                {
                    resources.SortByMatchStatus();
                }
                catch (System.ArgumentException argEx)
                {
                    _logger.Warn($"Can't sort resources. Fixtures list: {GetListOfFixtures(resources)}. {argEx}");
                }
            }
            _logger.Info($"ProcessSportsMsgHandler resourcesCount={resources.Count}");

            var streamListenerManagerActor = Context.System.ActorSelection(StreamListenerManagerActor.Path);

            foreach (var resource in resources)
            {
                streamListenerManagerActor.Tell(new ProcessResourceMsg {
                    Resource = resource
                }, Self);
            }
        }