public async Task Update(PrimaryItem originalItem, PrimaryItem updatedItem) { // Example of valdiating foreign key constraint if (originalItem.SecondaryItemId != updatedItem.SecondaryItemId && await _unitOfWork.SecondaryItems.GetByIdAsync(updatedItem.SecondaryItemId) == null) { throw new ArgumentNotFoundException(nameof(PrimaryItem.SecondaryItemId)); } // Example of validating: Name is unique, we could catch exception too if (await _unitOfWork.PrimaryItems.SingleOrDefaultAsync(x => x.Name.Equals(updatedItem.Name) && x.Id != originalItem.Id) != null) { throw new ArgumentNotUniqueException(nameof(PrimaryItem.Name)); } originalItem.Name = updatedItem.Name; originalItem.SecondaryItemId = updatedItem.SecondaryItemId; await _unitOfWork.CommitAsync(); }
public async Task <PrimaryItem> Create(PrimaryItem newItem) { // Example of validating: Name is unique, we could catch exception too if (await _unitOfWork.PrimaryItems.SingleOrDefaultAsync(x => x.Name.Equals(newItem.Name)) != null) { throw new ArgumentNotUniqueException(nameof(PrimaryItem.Name)); } // Example of valdiating foreign key constraint if (await _unitOfWork.SecondaryItems.GetByIdAsync(newItem.SecondaryItemId) == null) { throw new ArgumentNotFoundException(nameof(PrimaryItem.SecondaryItemId)); } await _unitOfWork.PrimaryItems.AddAsync(newItem); await _unitOfWork.CommitAsync(); return(await GetById(newItem.Id)); }
public async Task Delete(PrimaryItem entity) { _unitOfWork.PrimaryItems.Remove(entity); await _unitOfWork.CommitAsync(); }
public Project(Application App, PrimaryItem Item) : base(App, Item) { }