public async Task <IActionResult> Post([FromBody] Product product, [FromHeader(Name = "x-correlationToken")]
                                               string correlationToken)
        {
            var isSuccessful = true;
            var errorMessage = string.Empty;

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Guard.ForNullOrEmpty(correlationToken, "correlationToken");
            Guard.ForNullObject(product, "Product parameter null for catalog post");

            try
            {
                await _catalogBusinessServices.Add(correlationToken, product);
            }
            catch (Exception ex)
            {
                errorMessage = $"Catalog: Exception on Post operation:{ex.Message} for Request {correlationToken}";
                _logger.LogError(errorMessage);
                isSuccessful = false;
            }

            if (!isSuccessful)
            {
                return(BadRequest(errorMessage));
            }

            //return CreatedAtRoute("PostMusicRoute", product);
            return(StatusCode(Convert.ToInt32(HttpStatusCode.Created)));
        }
示例#2
0
        public async Task <IActionResult> Post([FromBody] MusicAddDto musicDto, string correlationToken)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Guard.ForNullOrEmpty(correlationToken, "correlationToken");
            Guard.ForNullObject(musicDto, "musicDto class is missing");

            var newAlbum = Mapper.MapToMusicDtoPost(musicDto);

            await _catalogBusinessServices.Add(correlationToken, newAlbum);

            var album = Mapper.MapToMusicDto(newAlbum);

            return(CreatedAtRoute("PostMusicRoute", album));
        }