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