コード例 #1
0
        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();
        }
コード例 #2
0
        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));
        }
コード例 #3
0
 public async Task Delete(PrimaryItem entity)
 {
     _unitOfWork.PrimaryItems.Remove(entity);
     await _unitOfWork.CommitAsync();
 }
コード例 #4
0
 public Project(Application App, PrimaryItem Item)
     : base(App, Item)
 {
 }