Пример #1
0
        ///// <summary>
        ///// 逻辑删除企业信息
        ///// </summary>
        ///// <param name="enterinfo"></param>
        ///// <returns></returns>
        //public async Task<OperationResult> LogicDeleteEnterprises(params EnterpriseInfo[] enterinfos)
        //{
        //    enterinfos.CheckNotNull("enterinfos");
        //    int count = 0;
        //    try
        //    {
        //        EnterpriseRepository.UnitOfWork.BeginTransaction();
        //        count = await EnterpriseRepository.RecycleAsync(enterinfos);
        //        EnterpriseRepository.UnitOfWork.Commit();
        //    }
        //    catch (DataException dataException)
        //    {
        //        return new OperationResult(OperationResultType.Error, dataException.Message);
        //    }
        //    catch (OSharpException osharpException)
        //    {
        //        return new OperationResult(OperationResultType.Error, osharpException.Message);
        //    }

        //    List<string> names = new List<string>();
        //    foreach (var data in enterinfos)
        //    {
        //        names.Add(data.EnterpriseName);
        //    }
        //    return count > 0
        //            ? new OperationResult(OperationResultType.Success,
        //                names.Count > 0
        //                    ? "信息“{0}”逻辑删除成功".FormatWith(names.ExpandAndToString())
        //                    : "{0}个信息逻辑删除成功".FormatWith(count))
        //            : new OperationResult(OperationResultType.NoChanged);
        //}

        /// <summary>
        /// 物理删除企业信息
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        public async Task<OperationResult> DeleteEnterprises(params Guid[] ids)
        {
            ids.CheckNotNull("ids");
            foreach (var id in ids)
            {
                int count = EntSiteInfoRepository.Entities.Where(m => m.Enterprise.Id == id).Count();
                if (count > 0)
                {
                    return new OperationResult(OperationResultType.Error, "企业数据关联厂区信息,不能被删除。");
                }
            }
            EnterpriseRepository.UnitOfWork.BeginTransaction();
            var result = await EnterpriseRepository.DeleteAsync(ids);
            EnterpriseRepository.UnitOfWork.Commit();
            return result;
        }