Beispiel #1
0
        public bool SaveChange(SysMember entity)
        {
            var snapshot = GetById(entity.ID);
            var rlt      = _baseQueryRepository.Context.Ado.UseTran(() =>
            {
                var userTemp = new sys_member();
                userTemp.Mapp(entity);
                var success = _baseQueryRepository.Context.Updateable(userTemp)
                              .Where(it => it.ID == entity.ID)
                              .ExecuteCommand();//主表
                snapshot.Roles.Where(r => !entity.Roles.Exists(rr => rr.ID == r.ID)).ToList().ForEach(r =>
                {
                    _baseQueryRepository.Context.Ado.ExecuteCommand("delete from sys_member_roles_link where mid=@mid and rid=@rid;"
                                                                    , new { mid = entity.ID, rid = r.ID });
                });

                entity.Roles.Where(r => !snapshot.Roles.Exists(rr => rr.ID == r.ID)).ToList().ForEach(r =>
                {
                    var smrlink = new sys_member_roles_link()
                    {
                        ID  = IdWorker.NextId(),
                        mid = entity.ID,
                        rid = r.ID
                    };
                    _baseQueryRepository.Context.Insertable(smrlink).ExecuteCommand();
                });
            });

            return(true);
        }
Beispiel #2
0
        /// <summary>
        /// 保存用户角色
        /// </summary>
        /// <returns></returns>
        public ActionResult SaveSurRoles(Dictionary <string, string> input, sys_member profile)
        {
            sys_member usr = profile;

            if (usr != null)
            {
                List <sys_roles>      frl = JsonConvert.DeserializeObject <List <sys_roles> >(input["inputData"]);
                sys_member_roles_link mrl = new sys_member_roles_link();
                _db.Deleteable <sys_member_roles_link>().Where(l => l.mid == Convert.ToInt32(input["uid"])).ExecuteCommand();
                foreach (sys_roles r in frl)
                {
                    mrl     = new sys_member_roles_link();
                    mrl.mid = Convert.ToInt32(input["uid"]);
                    mrl.rid = Convert.ToInt32(r.ID);
                    _db.Insertable(mrl).ExecuteCommand();
                }
            }
            return(new ActionResult(true));
        }