public async Task <ActionResult <ClassResource> > AddClass(ClassResource classResource) { var userId = HttpContext.User.Claims.First(c => c.Type == "sub").Value; // Validation classResource var error = classResource.IsValid(); if (!string.IsNullOrWhiteSpace(error)) { return(BadRequest(error)); } // Convert to model class var classModel = _mapper.Map <ClassResource, Class>(classResource); classModel.InstructorId = userId; // Store in database await _context.Classes.AddAsync(classModel); await _context.SaveChangesAsync(); // Build URL to created class var request = HttpContext.Request; var url = $"{request.Scheme}://{Request.Host}{Request.Path}{classModel.Id}"; return(Created(url, classModel.Id)); }