Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
        }