public async Task <IActionResult> PostResourceModuleMappingAsync(ResourceModuleViewModel resourceLearningModuleDetail) { this.RecordEvent("Resource module - HTTP post call initiated.", RequestType.Initiated); this.logger.LogInformation("Resource module - HTTP post call initiated."); try { var existingModuleResourceMapping = await this.unitOfWork.ResourceModuleRepository .FindAsync(resourceModuleMapping => resourceModuleMapping.ResourceId == resourceLearningModuleDetail.ResourceId && resourceModuleMapping.LearningModuleId == resourceLearningModuleDetail.LearningModuleId); if (existingModuleResourceMapping.Any()) { this.RecordEvent("Resource module - HTTP post call failed.", RequestType.Failed); return(this.Conflict()); } var resourceLearningModuleEntityModel = this.resourceModuleMapper.MapToDTO(resourceLearningModuleDetail); this.unitOfWork.ResourceModuleRepository.Add(resourceLearningModuleEntityModel); await this.unitOfWork.SaveChangesAsync(); this.RecordEvent("Resource module - HTTP post call succeeded.", RequestType.Succeeded); return(this.Ok(true)); } catch (Exception ex) { this.RecordEvent("Resource module - HTTP post call failed.", RequestType.Failed); this.logger.LogError(ex, "Error while saving resource module mapping details."); throw; } }
/// <summary> /// Gets resource module model from view model. /// </summary> /// <param name="resourceModuleViewModel">Resource module entity view model object.</param> /// <returns>Returns a resource module entity model object.</returns> public ResourceModuleMapping MapToDTO( ResourceModuleViewModel resourceModuleViewModel) { resourceModuleViewModel = resourceModuleViewModel ?? throw new ArgumentNullException(nameof(resourceModuleViewModel)); return(new ResourceModuleMapping { ResourceId = resourceModuleViewModel.ResourceId, LearningModuleId = resourceModuleViewModel.LearningModuleId, CreatedOn = DateTimeOffset.Now, }); }
public async Task PostResourceModuleMappingAsync_SaveResourceModuleMapping_ReturnsOkResult() { // ARRANGE var learningModuleId = Guid.NewGuid(); var resourceId = Guid.NewGuid(); var resourceModuleViewModel = new ResourceModuleViewModel { LearningModuleId = learningModuleId, ResourceId = resourceId, }; this.unitOfWork.Setup(uow => uow.ResourceModuleRepository.Add(It.IsAny <ResourceModuleMapping>())).Returns(() => null); // ACT var result = (ObjectResult)await this.learningModuleController.PostResourceModuleMappingAsync(resourceModuleViewModel); var resultValue = (bool)result.Value; // ASSERT Assert.AreEqual(result.StatusCode, StatusCodes.Status200OK); Assert.AreEqual(resultValue, true); }