public bool InsertOrUpdate(RoleDto dto, UserDto moduser) { RoleDto cRole, olddto = null; if (default(Guid).Equals(dto.Id)) //add { cRole = dto; if (moduser != null) { cRole.CreateUserId = moduser.Id; cRole.CreateTime = DateTime.Now; } } else //edit { olddto = Get(dto.Id); cRole = olddto.GetCopy(); cRole.Name = dto.Name; cRole.Code = dto.Code; cRole.Remarks = dto.Remarks; } role_update_insertupdate_rpc msg = null; Request(cRole, olddto, msg, 0); //异步rpc的方式 //var user = _repository.InsertOrUpdate(Mapper.Map<Role>(dto)); return(true); }
private void Request(RoleDto dto, RoleDto olddto, role_update_insertupdate_rpc replyMsg, int runcnt) { role_update_insertupdate_rpc msg = new role_update_insertupdate_rpc(_queueService.ExchangeName, dto); _queueService.Request <RoleDto>(dto, olddto, msg, replyMsg, (x, z, y) => { x.Id = ByteConvertHelper.Bytes2Object <Guid>(y.MessageBodyReturnByte); _logger.LogInformation("role.update.insertupdate.rpc: name:{0} method:{1}", x.Id, "InsertOrUpdate"); InsertOrUpdateCache(x, z); }, runcnt); }