Exemple #1
0
        public ResultDto Delete <T>(object predicate, int?commandTimeout = null, bool isPhysics = false) where T : class
        {
            var resultDto = new ResultDto();
            var isFrom    = typeof(IDeletionAuditedEntity).IsAssignableFrom(typeof(T));

            if (isPhysics || !isFrom)
            {
                resultDto.Result = ConnExecute(conn => conn.Delete <T>(predicate, null, commandTimeout));
                return(resultDto);
            }

            var kardSession       = KardIoc.GetService <IKardSession>();
            var logicDeleteEntity = ConnExecute(conn => conn.FirstOrDefault <T>(predicate, null, commandTimeout)) as IDeletionAuditedEntity;

            logicDeleteEntity.IsDeleted     = true;
            logicDeleteEntity.DeleterUserId = kardSession.UserId;
            logicDeleteEntity.DeletionTime  = DateTime.Now;


            resultDto.Result = ConnExecute(conn => conn.Update(logicDeleteEntity as T, null, commandTimeout));
            return(resultDto);

            //var resultDto = new ResultDto();
            //resultDto.Result = ConnExecute(conn => conn.Delete<T>(entity, null, commandTimeout));
            //return resultDto;
        }
Exemple #2
0
        public ResultDto Delete <T>(T entity, int?commandTimeout = null) where T : class
        {
            var resultDto         = new ResultDto();
            var logicDeleteEntity = entity as IDeletionAuditedEntity;

            if (logicDeleteEntity == null)
            {
                resultDto.Result = ConnExecute(conn => conn.Delete <T>(entity, null, commandTimeout));
                return(resultDto);
            }

            var kardSession = KardIoc.GetService <IKardSession>();

            logicDeleteEntity               = ConnExecute(conn => conn.FirstOrDefault <IDeletionAuditedEntity>(entity, null, commandTimeout));
            logicDeleteEntity.IsDeleted     = true;
            logicDeleteEntity.DeleterUserId = kardSession.UserId;
            logicDeleteEntity.DeletionTime  = DateTime.Now;


            resultDto.Result = ConnExecute(conn => conn.Update(logicDeleteEntity, null, commandTimeout));
            return(resultDto);

            //var resultDto = new ResultDto();
            //resultDto.Result = ConnExecute(conn => conn.Delete<T>(entity, null, commandTimeout));
            //return resultDto;
        }