public async Task <CreatedItemAcknowledgment> AddAsync(RestItemData itemData) { if (!_context.AuthorizationChecker.CanAddItem()) { throw new NotAuthorizedForItemException(AuthorizableVerb.Add); } _context.Transaction.StartTransaction(); await _context.Repository.InitializeAsync(); TItem newItem = _context.Repository.CreateAndAttachItem(); var setter = new QueryableFieldSetter <TItem>(_context); await setter.SetMappedValuesAsync(new PostedNewItem <TItem>(newItem), itemData); await _context.Transaction.SaveChangesAsync(); object identifier = _context.Identifiers.GetInfo(null).GetValue(newItem); return(new CreatedItemAcknowledgment(identifier)); }
public async Task <Acknowledgment> EditAsync(RestItemData itemData) { if (!_context.AuthorizationChecker.CanEditItem(_item)) { throw new NotAuthorizedForItemException(AuthorizableVerb.Edit); } var setter = new QueryableFieldSetter <TItem>(_context); await setter.SetMappedValuesAsync(_item, itemData); await _item.LoadAsync(); _context.Repository.MarkUpdated(_item.LoadedItem); await _context.Transaction.SaveChangesAsync(); if (_item.WasCreated) { return(new CreatedItemAcknowledgment(_item.Identifier)); } return(new Acknowledgment()); }
public QueryableFieldSetterTests() { Setter = new QueryableFieldSetter <Artist>(new CodedArtistEntityContext(null)); }