예제 #1
0
        /// <summary>
        /// 添加用户
        /// </summary>
        /// <param name="sysUser"></param>
        /// <returns></returns>
        public async Task <bool> AddUser(SysUser sysUser)
        {
            sysUser.Id = Guid.NewGuid();
            var str      = sysUser.RoleIds;
            var RoleIds  = JsonConvert.DeserializeObject <List <Guid> >(sysUser.RoleIds);
            var Rolelist = new List <SysUserRole>();

            Rolelist.AddRange(RoleIds.Select(x => new SysUserRole
            {
                RoleId        = x,
                CreatedId     = sysUser.CreatedId,
                CreatedName   = sysUser.CreatedName,
                UserIdOrDepId = sysUser.Id,
            }));
            try
            {
                _unitofWork.BeginTransaction();
                await _userRepositoty.InsertAsync(sysUser);

                await _userRoleRepository.InsertAsync(Rolelist);

                _unitofWork.Commit();
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
예제 #2
0
        public async Task <int> CreateProductAsync(ProductEntity argProductEntity)
        {
            var itemData = _mapper.Map <Products>(argProductEntity);

            using (var transaction = _unitOfWork.BeginTransaction())
            {
                await _genericRepository.InsertAsync(itemData).ConfigureAwait(false);

                await _unitOfWork.SaveChangesAsync().ConfigureAwait(false);

                transaction.Commit();
            }
            return(itemData.Id);
        }
예제 #3
0
        public async Task <bool> SaveRoleByUser(UpdateUserRoleVo updateUserRole)
        {
            try
            {
                var RoleIds = new List <Guid>();
                if (!updateUserRole.RoleIds.IsNullOrEmpty())
                {
                    RoleIds.AddRange(JsonConvert.DeserializeObject <List <Guid> >(updateUserRole.RoleIds));
                }
                var Rolelist   = new List <SysUserRole>();
                var deletelist = await _userRoleRepository.GetAllListAsync(x => x.UserIdOrDepId == updateUserRole.userId);

                Rolelist.AddRange(RoleIds.Select(x => new SysUserRole
                {
                    RoleId        = x,
                    CreatedId     = updateUserRole.CreateId,
                    CreatedName   = updateUserRole.CreateName,
                    UserIdOrDepId = updateUserRole.userId,
                }));

                _unitofWork.BeginTransaction();
                await _userRoleRepository.Delete(deletelist);

                await _userRoleRepository.InsertAsync(Rolelist);

                _unitofWork.Commit();
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
예제 #4
0
        /// <summary>
        /// 保存权限方法
        /// </summary>
        /// <param name="saveRoleAssigView"></param>
        /// <returns></returns>
        public async Task <bool> SaveRoleAssig(SaveRoleAssigViewModel saveRoleAssigView)
        {
            List <Guid> BtnIdlist = new List <Guid>();

            BtnIdlist.AddRange(JsonConvert.DeserializeObject <List <Guid> >(saveRoleAssigView.BtnIds));//获取选中的按钮ID
            List <RoleAssigMenuViewModel> roleAssigMenuViews = new List <RoleAssigMenuViewModel>();

            roleAssigMenuViews.AddRange(JsonConvert.DeserializeObject <List <RoleAssigMenuViewModel> >(saveRoleAssigView.menuIds));//获取选中的按钮ID
            try
            {
                var sysButtonlist = await _buttonRepositoty.GetAllListAsync(x => BtnIdlist.Contains(x.Id));//根据按钮ID获取所有的按钮及对应的菜单

                var DeleteroleRight = await _roleRightAssigRepository.GetAllListAsync(x => x.RoleId == saveRoleAssigView.RoleId);

                List <SysRoleRight> SysRoleRightList = new List <SysRoleRight>();
                var menuIds = sysButtonlist.Select(x => new { x.MenuId }).Distinct().ToList(); //根据按钮ID获取所有的按钮及对应的菜单,并且根据菜单ID去重
                foreach (var item in menuIds)                                                  //将去重的菜单ID添加到角色权限List容器中
                {
                    SysRoleRightList.Add(new SysRoleRight {
                        MenuId      = item.MenuId,
                        RoleId      = saveRoleAssigView.RoleId,
                        CreatedId   = saveRoleAssigView.CreatedId,
                        CreatedName = saveRoleAssigView.CreatedName,
                    });
                }
                var ReadMenulist = SysRoleRightList.ToSelectList(x => x.MenuId);
                var MenuList     = roleAssigMenuViews.Where(x => !ReadMenulist.Contains(x.Id)).ToList(); //获取到还未选中的菜单
                SysRoleRightList.AddRange(MenuList.Select(x => new SysRoleRight                          //将未选中的菜单添加到角色权限对象中
                {
                    MenuId      = x.Id,
                    RoleId      = saveRoleAssigView.RoleId,
                    CreatedId   = saveRoleAssigView.CreatedId,
                    CreatedName = saveRoleAssigView.CreatedName,
                }).ToList());
                SysRoleRightList.ForEach(item =>//根据菜单ID获取菜单下面所有的按钮
                {
                    var BtnList    = sysButtonlist.Where(x => x.MenuId == item.MenuId).ToList();
                    item.ButtonIds = string.Join(",", BtnList.Select(x => x.Id));
                });

                _unitofWork.BeginTransaction();
                await _roleRightAssigRepository.Delete(DeleteroleRight);

                await _roleRightAssigRepository.InsertAsync(SysRoleRightList);

                _unitofWork.Commit();
                return(true);
            }
            catch (Exception ex)
            {
                throw new Exception($"Commit 异常:{ex.InnerException}/r{ ex.Message}");
            }
        }
        public void SaveData(mstCar data)
        {
            try
            {
                _uow.Open(DBConnection.BMIERP);
                _uow.BeginTransaction();

                var repo = new mstCarRepository(_uow);
                repo.Add(data);

                _uow.CommitTransaction();
            }
            catch (Exception)
            {
                _uow.RollbackTransaction();
                throw;
            }
            finally
            {
                _uow.Dispose();
            }
        }
예제 #6
0
        public void Save()
        {
            try
            {
                _uow.Open(DBConnection.BMIERP);
                _uow.BeginTransaction();

                var repo = new mstLogRepository(_uow);
                repo.Add(_mstLog);

                _uow.CommitTransaction();
            }
            catch (Exception)
            {
                _uow.RollbackTransaction();
            }
            finally
            {
                _uow.Dispose();
            }
        }
예제 #7
0
 public ActionResult Insert(EPostDTO post)
 {
     try
     {
         _uow.BeginTransaction();
         post.Slug        = _postService.GetSlugAnyPost(StringManager.ToSlug(post.Title));
         post.UserId      = ((SessionContext)Session["SessionContext"]).Id;
         post.PostContent = HttpUtility.HtmlEncode(post.PostContent);
         if (Session["TempImage"] != null)
         {
             post.Image = (byte[])Session["TempImage"];
         }
         _postService.Insert(post);
         _uow.SaveChanges();
         _uow.Commit();
         return(Json(true, JsonRequestBehavior.AllowGet));
     }
     catch (Exception)
     {
         _uow.Rollback();
         return(Json(false, JsonRequestBehavior.AllowGet));
     }
 }
        public void Save(CarViewModel vm)
        {
            try
            {
                _uow.Open(DBConnection.BMIERP);
                _uow.BeginTransaction();

                _carDomain.SaveDataFacade(vm.car, _uow);
                vm.sparepart.CarID = vm.car.AutoID;
                _SparePartDomain.SaveDataFacade(vm.sparepart, _uow);

                _uow.CommitTransaction();
            }
            catch (Exception)
            {
                _uow.RollbackTransaction();
                throw;
            }
            finally
            {
                _uow.Dispose();
            }
        }
예제 #9
0
 public void BeginTransaction()
 {
     _uow = ServiceLocator.Current.GetInstance <IUnitofWork>();
     _uow.BeginTransaction();
 }