예제 #1
0
        public async Task <IActionResult> Update(int id, [FromBody] OfficeItemRequest request)
        {
            if (!ModelState.IsValid)
            {
                BadRequest(ModelState);
            }
            try
            {
                await _officesRepository.Update(id, request);

                return(NoContent());
            }
            catch (InvalidOfficeException)
            {
                return(NotFound());
            }
        }
예제 #2
0
        public async Task <IActionResult> Create([FromBody] OfficeItemRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            try
            {
                var itemId = await _officesRepository.Create(request);

                return(CreatedAtAction(nameof(GetById), new { id = itemId }, itemId));
            }
            catch (DuplicateOfficeException)
            {
                return(StatusCode(StatusCodes.Status409Conflict, new { Message = "An office with those details already exists." }));
            }
        }
예제 #3
0
        public async Task Update(int id, OfficeItemRequest request)
        {
            var item = await _dbContext.Offices.
                       FirstOrDefaultAsync(x => x.Id == id);

            if (item == null)
            {
                throw new InvalidOfficeException();
            }

            item.Country = request.Country;
            item.City    = request.City;
            item.Address = request.Address;
            item.Lat     = request.Lat;
            item.Lng     = request.Lng;

            await _dbContext.SaveChangesAsync();
        }
예제 #4
0
        public async Task <int> Create(OfficeItemRequest request)
        {
            var newItem = new Office
            {
                Country = request.Country,
                City    = request.City,
                Address = request.Address,
                Lat     = request.Lat,
                Lng     = request.Lng,
            };

            if (await OfficeExists(newItem))
            {
                throw new DuplicateOfficeException();
            }

            _dbContext.Offices.Add(newItem);
            await _dbContext.SaveChangesAsync();

            return(newItem.Id);
        }