Ejemplo n.º 1
0
 /// <summary>
 /// 修改流程
 /// </summary>
 /// <param name="workflow"></param>
 public void Update(Repository.Domain.WorkFlow workflow)
 {
     UnitWork.Update <Repository.Domain.WorkFlow>(w => w.Id == workflow.Id, f => new Repository.Domain.WorkFlow
     {
         Name     = workflow.Name,
         Identity = workflow.Identity,
         Label    = workflow.Name,
         IsAble   = workflow.IsAble,
         IsDel    = workflow.IsDel,
         WorkOrderManagementId = workflow.WorkOrderManagementId,
         Remark = workflow.Remark,
         Sort   = workflow.Sort,
         SqlId  = workflow.SqlId
     });
     UnitWork.Save();
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 执行 sql 返回影响行数
        /// </summary>
        /// <param name="sql">sql语句</param>
        /// <param name="sqlp">参数列表</param>
        ///  <param name="DU">内存事务对象 默认为空  内存事务的时候 需要传入参数</param>
        /// <returns>影响行数</returns>
        public virtual int ExecuteSqlCommand(string sql, List <SqlParameter> sqlp, UnitWork DU = null)
        {
            IRepository <T> objRepository = null;

            if (DU != null)
            {
                objRepository = DU.Get <T>();
            }
            else
            {
                objRepository = DalContext.Repository <T>();
            }


            return(objRepository.ExecuteSqlCommand(sql, sqlp));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 載入列表
        /// </summary>
        public async Task <TableData> Load(QueryCategoryTypeListReq request)
        {
            var result = new TableData();
            var objs   = UnitWork.Find <CategoryType>(null);

            if (!string.IsNullOrEmpty(request.key))
            {
                objs = objs.Where(u => u.Id.Contains(request.key) || u.Name.Contains(request.key));
            }

            result.data = objs.OrderBy(u => u.Name)
                          .Skip((request.page - 1) * request.limit)
                          .Take(request.limit);
            result.count = objs.Count();
            return(result);
        }
Ejemplo n.º 4
0
        public void Update(RoleView obj)
        {
            if (string.IsNullOrEmpty(obj.OrganizationIds))
            {
                throw new Exception("请为角色分配机构");
            }
            Role role = obj;

            UnitWork.Update <User>(u => u.Id == obj.Id, u => new User
            {
                Name   = role.Name,
                Status = role.Status
            });

            UpdateRele(obj);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 加载列表
        /// </summary>
        /// <returns></returns>
        public List <ButtonView> Load()
        {
            //var result = from d in UnitWork.Find<Button>(null) select d;
            var listButton = UnitWork.SqlQuery <Button>(
                "select Id, Name,Label,Title, Code, Icon, Explain, CreateTime, UpdateTime, Sort From Buttons", new object[] { }).ToList();

            var listButtonView = new List <ButtonView>();

            foreach (var b in listButton)
            {
                ButtonView bv = b;
                bv.Label = b.Name;
                listButtonView.Add(bv);
            }
            return(listButtonView);
        }
Ejemplo n.º 6
0
        public void Update(RoleView obj)
        {
            if (obj.OrganizationIds == null)
            {
                throw new Exception("请为角色分配机构");
            }
            Sys_Role role = obj;

            UnitWork.Update <Sys_Role>(u => u.Id == obj.Id, u => new Sys_Role
            {
                Name   = role.Name,
                Status = role.Status
            });

            UpdateRele(obj);
        }
Ejemplo n.º 7
0
        public void Update(AddOrUpdateCategoryReq obj)
        {
            var user = _auth.GetCurrentUser().User;

            UnitWork.Update <Category>(u => u.Id == obj.Id, u => new Category
            {
                Enable         = obj.Enable,
                DtValue        = obj.DtValue,
                DtCode         = obj.DtCode,
                TypeId         = obj.TypeId,
                UpdateTime     = DateTime.Now,
                UpdateUserId   = user.Id,
                UpdateUserName = user.Name
                                 //todo:要修改的字段赋值
            });
        }
Ejemplo n.º 8
0
 public void SetProjectWorkflow(QueryProjectWorkflow projectWorkFlows)
 {
     UnitWork.Delete <ProjectWorkflow>(d => projectWorkFlows.ProjectWorkflows.Any(pw => pw.ProjectId.Contains(d.ProjectId)));
     foreach (var pw in projectWorkFlows.ProjectWorkflows)
     {
         if (!string.IsNullOrEmpty(pw.WorkflowId))
         {
             UnitWork.Add(new ProjectWorkflow()
             {
                 ProjectId  = pw.ProjectId,
                 WorkflowId = pw.WorkflowId
             });
         }
     }
     UnitWork.Save();
 }
Ejemplo n.º 9
0
        /// <summary>
        /// 加载列表
        /// </summary>
        public TableData Load(QueryFormListReq request)
        {
            var result = new TableData();
            var forms  = UnitWork.Find <Form>(null);

            if (!string.IsNullOrEmpty(request.key))
            {
                forms = forms.Where(u => u.Name.Contains(request.key) || u.Id.Contains(request.key));
            }

            result.data = forms.OrderBy(u => u.Name)
                          .Skip((request.page - 1) * request.limit)
                          .Take(request.limit).ToList();
            result.count = forms.Count();
            return(result);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 添加流程
        /// </summary>
        /// <param name="workflow"></param>
        /// <returns></returns>
        public Response <Repository.Domain.WorkFlow> Add(Repository.Domain.WorkFlow workflow)
        {
            var result        = new Response <Repository.Domain.WorkFlow>();
            var checkWorkflow = UnitWork.Find <Repository.Domain.WorkFlow>(w =>
                                                                           w.Name == workflow.Name || w.Identity == workflow.Identity);

            if (!checkWorkflow.Any())
            {
                UnitWork.Add <Repository.Domain.WorkFlow>(workflow);
                UnitWork.Save();
                return(result);
            }
            result.Code    = 500;
            result.Message = "流程名或流程标识重复";
            return(result);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 加载附件列表
        /// </summary>
        public async Task <TableData> Load(QueryFileListReq request)
        {
            var result = new TableData();
            var objs   = UnitWork.Find <UploadFile>(null);

            if (!string.IsNullOrEmpty(request.key))
            {
                objs = objs.Where(u => u.FileName.Contains(request.key) || u.FilePath.Contains(request.key));
            }

            result.data = objs.OrderByDescending(u => u.CreateTime)
                          .Skip((request.page - 1) * request.limit)
                          .Take(request.limit);
            result.count = objs.Count();
            return(result);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 加载当前登录用户可访问的一个部门及子部门全部用户
        /// </summary>
        public TableData Load(QueryUserListReq request)
        {
            var loginUser = _auth.GetCurrentUser();

            string cascadeId = ".0.";

            if (!string.IsNullOrEmpty(request.orgId))
            {
                var org = loginUser.Orgs.SingleOrDefault(u => u.Id == request.orgId);
                cascadeId = org.CascadeId;
            }

            IQueryable <User> query = UnitWork.Find <User>(null);

            if (!string.IsNullOrEmpty(request.key))
            {
                query = UnitWork.Find <User>(u => u.Name.Contains(request.key) || u.Account.Contains(request.key));
            }

            var ids     = loginUser.Orgs.Where(u => u.CascadeId.Contains(cascadeId)).Select(u => u.Id).ToArray();
            var userIds = _revelanceApp.Get(Define.USERORG, false, ids);

            var users = query.Where(u => userIds.Contains(u.Id))
                        .OrderBy(u => u.Name)
                        .Skip((request.page - 1) * request.limit)
                        .Take(request.limit);

            var records = query.Count(u => userIds.Contains(u.Id));


            var userviews = new List <UserView>();

            foreach (var user in users.ToList())
            {
                UserView uv   = user;
                var      orgs = _orgManagerApp.LoadForUser(user.Id);
                uv.Organizations   = string.Join(",", orgs.Select(u => u.Name).ToList());
                uv.OrganizationIds = string.Join(",", orgs.Select(u => u.Id).ToList());
                userviews.Add(uv);
            }

            return(new TableData
            {
                count = records,
                data = userviews,
            });
        }
Ejemplo n.º 13
0
        internal void NovaProposta(Usuario user)
        {
            //verificar se existe local de estoque antes de vender
            if (ParametroDaoManager.GetCentroCustoVenda() == null)
            {
                Console.WriteLine("Centro de custo nao encontrado");
                XMessageIts.Mensagem("Para iniciar uma venda é necessário o cadastrar um centro de custo!");
            }

            if (!ParametroDaoManager.CheckLocalEstoque())
            {
                var op = XMessageIts.Confirmacao("Não existe um local de estoque cadastrado.\n\n" +
                                                 "Desejar cadastrar local de estoque ?",
                                                 "Atenção");

                if (op == System.Windows.Forms.DialogResult.Yes)
                {
                    new XFrmLocalEstoqueView().ShowDialog();
                }
            }
            else
            {
                XFrmVenda xFrmVenda;
                //venda com login
                if (ParametroManager.GetStatusParamByCodigo(TypeParametro.exigir_login_venda.ToString()))
                {
                    var login = new UnitWork();

                    var userLogin = login.Login();

                    if (userLogin != null)
                    {
                        xFrmVenda = new XFrmVenda(userLogin);
                        //invoke o form em dialogo
                        xFrmVenda.ShowDialog();
                    }
                }
                //sem login na venda
                else
                {
                    xFrmVenda = new XFrmVenda(user);

                    //invoke o form em dialogo
                    xFrmVenda.ShowDialog();
                }
            }
        }
Ejemplo n.º 14
0
        /// <summary>
        /// 根据菜单ID 加载列表
        /// </summary>
        /// <param name="menuIds"></param>
        /// <returns></returns>
        public List <ButtonView> LoadByMenuIds(string menuIds)
        {
            //var result = from d in UnitWork.Find<Button>(null) select d;
            var listButton = UnitWork.SqlQuery <Button>(
                "select b.* From Menus m left join MenuButton mb on m.id = mb.MenuId left join Buttons b on mb.ButtonId  = b.Id where b.id is not null and m.id in ('"
                + menuIds.Trim(',').Replace(",", "','") + "') order by b.Sort desc,id desc", new object[] { }).ToList();

            var listButtonView = new List <ButtonView>();

            foreach (var b in listButton)
            {
                ButtonView bv = b;
                bv.Label = b.Name;
                listButtonView.Add(bv);
            }
            return(listButtonView);
        }
Ejemplo n.º 15
0
        public ActionResult Working(Nullable <int> id)
        {
            if (id == null)
            {
                return(RedirectToAction("Index"));
            }
            if (TempData["status"] != null)
            {
                ViewBag.status = TempData["status"];
                ViewBag.msg    = TempData["msg"];
            }
            UserViewModel user = Session["User"] as UserViewModel;

            if (user.assistance != null)
            {
                IActivityDAL dalAct = new ActivityImpl();
                ActivitieAssistanceViewModel aa2 = ActivitieAssistanceViewModel.Converter(dalAct.GetCurrentActivity(user.assistance.idAssistance));
                ActivitieAssistanceViewModel aa  = ActivitieAssistanceViewModel.Converter(dalAct.GetActivity_Assistance(id.GetValueOrDefault()));
                if (aa2 == null || aa2.idActivityAssistance != id)
                {
                    return(RedirectToAction("Index"));
                }
                ActivityViewModel activity;
                using (var u = new UnitWork <Activity>()) {
                    activity = ActivityViewModel.Converter(u.genericDAL.Get(aa.idActivity));
                }
                if (activity == null)
                {
                    ViewBag.status = false;
                    ViewBag.msg    = "Error al encontrar la actividad actual";
                }
                else
                {
                    ViewBag.status = true;
                    ViewBag.msg    = "Actividad en curso";
                }
                aa.activity = activity;
                return(View(aa));
            }
            else
            {
                TempData["status"] = false;
                TempData["msg"]    = "Error al obtener la actividad";
            }
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 16
0
 /// <summary>
 /// 通过部门获取角色
 /// </summary>
 /// <param name="departmentIds"></param>
 /// <returns></returns>
 public List <Role> GetDepartmentRole(string departmentIds)
 {
     if (string.IsNullOrEmpty(departmentIds))
     {
         return(new List <Role>());
     }
     //else if (departmentIds.Trim(',').Contains(","))
     //{
     //    return new List<Role>();
     //}
     else
     {
         return(UnitWork.SqlQuery <Role>("select r.id,r.name as Label,name,createTime,updateTime,Sort,explain,IsAble,IsDel,r.CascadeId,r.ParentId,r.ParentName " +
                                         "from Roles r left join DepartmentRole dr on r.Id = dr.RoleId " +
                                         "where r.isAble=0 and r.isDel=0 and dr.DepartmentId in ('" + departmentIds.Trim(',').Replace(",", "','") + "')", new object[] { }).ToList());
     }
 }
Ejemplo n.º 17
0
 /// <summary>
 /// 通过角色设置部门
 /// </summary>
 /// <param name="roles"></param>
 public void SetRoleDepartment(QueryDepartmentRole roles)
 {
     UnitWork.Delete <DepartmentRole>(d =>
                                      roles.DepartmentRoles.Where(w => w.RoleId == d.RoleId).Count() > 0);
     foreach (var r in roles.DepartmentRoles)
     {
         if (!string.IsNullOrEmpty(r.DepartmentId))
         {
             UnitWork.Add(new DepartmentRole()
             {
                 DepartmentId = r.DepartmentId,
                 RoleId       = r.RoleId
             });
         }
     }
     UnitWork.Save();
 }
Ejemplo n.º 18
0
 /// <summary>
 /// 通过部门设置角色
 /// </summary>
 /// <param name="departments"></param>
 public void SetDepartRole(QueryDepartmentRole departments)
 {
     UnitWork.Delete <DepartmentRole>(d =>
                                      departments.DepartmentRoles.Where(w => w.DepartmentId == d.DepartmentId).Count() > 0);
     foreach (var dept in departments.DepartmentRoles)
     {
         if (!string.IsNullOrEmpty(dept.RoleId))
         {
             UnitWork.Add(new DepartmentRole()
             {
                 DepartmentId = dept.DepartmentId,
                 RoleId       = dept.RoleId
             });
         }
     }
     UnitWork.Save();
 }
Ejemplo n.º 19
0
        public async Task <ResponseApi> QueryMenu()
        {
            List <MenuInfo> menuInfos = UnitWork.Find <MenuInfo>(null).Select(it => new MenuInfo()
            {
                Id = it.Id, MenuName = it.MenuName, OrderNo = it.OrderNo, Icon = new IconInfo()
                {
                    Style = it.Icon.Style
                }
            }).ToList();

            menuInfos = DataParseIfWhileReference(menuInfos);
            List <MenuViewModel> viewModels = ObjectMapper.Map <List <MenuViewModel> >(menuInfos);
            ResponseApi          response   = ResponseApi.Create(GetLanguage(), Code.QuerySuccess);

            response.Data = viewModels;
            return(await Task.FromResult(response));
        }
Ejemplo n.º 20
0
        /// <summary>
        /// 分配数据字段权限
        /// </summary>
        /// <param name="request"></param>
        public void AssignData(AssignDataReq request)
        {
            var relevances = new List <Relevance> ();

            foreach (var requestProperty in request.Properties)
            {
                relevances.Add(new Relevance {
                    Key         = Define.ROLEDATAPROPERTY,
                    FirstId     = request.RoleId,
                    SecondId    = request.ModuleCode,
                    ThirdId     = requestProperty,
                    OperateTime = DateTime.Now
                });
            }
            UnitWork.BatchAdd(relevances.ToArray());
            UnitWork.Save();
        }
Ejemplo n.º 21
0
        /// <summary>
        /// 加载用户所属的所有机构
        /// </summary>
        public IEnumerable <Org> LoadByUser(string userId)
        {
            /* 等价 SQL
             * SELECT  o.*
             * FROM    [OpenAuthDB].[dbo].[Relevance] AS r
             *         JOIN dbo.Org AS o ON r.SecondId = o.Id
             * WHERE   r.FirstId = '6ba79766-faa0-4259-8139-a4a6d35784e0'
             *         AND r.[Key] = 'UserOrg';
             *
             */
            var result = from userorg in UnitWork.Find <Relevance>(null)
                         join org in UnitWork.Find <Org>(null) on userorg.SecondId equals org.Id
                         where userorg.FirstId == userId && userorg.Key == Define.USERORG
                         select org;

            return(result);
        }
Ejemplo n.º 22
0
        /// <summary>
        /// 加载当前登录用户可访问的一个部门及子部门全部角色
        /// </summary>
        public TableData Load(PageReq pageRequest, int?orgId)
        {
            var loginUser = _auth.GetCurrentUser();

            string cascadeId = ".0.";

            if (orgId != null)
            {
                var org = loginUser.Orgs.SingleOrDefault(u => u.Id == orgId);
                cascadeId = org.CascadeId;
            }

            var ids     = loginUser.Orgs.Where(u => u.CascadeId.Contains(cascadeId)).Select(u => u.Id.Value).ToArray();
            var roleIds = _revelanceApp.Get(Define.ROLEORG, false, ids);

            //SQL2008不支持分页的语法
            //var data = UnitWork.Find<Role>(u => roleIds.Contains(u.Id)).ToList();
            //var roles = data
            //    .OrderBy(u => u.Name)
            //    .Skip((pageRequest.page - 1) * pageRequest.limit)
            //    .Take(pageRequest.limit);

            var roles = UnitWork.Find <SysRole>(u => roleIds.Contains(u.Id.Value))
                        .OrderBy(u => u.Name)
                        .Skip((pageRequest.page - 1) * pageRequest.limit)
                        .Take(pageRequest.limit);

            var records = Repository.GetCount(u => roleIds.Contains(u.Id.Value));

            var roleViews = new List <SysRoleView>();

            foreach (var role in roles.ToList())
            {
                SysRoleView uv   = role;
                var         orgs = LoadByRole(role.Id.Value);
                uv.Organizations   = string.Join(",", orgs.Select(u => u.Name).ToList());
                uv.OrganizationIds = string.Join(",", orgs.Select(u => u.Id).ToList());
                roleViews.Add(uv);
            }

            return(new TableData
            {
                count = records,
                data = roleViews,
            });
        }
Ejemplo n.º 23
0
 public void Delete(string projectIds)
 {
     //var listProj = Repository.Find(w => projectIds.Contains(w.Id) && !w.ParentId.Contains(",")).ToList();
     //foreach (var ld in listProj)
     //{
     //    foreach (var casc in ld.CascadeId.Split(','))
     //    {
     //        UnitWork.Update<Project>(d => d.CascadeId.Contains(casc), d => new Project()
     //        {
     //            IsDel = true
     //        });
     //    }
     //}
     //UnitWork.Save();
     UnitWork.Delete <Project>(b => projectIds.Contains(b.Id));
     UnitWork.Save();
 }
Ejemplo n.º 24
0
 public void Update(IEnumerable <TakeCheckOut> dt)
 {
     if (dt.Count() > 0)
     {
         using (var tran = new TransactionScope())
         {
             foreach (var item in dt)
             {
                 UnitWork.RegisterDirty <TakeCheck>(item.MapTo <TakeCheck>(), () => new TakeCheck {
                     ExportCount = item.ExportCount + 1
                 });
             }
             UnitWork.Commit();
             tran.Complete();
         }
     }
 }
Ejemplo n.º 25
0
        /// <summary>
        /// 删除选项及子类
        /// </summary>
        /// <param name="ssIds"></param>
        /// <returns></returns>
        public void Delete(string ssIds)
        {
            //var listSelectOptions = Repository.Find(w => ssIds.Contains(w.Id) && !w.ParentId.Contains(",")).ToList();
            var listSelectOptions = Repository.Find(w => ssIds.Contains(w.Id)).ToList();

            foreach (var ld in listSelectOptions)
            {
                foreach (var casc in ld.CascadeId.Split(','))
                {
                    UnitWork.Update <SelectOption>(d => d.CascadeId.Contains(casc), d => new SelectOption()
                    {
                        IsDel = true
                    });
                }
            }
            UnitWork.Save();
        }
Ejemplo n.º 26
0
        /// <summary>
        /// 删除菜单 及 子集
        /// </summary>
        /// <param name="ids"></param>
        public void Delete(string ids)
        {
            var listMenuButtons = UnitWork.Find <MenuButton>(mb => ids.Contains(mb.MenuId)).ToList();

            //删除对应
            foreach (var menuButton in listMenuButtons)
            {
                UnitWork.Delete(menuButton);
            }

            //删除菜单 及 子集
            foreach (var menu in UnitWork.Find <Menu>(mb => ids.Contains(mb.Id)).ToList())
            {
                UnitWork.Delete <Menu>(m => m.CascadeId.Contains(menu.CascadeId));
            }
            UnitWork.Save();
        }
Ejemplo n.º 27
0
        /// <summary>
        /// 加载特定用户的角色
        /// TODO:这里会加载用户及用户角色的所有角色,“为用户分配角色”功能会给人一种混乱的感觉,但可以接受
        /// </summary>
        /// <param name="userId">The user unique identifier.</param>
        public List <Org> LoadForUser(string userId)
        {
            //用户角色
            var userRoleIds =
                UnitWork.Find <Relevance>(u => u.FirstId == userId && u.Key == Define.USERROLE).Select(u => u.SecondId).ToList();

            //用户角色与自己分配到的角色ID
            var moduleIds =
                UnitWork.Find <Relevance>(
                    u => u.FirstId == userId && u.Key == Define.USERORG).Select(u => u.SecondId).ToList();

            if (!moduleIds.Any())
            {
                return(new List <Org>());
            }
            return(UnitWork.Find <Org>(u => moduleIds.Contains(u.Id)).ToList());
        }
Ejemplo n.º 28
0
        public bool InsertTiXian(Order order, Collect collect, string storename, decimal balance, int aid, string accountid, decimal shouxufei, out string msg)
        {
            decimal per    = 0;
            decimal tips   = 0;
            string  remake = string.Empty;

            if (order.PayType == 4)
            {
                per = collect.ALIPer;
            }
            else if (order.PayType == 5)
            {
                per = collect.WXPer;
            }


            if (per > 0)
            {
                remake = "按商户手续费收取";
            }
            else
            {
                per    = shouxufei;
                remake = "按平台手续费收取";
            }

            tips = Math.Round(order.Total_amount * per, 2, MidpointRounding.AwayFromZero);

            using (var tran = new TransactionScope())
            {
                UnitWork.RegisterNew <TakeList>(new TakeList()
                {
                    StoreId = order.StoreNo, StoreName = storename, Balance = balance, TakeOut = order.Total_amount, TakeType = order.PayType, CreateTime = DateTime.Now, Account = collect.Account, AccountId = accountid, Out_trade_no = order.Out_trade_no
                });
                UnitWork.RegisterNew <Order>(order);
                UnitWork.Commit();
                tran.Complete();
            }
            TipsFlow tf = new TipsFlow()
            {
                StoreId = order.StoreNo, StoreName = storename, Balance = balance, TakeOut = order.Total_amount, TakeType = order.PayType, CreateTime = DateTime.Now, Account = collect.Account, Tips = tips, Per = per, Remark = remake
            };

            return(TiXian(order, collect, tf, storename, balance, aid, tf.Id, accountid, tips, out msg));
        }
Ejemplo n.º 29
0
 /// <summary>
 /// 為部門分配使用者,需要統一提交,會刪除以前該部門的所有使用者
 /// </summary>
 /// <param name="request"></param>
 public void AssignOrgUsers(AssignOrgUsers request)
 {
     UnitWork.ExecuteWithTransaction(() =>
     {
         //刪除以前的所有使用者
         UnitWork.Delete<Relevance>(u => u.SecondId == request.OrgId && u.Key == Define.USERORG);
         //批量分配使用者角色
         UnitWork.BatchAdd((from firstId in request.UserIds
             select new Relevance
             {
                 Key = Define.USERORG,
                 FirstId = firstId,
                 SecondId = request.OrgId,
                 OperateTime = DateTime.Now
             }).ToArray());
         UnitWork.Save();
     });
 }
Ejemplo n.º 30
0
        public static List <T> ManyToMany <TEntity, T>(UnitWork uw, IEntityKey vm, Expression <Func <TEntity, object> > include, List <long> ids, ref IMDResponse res)
            where TEntity : class, IBaseEntity
            where T : class, IBaseEntity
        {
            var x = new List <T>();
            Func <TEntity, object> func = include.Compile();
            var ent = uw.QueryEntity <TEntity>().GetByID(vm.Id, false, include);

            if (ent != null && func(ent) != null)
            {
                (func(ent) as ICollection <T>).Clear(); uw.Command <TEntity>().Update(ent, ref res);
            }
            if (ids != null)
            {
                x.AddRange(uw.QueryEntity <T>().GetByIDs(ids.ToArray()));
            }
            return(x);
        }