Example #1
0
        public IActionResult Create([FromBody] CreateRequest request)
        {
            var city = new City
            {
                Name = request.Name?.Trim(),
            };

            this._dbContext.Set <City>().Add(city);
            try
            {
                this._dbContext.SaveChanges();
            }
            catch (DbUpdateException exception)
            {
                var error = new TdbDbError(exception);
                if (error.IsUniqueViolation())
                {
                    this.ModelState.AddModelError(
                        nameof(CreateRequest.Name),
                        "The city already exists."
                        );
                    return(this.BadRequest(this.ModelState));
                }

                throw;
            }

            return(new ObjectResult(new CreateResponse(city))
            {
                StatusCode = (int)HttpStatusCode.Created,
            });
        }
Example #2
0
        public IActionResult Create([FromBody] CreateRequest request)
        {
            int cityId;

            try
            {
                cityId = JsonConvert.DeserializeObject <int>(request.City);
            }
            catch (JsonReaderException)
            {
                this.ModelState.AddModelError(
                    nameof(CreateRequest.City),
                    "Invalid city id."
                    );
                return(this.BadRequest(this.ModelState));
            }

            var restaurant = new Restaurant
            {
                Name   = request.Name?.Trim(),
                CityId = cityId,
            };

            this._dbContext.Set <Restaurant>().Add(restaurant);
            try
            {
                this._dbContext.SaveChanges();
            }
            catch (DbUpdateException exception)
            {
                var error = new TdbDbError(exception);
                if (error.IsUniqueViolation())
                {
                    this.ModelState.AddModelError(
                        nameof(CreateRequest.Name),
                        "The restaurant already exists."
                        );
                    return(this.BadRequest(this.ModelState));
                }

                throw;
            }

            return(new ObjectResult(new CreateResponse(restaurant))
            {
                StatusCode = (int)HttpStatusCode.Created,
            });
        }