Пример #1
0
        public virtual async Task <CompletedTransactionResponses> AsyncUpdate(params T[] items)
        {
            CompletedTransactionResponses CurrentResponse = new CompletedTransactionResponses()
            {
                Message         = "",
                TransActionType = TransactionType.Update,
                WasSuccessfull  = false
            };

            using (var context = new WebDocsEntities())
            {
                using (DbContextTransaction transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        DbSet <T> dbSet = context.Set <T>();
                        foreach (T item in items)
                        {
                            dbSet.Add(item);
                            foreach (DbEntityEntry <IEntity> entry in context.ChangeTracker.Entries <IEntity>())
                            {
                                IEntity entity = entry.Entity;
                                entry.State = GetEntityState(entity.EntityState);
                            }
                        }
                        await context.SaveChangesAsync();

                        transaction.Commit();
                        CurrentResponse.WasSuccessfull = true;
                        CurrentResponse.Message        = "Transaction Successfully Completed.";
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        CurrentResponse.Message = "Error occurred. - " + ex.Message;
                    }
                }
            }
            return(CurrentResponse);
        }