예제 #1
0
파일: NewKeeper.cs 프로젝트: mgladilov/Cas
        public void BulkDelete <T, TOut>(List <BaseEntityObject> values, int?batchSize = null) where T : BaseEntityObject, new() where TOut : BaseEntity, new()
        {
            if (_casEnvironment.IdentityUser.UserType == UsetType.ReadOnly)
            {
                return;
            }

            if (!typeof(TOut).IsSubclassOf(typeof(BaseEntity)))
            {
                throw new ArgumentException("T", "не является наследником " + typeof(BaseEntity).Name);
            }

            if (!typeof(T).IsSubclassOf(typeof(BaseEntityObject)))
            {
                throw new ArgumentException("TOut", "не является наследником " + typeof(BaseEntityObject).Name);
            }

            var method = GetMethod(typeof(T), "Convert");

            var res = new List <TOut>();

            foreach (var value in values)
            {
                res.Add(InvokeConverter <T, TOut>((T)value, method));
            }

            _apiProvider.BulkDelete(res, batchSize);
        }