public async Task <SimulationApiModel> PostAsync( [FromBody] SimulationApiModel simulationApiModel, [FromQuery(Name = "template")] string template = "") { if (simulationApiModel != null) { await simulationApiModel.ValidateInputRequestAsync(this.log, this.connectionStringManager); } else { if (string.IsNullOrEmpty(template)) { this.log.Warn("No data or invalid data provided", () => new { simulationApiModel, template }); throw new BadRequestException("No data or invalid data provided."); } // Simulation can be created with `template=default` other than created with input data simulationApiModel = new SimulationApiModel(); } var simulation = await this.simulationsService.InsertAsync(simulationApiModel.ToServiceModel(null), template); return(SimulationApiModel.FromServiceModel( simulation, this.servicesConfig, this.deploymentConfig, this.connectionStringManager, this.simulationRunner, this.rateReporter)); }
public async Task <SimulationApiModel> PutAsync([FromBody] SimulationApiModel simulationApiModel, string id = "") { if (simulationApiModel == null) { this.log.Warn("No data provided, request object is null"); throw new BadRequestException("No data provided, request object is empty."); } await simulationApiModel.ValidateInputRequestAsync(this.log, this.connectionStringValidation); // Load the existing resource, so that internal properties can be copied var existingSimulation = await this.GetExistingSimulationAsync(id); var simulation = await this.simulationsService.UpsertAsync(simulationApiModel.ToServiceModel(existingSimulation, this.defaultRatingConfig, id)); return(SimulationApiModel.FromServiceModel(simulation)); }