public override int SaveChanges()
        {
            var modifiedEntites = ChangeTracker.Entries().Where(x => x.State == EntityState.Modified || x.State == EntityState.Added).ToList();

            string   computerName = Environment.MachineName;
            string   ipAddress    = Ipfinder.GetIpAddress(); /*"127.0.0.1";*/
            DateTime date         = DateTime.Now;

            foreach (var item in modifiedEntites)
            {
                KernelEntity entity = item.Entity as KernelEntity;
                if (item != null)
                {
                    switch (item.State)
                    {
                    case EntityState.Added:
                        entity.CreatedComputerName = computerName;
                        entity.CreatedIP           = ipAddress;
                        entity.CreatedDate         = date;
                        break;

                    case EntityState.Modified:
                        entity.ModifiedComputerName = computerName;
                        entity.ModifiedIP           = ipAddress;
                        entity.ModifiedDate         = date;
                        break;

                    default:
                        break;
                    }
                }
            }

            return(base.SaveChanges());
        }
Пример #2
0
        public void SaveChange()
        {
            var modifiedentities = _db.ChangeTracker.Entries().Where(x => x.State == Microsoft.EntityFrameworkCore.EntityState.Modified || x.State == Microsoft.EntityFrameworkCore.EntityState.Added).ToList();

            string   identity     = WindowsIdentity.GetCurrent().Name;
            string   computerName = Environment.MachineName;
            string   ipAdress     = "127.0.0.1";
            DateTime date         = DateTime.Now;


            foreach (var item in modifiedentities)
            {
                KernelEntity entity = item.Entity as KernelEntity;

                if (item != null)
                {
                    switch (item.State)
                    {
                    case Microsoft.EntityFrameworkCore.EntityState.Modified:
                        entity.ModifiedComputerName = computerName;
                        entity.ModifiedBy           = ipAdress;
                        entity.CreatedBy            = identity;
                        entity.ModifiedDate         = date;
                        entity.Status = Kernel.Enums.Status.Modified;
                        break;

                    case Microsoft.EntityFrameworkCore.EntityState.Added:
                        entity.CreatedComputerName = computerName;
                        entity.CreatedIp           = ipAdress;
                        entity.CreatedBy           = computerName;
                        entity.Status = Kernel.Enums.Status.Active;
                        break;

                    default:
                        break;
                    }
                }
            }

            try
            {
                using (var transaction = _db.Database.BeginTransaction())
                {
                    try
                    {
                        _db.SaveChanges();
                        transaction.Commit();
                    }
                    catch (Exception)
                    {
                        transaction.Rollback();
                        throw;
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #3
0
        public void SaveChange()
        {
            var      modifiedEntities = _db.ChangeTracker.Entries().Where(x => x.State == EntityState.Modified || x.State == EntityState.Added).ToList();//entitydeki değişiklikleri kontrol edicek.
            string   identity         = WindowsIdentity.GetCurrent().Name;
            string   computerName     = Environment.MachineName;
            string   ipAdress         = "127.0.0.1";
            DateTime date             = DateTime.Now; //varsayılan değer olarak now'u atıyoruz.

            foreach (var item in modifiedEntities)    //oluşturduğum enttylerin içinde dolaşıyoruz.
            {
                KernelEntity entity = item.Entity as KernelEntity;

                if (item != null)
                {
                    switch (item.State)//bütün case'leri kendisi otomatik olarak yapıcak.
                    {
                    case EntityState.Modified:
                        entity.ModifiedComputerName = computerName;
                        entity.ModifiedIp           = ipAdress;
                        entity.ModifiedBy           = identity;
                        entity.ModifiedDate         = date;
                        entity.Status = Kernel.Enums.Status.Modified;
                        break;

                    case EntityState.Added:
                        entity.CreatedComputerName = computerName;
                        entity.CreatedIp           = ipAdress;
                        entity.CreatedBy           = identity;
                        entity.CreateDate          = date;
                        entity.Status = Kernel.Enums.Status.Active;
                        break;
                    }
                }
            }
            try
            {
                using (var transaction = _db.Database.BeginTransaction())
                {
                    try
                    {
                        _db.SaveChanges();
                        transaction.Commit();
                    }
                    catch (Exception)
                    {
                        transaction.Rollback();
                        throw;
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }