示例#1
0
        public CommandResult <Staff> Add(OperatorAddResponseModel paramsModel)
        {
            var result = new CommandResult <Staff>();

            if (Exist(a => a.Id == paramsModel.StaffId && a.LogonName != null && a.LogonName != ""))
            {
                result.Message = "该员工已经是操作员";
            }
            else if (Exist(a => a.LogonName == paramsModel.LogonName))
            {
                result.Message = "系统中已存在该登陆名称";
            }
            else
            {
                using (var db = new FrameContext())
                {
                    using (var scope = new TransactionScope())
                    {
                        paramsModel.RoleIdes.ForEach(roleId =>
                        {
                            if (!_staffRoleRelationshipsService.Exist(db,
                                                                      a => a.RoleId == roleId && a.StaffId == paramsModel.StaffId))
                            {
                                var relationship = new StaffRoleRelationships
                                {
                                    RoleId  = roleId,
                                    StaffId = paramsModel.StaffId
                                };
                                _staffRoleRelationshipsService.Add(db, relationship);
                            }
                        });

                        var entity = BaseService.Find(db, a => a.Id == paramsModel.StaffId);
                        entity.LogonName = paramsModel.LogonName;
                        entity.LogonPwd  = paramsModel.LogonPwd;
                        if (!BaseService.Update(db, entity))
                        {
                            result.Message = "未知原因";
                        }
                        else
                        {
                            result.ResultStatus = ResultStatus.Success;
                            result.Message      = "操作员信息添加成功";
                            result.Data         = entity;
                        }
                        scope.Complete();
                    }
                }
            }
            return(result);
        }
示例#2
0
        public CommandResult <Staff> Edit(int staffId, OperatorEditResponseModel paramsModel)
        {
            var result = new CommandResult <Staff>();

            if (!Exist(a => a.Id == staffId))
            {
                result.Message = "操作员信息在系统中已不存在";
            }
            else if (Exist(a => a.Id == staffId && (a.LogonName == null || a.LogonName == "")))
            {
                result.Message = "该员工已不是操作员";
            }
            if (Exist(a => a.Id != staffId && a.LogonName == paramsModel.LogonName))
            {
                result.Message = "系统中已存在该登陆名称";
            }
            else
            {
                using (var db = new FrameContext())
                {
                    using (var scope = new TransactionScope())
                    {
                        var oldRelationships =
                            _staffRoleRelationshipsService.FindList(db, a => a.StaffId == staffId).ToList();
                        var deletes = oldRelationships.Where(a => paramsModel.RoleIdes.All(roleId => roleId != a.RoleId)).ToList();
                        var addes   = paramsModel.RoleIdes.Where(a => oldRelationships.All(z => z.RoleId != a)).ToList();

                        deletes.ForEach(relationship =>
                        {
                            _staffRoleRelationshipsService.Delete(db, relationship);
                        });
                        addes.ForEach(roleId =>
                        {
                            var model = new StaffRoleRelationships
                            {
                                RoleId  = roleId,
                                StaffId = staffId
                            };
                            _staffRoleRelationshipsService.Add(db, model);
                        });

                        var entity = BaseService.Find(db, a => a.Id == staffId);
                        entity.LogonName = paramsModel.LogonName;
                        entity.LogonPwd  = paramsModel.LogonPwd;
                        if (!BaseService.Update(db, entity))
                        {
                            result.Message = "未知原因";
                        }
                        else
                        {
                            result.ResultStatus = ResultStatus.Success;
                            result.Message      = "操作员信息修改成功";
                            result.Data         = entity;
                        }

                        scope.Complete();
                    }
                }
            }
            return(result);
        }