public void CreateAsync_ReturnsCorrectQualificationId() { var options = new DbContextOptionsBuilder <ApplicationDbContext>().UseInMemoryDatabase(Guid.NewGuid().ToString()).Options; using (var dbContext = new ApplicationDbContext(options)) { CreateQualificationServiceModel qualification = new CreateQualificationServiceModel { Name = "TestQualification", Description = "random desc", }; var qualificationsService = new QualificationsService(dbContext); var result = qualificationsService.CreateAsync(qualification); Assert.Equal(1, result.Result); } }
public async Task <IActionResult> CreateQualification(QualificationInputModel model) { this.InitializeAndFillUnifiedModel(); if (!this.ModelState.IsValid) { return(this.View("Create", this.unifiedModel)); } var qualification = new CreateQualificationServiceModel { Name = model.QualificationName, Description = model.Description, }; await this.qualificationsService.CreateAsync(qualification); return(this.RedirectToAction("Create")); }
//--------------- METHODS ----------------- /// <summary> /// Creates a new <see cref="Qualification"/> using the <see cref="CreateQualificationServiceModel"/>. /// If such <see cref="Qualification"/> already exists in the database, fetches it's (int)<c>Id</c> and returns it. /// If such <see cref="Qualification"/> doesn't exist in the database, adds it and return it's (int)<c>Id</c>. /// </summary> /// <param name="model">Service model with <c>Name</c> and <c>Description</c></param> /// <returns>Qualification ID</returns> public async Task <int> CreateAsync(CreateQualificationServiceModel model) { int qualificationId = this.dbContext.Qualifications.Where(x => x.Name == model.Name) .Select(x => x.Id) .FirstOrDefault(); if (qualificationId != 0) // If qualificationId is different than 0 (int default value), qualification with such name already exists, so return it's id. { return(qualificationId); } Qualification qualification = new Qualification { Name = model.Name, Description = model.Description, }; await this.dbContext.Qualifications.AddAsync(qualification); await this.dbContext.SaveChangesAsync(); return(qualification.Id); }