Example #1
0
        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));
        }