public bool InsertOrUpdate(MenuDto dto) { MenuDto cMenu, olddto = null; if (default(Guid).Equals(dto.Id)) //add { cMenu = dto; } else //edit { olddto = Get(dto.Id); cMenu = olddto.GetCopy(); cMenu.Url = dto.Url; cMenu.Icon = dto.Icon; cMenu.SerialNumber = dto.SerialNumber; cMenu.Name = dto.Name; cMenu.Code = dto.Code; cMenu.Remarks = dto.Remarks; } //var menu = _menuRepository.InsertOrUpdate(Mapper.Map<Menu>(dto)); menu_update_insertupdate_rpc msg = null; Request(dto, olddto, msg, 0); //异步rpc的方式 return(true); }
private void Request(MenuDto dto, MenuDto olddto, menu_update_insertupdate_rpc replyMsg, int runcnt) { menu_update_insertupdate_rpc msg = new menu_update_insertupdate_rpc(_queueService.ExchangeName, dto); _queueService.Request(dto, olddto, msg, replyMsg, (x, z, y) => { x.Id = ByteConvertHelper.Bytes2Object <Guid>(y.MessageBodyReturnByte); _logger.LogInformation("menu.update.insertupdate.rpc: name:{0} method:{1}", x.Id, "InsertOrUpdate"); InsertOrUpdateCache(x, z); }, runcnt); }