public override void WriteToTopology(InternalTopologyBuilder builder)
 {
     if (ProcessorParameters != null)
     {
         builder.AddInternalTopic(RepartitionTopic, NumberOfPartition);
         builder.AddProcessor(ProcessorParameters.ProcessorName, ProcessorParameters.Processor,
                              ParentNodeNames());
         builder.AddSinkOperator(
             new StaticTopicNameExtractor <K, V>(RepartitionTopic),
             SinkName,
             Produced <K, V> .Create(KeySerdes, ValueSerdes).WithPartitioner(StreamPartitioner),
             ProcessorParameters.ProcessorName);
         builder.AddSourceOperator(
             RepartitionTopic,
             SourceName,
             new ConsumedInternal <K, V>(SourceName, KeySerdes, ValueSerdes, new FailOnInvalidTimestamp()));
     }
     else
     {
         builder.AddInternalTopic(RepartitionTopic, NumberOfPartition);
         builder.AddSinkOperator(
             new StaticTopicNameExtractor <K, V>(RepartitionTopic),
             SinkName,
             Produced <K, V> .Create(KeySerdes, ValueSerdes).WithPartitioner(StreamPartitioner),
             ParentNodeNames());
         builder.AddSourceOperator(
             RepartitionTopic,
             SourceName,
             new ConsumedInternal <K, V>(SourceName, KeySerdes, ValueSerdes, new FailOnInvalidTimestamp()));
     }
 }
Ejemplo n.º 2
0
        public bool Add(ProductMasterItem item, ref double count)
        {
            bool   added    = false;
            double numToAdd = count;

            if (!IsFull())
            {
                // get the number that can be added.
                double hoursAvailable = GetAvailableHours();
                double maxUnitsToMake = hoursAvailable * item.UnitsPerHour;

                // clamp
                numToAdd = numToAdd > maxUnitsToMake ? maxUnitsToMake : numToAdd;

                PressMasterItem pressItem = Produced.FirstOrDefault(p => p.MasterItem == item);

                if (pressItem == null)
                {
                    Produced.Add(new PressMasterItem(item, numToAdd));
                }
                else
                {
                    pressItem.UnitsMade += numToAdd;
                }
                RaisePropertyChangedEvent("Produced");
                count -= numToAdd;
                added  = true;
            }

            return(added);
        }
Ejemplo n.º 3
0
        public void LoanDisbursedFundsEventRaised()
        {
            var actual = (LoanDisbursedFundsEvent)Produced.Single();

            Assert.Equal(_transactionDate, actual.TransactionDate);
            Assert.Equal(-_loanAmount, actual.Amount);
        }
Ejemplo n.º 4
0
        public void Order(SandwichKind kind, int count)
        {
            var sandwiches = new List <Sandwich>();

            for (int i = 0; i < count; i++)
            {
                sandwiches.Add(Produce(kind));
            }
            _warehouse.AddRange(sandwiches);
            Produced?.Invoke(sandwiches.ToArray());
        }
Ejemplo n.º 5
0
 private IEnumerable <Produced> DescribeIngotProduction(IEnumerable <Blueprint> blueprints)
 {
     foreach (var blueprint in blueprints)
     {
         var produced = new Produced {
             IngotType           = blueprint.Outputs.Single().ItemId,
             OreType             = blueprint.Inputs.Single().ItemId,
             MeanIngotsPerSecond = blueprint.Outputs.Single().Amount / blueprint.BaseProductionTimeInSeconds,
             MeanOrePerSecond    = blueprint.Inputs.Single().Amount / blueprint.BaseProductionTimeInSeconds
         };
         yield return(produced);
     }
 }
Ejemplo n.º 6
0
        public void Remove(ProductMasterItem item, ref double scheduledCount)
        {
            PressMasterItem pressItem = Produced.FirstOrDefault(p => p.MasterItem.Equals(item));

            if (pressItem != null)
            {
                if (scheduledCount >= pressItem.UnitsMade)
                {
                    Produced.Remove(pressItem);
                }

                scheduledCount -= pressItem.UnitsMade;
                RaisePropertyChangedEvent("Produced");
            }
        }
 public void successful_request_message_is_publised()
 {
     Assert.That(Produced.ContainsSingle <StorageMessage.RequestCompleted>(
                     x => x.CorrelationId == InternalCorrId && x.Success));
 }
        internal void AddSinkOperator <K, V>(ITopicNameExtractor <K, V> topicNameExtractor, string nameNode, Produced <K, V> produced, params string[] previousProcessorNames)
        {
            if (nodeFactories.ContainsKey(nameNode))
            {
                throw new TopologyException($"Sink processor {nameNode} is already added.");
            }

            nodeFactories.Add(nameNode,
                              new SinkNodeFactory <K, V>(nameNode, previousProcessorNames, topicNameExtractor, produced.KeySerdes, produced.ValueSerdes));
            nodeGrouper.Add(nameNode);
            nodeGrouper.Unite(nameNode, previousProcessorNames);
            nodeGroups = null;
        }
 public void successful_request_message_is_not_published()
 {
     Assert.That(!Produced.Any());
 }
Ejemplo n.º 10
0
 internal void AddSinkOperator <K, V>(ITopicNameExtractor <K, V> topicNameExtractor, string nameNode, Produced <K, V> produced)
 {
     if (!sinkOperators.ContainsKey(nameNode))
     {
         SinkProcessor <K, V> sink = new SinkProcessor <K, V>(nameNode, null, topicNameExtractor, produced.KeySerdes, produced.ValueSerdes);
         sinkOperators.Add(nameNode, sink);
     }
     else
     {
         throw new Exception("Sink operator already exist !");
     }
 }
 public void no_additional_messages_are_published()
 {
     Assert.That(!Produced.Any());
 }
Ejemplo n.º 12
0
 private void RaiseProduced(TProduct product)
 {
     Produced?.Invoke(this, new ProducedEventArgs <TProduct>(product));
 }
Ejemplo n.º 13
0
 public void CommitEvents()
 {
     Produced.Clear();
 }
Ejemplo n.º 14
0
 protected void Apply(IEvent @event)
 {
     Evolve(@event);
     Produced.Add(@event);
 }
Ejemplo n.º 15
0
 private IEnumerable<Produced> DescribeIngotProduction(IEnumerable<Blueprint> blueprints)
 {
     foreach (var blueprint in blueprints)
     {
         var produced = new Produced {
             IngotType = blueprint.Outputs.Single().ItemId,
             OreType = blueprint.Inputs.Single().ItemId,
             MeanIngotsPerSecond = blueprint.Outputs.Single().Amount / blueprint.BaseProductionTimeInSeconds,
             MeanOrePerSecond = blueprint.Inputs.Single().Amount / blueprint.BaseProductionTimeInSeconds
         };
         yield return produced;
     }
 }