Example #1
0
        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);
        }
Example #2
0
        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);
        }