Пример #1
0
        /// <summary>
        /// determines if it contains a value
        /// </summary>
        /// <param name="query">query model</param>
        /// <returns></returns>
        public CheckExistResult Exist(IQuery query)
        {
            var dataPackages        = GetDataPackages(query);
            CheckExistResult result = new CheckExistResult()
            {
                IsExist = dataPackages?.Any(c => c.Operate != WarehouseDataOperate.Remove) ?? false
            };

            if (!result.IsExist)
            {
                var sourceDatas = dataPackages.Where(c => c.LifeSource == DataLifeSource.DataSource);
                if (!sourceDatas.IsNullOrEmpty())
                {
                    QueryFactory.AppendEntityIdentityCondition(sourceDatas.Select(c => c.PersistentData), query, true);
                }
                result.CheckQuery = query;
            }
            return(result);
        }
Пример #2
0
        /// <summary>
        /// compute sum value
        /// </summary>
        /// <typeparam name="VT"></typeparam>
        /// <param name="query"></param>
        /// <returns></returns>
        public ComputeResult <VT> Sum <VT>(IQuery query)
        {
            if (query == null || query.QueryFields.IsNullOrEmpty())
            {
                return(new ComputeResult <VT>()
                {
                    Value = default(VT),
                    ComputeQuery = query
                });
            }
            var     dataPackages    = GetDataPackages(query);
            string  propertyName    = query.QueryFields.ElementAt(0);
            var     nowDataPackages = dataPackages.Where(c => c.Operate != WarehouseDataOperate.Remove);
            dynamic value;

            if (nowDataPackages.IsNullOrEmpty())
            {
                value = default(VT);
            }
            else
            {
                value = nowDataPackages.Sum(c => (dynamic)c.WarehouseData.GetPropertyValue <VT>(propertyName));
            }
            var result = new ComputeResult <VT>()
            {
                Value = value
            };
            var sourceDatas = dataPackages.Where(c => c.LifeSource == DataLifeSource.DataSource);

            if (!sourceDatas.IsNullOrEmpty())
            {
                QueryFactory.AppendEntityIdentityCondition(sourceDatas.Select(c => c.PersistentData), query, true);
            }
            result.ComputeQuery = query;
            return(result);
        }
Пример #3
0
 /// <summary>
 /// delete data
 /// </summary>
 /// <param name="obj">obj</param>
 /// <returns></returns>
 public virtual async Task <ICommand> DeleteAsync(T obj)
 {
     return(await DeleteAsync(QueryFactory.AppendEntityIdentityCondition(obj)).ConfigureAwait(false));
 }
Пример #4
0
 /// <summary>
 /// delete data
 /// </summary>
 /// <param name="obj">obj</param>
 /// <returns></returns>
 public virtual ICommand Delete(T obj)
 {
     return(Delete(QueryFactory.AppendEntityIdentityCondition(obj)));
 }
Пример #5
0
 /// <summary>
 /// edit data
 /// </summary>
 /// <param name="newData">new data</param>
 /// <param name="oldData">old data</param>
 /// <returns></returns>
 public virtual async Task <ICommand> ModifyAsync(T newData, T oldData)
 {
     return(await ModifyAsync(newData, oldData, QueryFactory.AppendEntityIdentityCondition(newData)).ConfigureAwait(false));
 }