コード例 #1
0
        private void HandleRemoveMethodsFromExperiment(RemoveMethodsFromExperiment removeMethodsFromExperiment)
        {
            Result removalResult = _repository.RemoveMethodsFromExperiment(removeMethodsFromExperiment);

            if (removalResult.IsFailure)
            {
                ExperimentRemovalFromMethodsFailed failedMethodsRemovalFromExperiment =
                    new ExperimentRemovalFromMethodsFailed(
                        removalResult.Error,
                        removeMethodsFromExperiment.LoggedInUserId,
                        removeMethodsFromExperiment.SagaId
                        );
                _kafkaProducer.Produce(failedMethodsRemovalFromExperiment, METHODS_TOPIC);
                return;
            }

            ExperimentRemovedFromMethods methodsRemovedFromExperiment = new ExperimentRemovedFromMethods(
                removeMethodsFromExperiment.ExperimentId,
                removeMethodsFromExperiment.MethodsIds.Select(mId => mId).ToList(),
                removeMethodsFromExperiment.LoggedInUserId,
                removeMethodsFromExperiment.SagaId
                );

            _kafkaProducer.Produce(methodsRemovedFromExperiment, METHODS_TOPIC);
        }
コード例 #2
0
        public Result RemoveMethodsFromExperiment(RemoveMethodsFromExperiment removeMethodsFromExperiment)
        {
            //Will fail if the experiment does not exist
            long        experimentId = removeMethodsFromExperiment.ExperimentId;
            List <long> methodsIds   = removeMethodsFromExperiment.MethodsIds;

            Experiment experiment = experimentsMemoryDatabase.SingleOrDefault(e => e.Id == experimentId);

            if (experiment == null)
            {
                return(Result.Fail("The provided experiment does not exist"));
            }

            methodsIds.ForEach(mId => experiment.RemoveMethod(mId));

            return(Result.Ok());
        }
コード例 #3
0
        public Result RemoveMethodsFromExperiment(RemoveMethodsFromExperiment removeMethodsFromExperiment)
        {
            //Will fail if one of the provided methods does not exist
            long        experimentId = removeMethodsFromExperiment.ExperimentId;
            List <long> methodsIds   = removeMethodsFromExperiment.MethodsIds;

            List <long> allMethodsIds = methodsMemoryDatabase.Select(m => m.Id).ToList();

            if (!methodsIds.All(m => allMethodsIds.Contains(m)))
            {
                return(Result.Fail("Some of the methods you provided do not exist"));
            }

            methodsMemoryDatabase.ForEach(m =>
            {
                if (methodsIds.Contains(m.Id))
                {
                    m.RemoveExperimet(experimentId);
                }
            });

            return(Result.Ok());
        }