public async Task <Result <int> > SaveAsync(IEnumerable <PostingDetailItem> entities) { var items = entities.Where(x => x.EntityState == ItemState.Added).EnumerableTo <PostingDetails>(); var addItem = await _commandRepository.AddBulkAsync(items).TaskAsyncResponse <int, int>(); return(HandleSavingResponse(entities, addItem)); }
public async Task <Result <int> > Save(IEnumerable <CodeMapperDetailItem> entity) { var itemToUpdate = entity.Where(x => x.EntityState == ItemState.Modified).Select(UpdateDetail); var itemToDelete = entity.Where(x => x.EntityState == ItemState.Delete).Select(DeleteDetail); var items = entity.Where(x => x.EntityState == ItemState.Added).EnumerableTo <CodeMapperDetails>(); var addItem = await _commandRepository.AddBulkAsync(items).TaskAsyncResponse <int, int>(); var result = itemToUpdate.Count(x => x.Success) + itemToDelete.Count(x => x.Success); if (addItem.Success) { result += addItem.Value; return(Result <int> .Ok(result)); } var errMsg = addItem.Error + string.Join("\n -", itemToUpdate.Select(err => err.Error) .Union(itemToDelete.Select(err => err.Error))); return(Result <int> .Fail <int>(errMsg)); }