public async Task <IActionResult> CreateProjectDataModel(int projectId, CreateProjectDataModelDto newProjectDataModel) { _logger.LogInformation("Getting data models for project {projectId}. Request body: {@newProjectDataModel}", projectId, newProjectDataModel); try { var modelId = await _projectDataModelService.AddProjectDataModel(projectId, newProjectDataModel.Name, newProjectDataModel.Description, newProjectDataModel.Label, newProjectDataModel.IsManaged, newProjectDataModel.SelectKey); var projectDataModel = await _projectDataModelService.GetProjectDataModelById(modelId); var result = _mapper.Map <ProjectDataModelDto>(projectDataModel); return(CreatedAtRoute("GetProjectDataModelById", new { projectId, modelId }, result)); } catch (DuplicateProjectDataModelException dupEx) { return(BadRequest(dupEx.Message)); } catch (ProjectNotFoundException projEx) { return(BadRequest(projEx.Message)); } }
public async void CreateProjectDataModel_ReturnsCreatedProjectDataModel() { _projectDataModelService .Setup(s => s.AddProjectDataModel(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <bool?>(), It.IsAny <string>(), It.IsAny <CancellationToken>())) .ReturnsAsync(1); _projectDataModelService.Setup(s => s.GetProjectDataModelById(It.IsAny <int>(), It.IsAny <CancellationToken>())) .ReturnsAsync((int id, CancellationToken cancellationToken) => new ProjectDataModel { Id = id, Name = "Product" }); var controller = new ProjectDataModelController(_projectDataModelService.Object, _mapper, _logger.Object); var dto = new CreateProjectDataModelDto { Name = "Product" }; var result = await controller.CreateProjectDataModel(1, dto); var okActionResult = Assert.IsType <CreatedAtRouteResult>(result); var returnValue = Assert.IsType <ProjectDataModelDto>(okActionResult.Value); Assert.Equal(1, returnValue.Id); }
public async Task <ProjectDataModelDto> CreateProjectDataModel(int projectId, CreateProjectDataModelDto dto) { var path = $"project/{projectId}/model"; return(await Api.Post <CreateProjectDataModelDto, ProjectDataModelDto>(path, dto)); }