예제 #1
0
파일: Space.cs 프로젝트: jweimann/AdService
        // This is the current bottleneck
        public Space(CreateSpace createSpaceMessage)
        {
            _uniqueSpaceName = createSpaceMessage.UniqueSpaceName;
            _size = createSpaceMessage.Size;
            _keywords = createSpaceMessage.Keywords;

            _keywordActors = new List<ActorSelection>();

            foreach (var keyword in _keywords)
            {
                ActorSelection keywordActor = Context.System.ActorSelection($"/user/KeywordsRoot/{keyword}");
                _keywordActors.Add(keywordActor);
            }

            Receive<RequestAd>(message =>
            {
                var request = new GetBestAdForSpace(_uniqueSpaceName, _size); // Create a request for the best ad, send it to our keywords.

                Props props = Props.Create<ImpressionRequest>(Sender, request, _keywordActors);
                IActorRef impressionRequest = Context.ActorOf(props);
            });
        }
예제 #2
0
 public GetBestAdForSpace(string uniqueSpaceName, AdSpaceSize adSpaceSize)
 {
     UniqueSpaceName = uniqueSpaceName;
     Size = adSpaceSize;
 }
예제 #3
0
 public CreateSpace(string uniqueSpaceName, AdSpaceSize adSpaceSize, params string[] keywords)
 {
     UniqueSpaceName = uniqueSpaceName;
     Size = adSpaceSize;
     Keywords = keywords;
 }