public void Simulate()
        {
            var request = new SimulationRequestModel
            {
                ProjectId           = 1,
                ResourceId          = 4,
                StatisticalEngineId = 1,
                CreatedBy           = "test user"
            };
            var expectedResult = new SimulationResponseModel()
            {
                NoOfModels    = 120,
                TimeInSeconds = 600
            };

            var projectService = new Mock <ISimulationService>();

            projectService.Setup(service => service.Simulate(request.ProjectId, request.ResourceId, request.StatisticalEngineId, request.CreatedBy))
            .Returns(expectedResult);
            var controller   = new SimulationController(projectService.Object);
            var actualResult = controller.Simulate(request);

            Assert.Equal(expectedResult.NoOfModels, actualResult.Value.NoOfModels);
            Assert.Equal(expectedResult.TimeInSeconds, actualResult.Value.TimeInSeconds);
        }
        public void Simulate()
        {
            var expectedResult = new SimulationResponseModel()
            {
                NoOfModels    = 120,
                TimeInSeconds = 600
            };

            var simulationService = new Mock <ISimulationService>();

            simulationService.Setup(service => service.Simulate(1, 4, 1, "test user"))
            .Returns(expectedResult);
            var actualResult = simulationService.Object.Simulate(1, 4, 1, "test user");

            Assert.NotNull(actualResult);
            Assert.Equal(expectedResult.NoOfModels, actualResult.NoOfModels);
            Assert.Equal(expectedResult.TimeInSeconds, actualResult.TimeInSeconds);
        }
Пример #3
0
        /// <summary>
        /// Create Queue and Save Models into PostgresSql
        /// </summary>
        /// <param name="statisticalEngineType"></param>
        /// <param name="engineModels"></param>
        /// <param name="projectSimulationId"></param>
        /// <param name="resourceId"></param>
        /// <returns></returns>
        private SimulationResponseModel SimulateModel(string schemaFileName, List <string> engineModels, int projectSimulationId, int resourceId)
        {
            var response = new SimulationResponseModel
            {
                ErrorMessages = new List <IList <string> >()
            };
            long modelCount = 0;

            try
            {
                foreach (var engineModel in engineModels)
                {
                    var simulateModelResponse = simulationModelService.SimulateModel(schemaFileName, engineModel);
                    if (simulateModelResponse.ErrorMessages == null)
                    {
                        //create queue and add message
                        if (simulationModelService.CreateSimulationQueue(simulateModelResponse.QueueMessage))
                        {
                            //create data into SimulationModel
                            var data = JObject.Parse(engineModel);
                            var simulationModelId = (Guid)data["msgId"];
                            simulationModelService.CreateSimulationData(engineModel, simulationModelId, projectSimulationId, resourceId);
                            modelCount++;
                        }
                    }
                    else
                    {
                        response.ErrorMessages.Add(simulateModelResponse.ErrorMessages);
                    }
                }
                response.NoOfModels    = modelCount;
                response.TimeInSeconds = 5 * (int)modelCount;
                return(response);
            }
            catch (Exception simulateModelException)
            {
                throw new Exception(SimulationException.SIMULATE_MODEL_ERROR_MSG, simulateModelException);
            }
        }
Пример #4
0
        /// <summary>
        /// Generate Simulation Models
        /// </summary>
        /// <param name="projectId"></param>
        /// <param name="resourceId"></param>
        /// <param name="statisticalEngineId"></param>
        /// <returns></returns>
        private SimulationResponseModel GenerateSimulationModels(int projectId, int resourceId, int statisticalEngineId, int projectSimulationId)
        {
            try
            {
                var    response               = new SimulationResponseModel();
                var    inputAdvisor           = GetProjectJsonObject(projectId, resourceId);
                var    statisticalEngine      = GetStatisticalEngineDetails(statisticalEngineId);
                string simulationReceivedTime = DateTime.UtcNow.ToString(Constants.SIMULATION_RECEIVED_DATE_FORMAT);
                var    models = CreateSimulationModels(inputAdvisor, statisticalEngine, simulationReceivedTime);

                //Create queue and save models
                response = SimulateModel(statisticalEngine.Rows[0]["schemafilename"].ToString(), models, projectSimulationId, resourceId);

                //update model count
                UpdateProjectSimulationModelCount(projectSimulationId, models.Count());
                return(response);
            }
            catch (Exception generateSimulationModelsException)
            {
                throw new Exception(SimulationException.GENERATE_SIMULATION_MODELS_EXCEPTION, generateSimulationModelsException);
            }
        }