public async Task <Studio> CreateStudioFromRequest(CreateStudioRequest request) { var address = new Address { AddressLine1 = request.AddressLine1, AddressLine2 = request.AddressLine2, ZipCode = request.ZipCode, City = request.City }; // Save address to DB await _dataContext.Addresses.AddAsync(address); var addressCreated = await _dataContext.SaveChangesAsync(); if (addressCreated < 1) { // TODO Exeption if address is not properly saved. return(null); } var studio = new Studio { StudioGuid = Guid.NewGuid(), Name = request.Name, Address = address }; return(studio); }
public async Task <IActionResult> Create([FromBody] CreateStudioRequest request) { var studio = await _studioService.CreateStudioFromRequest(request); var success = await _studioService.AddStudioAsync(studio); if (!success) { return(NotFound()); } var baseUrl = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host.ToUriComponent()}"; var locationUri = baseUrl + "/" + ApiRoutes.Movies.Get.Replace("{Id}", studio.StudioGuid.ToString()); var response = new StudioResponse { StudioId = studio.StudioGuid, Name = studio.Name }; return(Created(locationUri, response)); }