예제 #1
0
        public async Task <ActionResult <AccountFacilityDTO> > PostAccountFacility(AccountFacilityDTO accountFacilityDTO)
        {
            var accountID = await GetAccountID();

            var accountFacility = _mapper.Map <AccountFacility>(accountFacilityDTO);

            accountFacility.AccountId = accountID;

            _context.AccountFacilities.Add(accountFacility);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException) when(AccountFacilityExists(accountID, accountFacility.FacilityId, accountFacility.CopyNumber))
            {
                return(Conflict());
            }

            return(CreatedAtAction(
                       nameof(GetAccountFacility),
                       new { accountID = accountFacility.AccountId, facilityID = accountFacility.FacilityId, copyNumber = accountFacility.CopyNumber },
                       _mapper.Map <AccountFacilityDTO>(accountFacility)));
        }
예제 #2
0
        public async Task <IActionResult> PutAccountFacility(int facilityID, int copyNumber, AccountFacilityDTO accountFacilityDTO)
        {
            var accountID = await GetAccountID();

            var accountFacility = await _context.AccountFacilities.FindAsync(accountID, facilityID, copyNumber);

            accountFacility.CurrentLevel = accountFacilityDTO.CurrentLevel;
            accountFacility.WantedLevel  = accountFacilityDTO.WantedLevel;

            _context.Entry(accountFacility).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException) when(!AccountFacilityExists(accountID, facilityID, copyNumber))
            {
                return(NotFound());
            }

            return(NoContent());
        }