public async Task <ApiResource> FindApiResourceAsync(string name) { var service = client.GetGrain <IApiResourceService>(0); var r = await service.FindApiResourceAsync(name); return(Mapper.Map <ApiResource>(r)); }
public async Task <string> Login(string returnUrl) { var context = await interaction.GetAuthorizationContextAsync(returnUrl); if (context == null) { this.logger.LogDebug("登录参数不合法;" + returnUrl); return(options.DefaultLoginUrl); } var service = client.GetGrain <Zop.Identity.IClientService>(context.ClientId); //获取客户端默认的登陆链接 string loginUrl = await service.GetLoginUrlAsync(); if (loginUrl.IsNull()) { loginUrl = options.DefaultLoginUrl; } if (!loginUrl.Contains("?")) { loginUrl += "?"; } return($"{loginUrl}return_url={WebUtility.UrlEncode(returnUrl)}"); }
public async Task Startup(CancellationToken cancellationToken) { using (_remoteStream = _tcpClient.GetStream()) { // subscribe observer to get packet from server _clientboundPacketObserverRef = await _grainFactory.CreateObjectReference <IClientboundPacketObserver>(_outcomingPacketObserver); await _grainFactory.GetGrain <IClientboundPacketSink>(_sessionId).Subscribe(_clientboundPacketObserverRef); try { DateTime expiredTime = DateTime.Now + TimeSpan.FromSeconds(10); while (!cancellationToken.IsCancellationRequested && !_outcomingPacketDispatcher.Completion.IsCompleted) { await DispatchIncomingPacket(); // renew subscribe, 10 sec if (DateTime.Now > expiredTime) { await _grainFactory.GetGrain <IClientboundPacketSink>(_sessionId).Subscribe(_clientboundPacketObserverRef); expiredTime = DateTime.Now + TimeSpan.FromSeconds(10); } } } catch (EndOfStreamException) { var router = _grainFactory.GetGrain <IPacketRouter>(_sessionId); await router.Close(); await _outcomingPacketDispatcher.Completion; } } }
public async Task ValidateAsync(ResourceOwnerPasswordValidationContext context) { //根据账户寻找认证数据 var service = client.GetGrain <Zop.Identity.IIdentityTokenService>(context.UserName); var token = await service.GetAsync(); if (token == null) { context.Result = new GrantValidationResult(TokenRequestErrors.InvalidRequest); this.logger.LogError($"密码模式验证失败:{context.UserName}-{context.Password};授权Token不存在或者失效"); return; } if (token.IdentityIP4 == "::1") { token.IdentityIP4 = "127.0.0.1"; } if (token.IdentityIP4 != context.Password) { context.Result = new GrantValidationResult(TokenRequestErrors.InvalidRequest); this.logger.LogError($"密码模式验证失败:{context.UserName}-{context.Password};授权无效"); return; } ///用户声明 List <Claim> claims = Mapper.Map <List <Claim> >(token.Data); context.Result = new GrantValidationResult(token.SubjectId, "pwd", DateTime.Now, claims); return; }
/// <summary> /// 查看发货单作废 /// </summary> /// <returns></returns> public async Task <ApiResult <XsLadeRimpactVO> > GetAsync() { var state = this.State; var xsLadeRimpactVO = this.ObjectMapper.Map <XsLadeRimpactVO>(state); //获取企业数据 if (!string.IsNullOrEmpty(xsLadeRimpactVO.XLR_Firm)) { var itemResult = await _orleansClient.GetGrain <IPbBasicFirmStateGrain>(GrainIdKey.UtcUIDGrainKey.ToString()).GetAllSync(new PbBasicFirmDTO { Ids = new List <string> { xsLadeRimpactVO.XLR_Firm } }); if (itemResult.Success) { xsLadeRimpactVO.XLR_FirmName = itemResult.Data.FirstOrDefault().PBF_ShortName; } } //获取发货单编码 if (!string.IsNullOrEmpty(xsLadeRimpactVO.XLR_Lade)) { var itemResult = await GrainFactory.GetGrain <IXsLadeBaseStateGrain>(xsLadeRimpactVO.XLR_Lade).GetAsync(); if (itemResult.Success) { xsLadeRimpactVO.XLB_LadeId = itemResult.Data.XLB_LadeId; } } return(await Task.FromResult(ApiResultUtil.IsSuccess(xsLadeRimpactVO))); }
public async Task <Client> FindClientByIdAsync(string clientId) { if (clientId.IsNull()) { return(null); } var service = client.GetGrain <Zop.Identity.IClientService>(clientId); var cli = await service.GetAsync(); if (cli == null) { return(null); } this.logger.LogDebug(cli.ToJsonString()); return(Mapper.Map <Client>(cli)); }
public async Task <IEnumerable <PersistedGrant> > GetAllAsync(string subjectId) { var service = client.GetGrain <Zop.Identity.IPersistedGrantService>(Guid.NewGuid().ToString()); var r = await service.GetAllAsync(subjectId); return(Mapper.Map <IEnumerable <PersistedGrant> >(r)); }
public async Task StartAsync(CancellationToken cancellationToken) { try { var settings = await _grainFactory.GetGrain <IServerSettings>(0).GetSettings(); IPAddress ip = IPAddress.Parse(settings.ServerIp); int port = (int)settings.ServerPort; TcpListener _listener; _listener = new TcpListener(new IPEndPoint(ip, port)); _listener.Start(); _logger.LogInformation("ConnectionRouter started."); while (!cancellationToken.IsCancellationRequested) { DispatchIncomingClient(await _listener.AcceptTcpClientAsync(), cancellationToken); } _listener.Stop(); } catch (FormatException) { _logger.LogError($"The configuration of gateway have an incorrect format."); } }
/// <summary> /// 根据企业主键和发货单编号,查发货单数据 /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task <ApiResult <XsLadeBaseVO> > GetByLadeIdSync(XsLadeBaseDTO model) { var expression = model.GetExpression2(); var entitys = await _xsLadeBaseRepository.GetAllAsync(expression, isMaster : false); if (entitys.AsList().Count == 0) { return(ApiResultUtil.IsFailed <XsLadeBaseVO>("当前企业该发货单编号不存在,请核对!")); } else if (entitys.AsList().Count > 1) { return(ApiResultUtil.IsFailed <XsLadeBaseVO>("当前企业该发货单编号存在多条,请核对!")); } var xsLadeBaseVO = this.ObjectMapper.Map <XsLadeBaseVO>(entitys.FirstOrDefault()); if (xsLadeBaseVO.XLB_Status == "2") { return(ApiResultUtil.IsFailed <XsLadeBaseVO>("该发货单已冲红,请核对!")); } //查客商名称 if (!string.IsNullOrEmpty(xsLadeBaseVO.XLB_Client)) { var xsCompyBaseResult = await _orleansClient.GetGrain <IXsCompyBaseStateGrain>(xsLadeBaseVO.XLB_Firm).GetAllSync(new XsCompyBaseDTO { Ids = new List <string> { xsLadeBaseVO.XLB_Client } }); if (xsCompyBaseResult.Success && xsCompyBaseResult.Data.Count > 0) { xsLadeBaseVO.XLB_ClientName = xsCompyBaseResult.Data[0].XOB_Name; } } //查企业名称 if (!string.IsNullOrEmpty(xsLadeBaseVO.XLB_Firm)) { var pbBasicFirmResult = await _orleansClient.GetGrain <IPbBasicFirmStateGrain>(GrainIdKey.UtcUIDGrainKey.ToString()).GetAllSync(new PbBasicFirmDTO { Ids = new List <string> { xsLadeBaseVO.XLB_Firm } }); if (pbBasicFirmResult.Success && pbBasicFirmResult.Data.Count > 0) { xsLadeBaseVO.XLB_FirmName = pbBasicFirmResult.Data[0].PBF_ShortName; } } //查物料名称 if (!string.IsNullOrEmpty(xsLadeBaseVO.XLB_Cement)) { var pbCodeMaterialResult = await _orleansClient.GetGrain <IPbCodeMaterialStateGrain>(xsLadeBaseVO.XLB_Firm).GetAllSync(new PbCodeMaterialDTO { Ids = new List <string> { xsLadeBaseVO.XLB_Cement } }); if (pbCodeMaterialResult.Success && pbCodeMaterialResult.Data.Count > 0) { xsLadeBaseVO.XLB_CementName = pbCodeMaterialResult.Data[0].PCM_Name; } } return(await Task.FromResult(ApiResultUtil.IsSuccess(xsLadeBaseVO))); }
public Task <Hero> Get(string key) { var grain = _orleansClient.GetGrain <IHeroGrain>(key, serviceId); return(grain.Get()); }
public async Task <ApiResultPage <ScheduleTaskVO> > GetPageSync(SearchDTO <ScheduleTaskDTO> model) { await Task.WhenAll(Enumerable.Range(0, 10).Select(x => NewLongID(x))); var dto = model.Data; var expression = dto.GetExpression(); var orders = dto.GetOrder(); var count = await _scheduleRepository.CountAsync(expression); if (count == 0) { return(ApiResultUtil.IsFailedPage <ScheduleTaskVO>("无数据!")); } var entities = await _scheduleRepository.GetListAsync(model.PageIndex, model.PageSize, expression, isMaster : false, orderByFields : orders); List <ScheduleTaskVO> scheduleTaskVOs; if (entities.Any(m => !string.IsNullOrEmpty(m.ItemId))) { //获取物料数据 var itemResult = await GrainFactory.GetGrain <IMaterialGrain>(this.GrainId).GetAllSync(new MaterialDTO { Ids = entities.Where(m => !string.IsNullOrEmpty(m.ItemId)).Select(m => m.ItemId).Distinct().ToList() }); var itemList = itemResult.Success ? itemResult.Data : null; if (itemList == null) { scheduleTaskVOs = this.ObjectMapper.Map <List <ScheduleTaskVO> >(entities); } else { //左连接物料数据 scheduleTaskVOs = (from schedule in entities join item in itemList on schedule.ItemId equals item.Id into mapping from tmp in mapping.DefaultIfEmpty() //左连接需要加上DefaultIfEmpty select new { schedule, tmp }).AsEnumerable() .Select(x => { var result = this.ObjectMapper.Map <ScheduleTaskVO>(x.schedule); result.ItemName = x.tmp?.ItemName; result.ItemNumber = x.tmp?.ItemNumber; return(result); }) .ToList(); } } else { scheduleTaskVOs = this.ObjectMapper.Map <List <ScheduleTaskVO> >(entities); } //DictDataTypeStateGrain var ddd = await _clusterClient.GetGrain <IDictDataTypeStateGrain>("we").GetListAsync(); var ddd2 = await this.GrainFactory.GetGrain <IScheduleTaskStateGrain>(1111).GetAsync(); var client = _httpClientFactory.CreateClient(); client.BaseAddress = new Uri("http://127.0.0.1:6114"); Dictionary <string, string> postForm = new Dictionary <string, string> { { "Data.DataType", "TY" }, { "Data.DataCode", "A001" }, { "Data.DataValue", "V001" }, { "Data.DataDesc", "测试" }, { "Data.SortNo", "1" }, { "Data.Firm", "YT001" } }; var task = await client.PostKanekoAsync("/BasicData/api/Dict/add", "", null, postForm); return(ApiResultUtil.IsSuccess(scheduleTaskVOs, count)); }
/// <summary> /// 获取分页列表数据 /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task <ApiResultPageLR <XsLadeRimpactVO> > GetPageLRSync(SearchDTO <XsLadeRimpactDTO> model) { var dto = model.Data; //根据发货单编码模糊查询获取所有发货单主键 if (!string.IsNullOrEmpty(dto.XLB_LadeId)) { var itemResult = await this.GrainFactory.GetGrain <IXsLadeBaseGrain>(this.GrainId).GetAllSync(new XsLadeBaseDTO { XLB_LadeId = dto.XLB_LadeId }); if (itemResult.Success && itemResult.Data.Count > 0) { dto.XLR_Lades = itemResult.Data.Where(m => !string.IsNullOrEmpty(m.Id)).Select(m => m.Id).Distinct().ToList(); } else { return(ApiResultUtil.IsFailedPageLR <XsLadeRimpactVO>("无数据!")); } } //根据查询条件获取分页列表数据 var expression = dto.GetExpression(); var orders = dto.GetOrder(); var count = await _xsLadeRimpactRepository.CountAsync(expression); if (count == 0) { return(ApiResultUtil.IsFailedPageLR <XsLadeRimpactVO>("无数据!")); } var entities = await _xsLadeRimpactRepository.GetListAsync(model.PageIndex, model.PageSize, expression, isMaster : false, orderByFields : orders); //获取发货单数据 List <XsLadeBaseDO> xsLadeBaseList = new List <XsLadeBaseDO>(); if (entities.Any(m => !string.IsNullOrEmpty(m.XLR_Lade))) { var itemResult = await this.GrainFactory.GetGrain <IXsLadeBaseGrain>(this.GrainId).GetAllSync(new XsLadeBaseDTO { Ids = entities.Where(m => !string.IsNullOrEmpty(m.XLR_Lade)).Select(m => m.XLR_Lade).Distinct().ToList() }); if (itemResult.Success) { xsLadeBaseList = (List <XsLadeBaseDO>)itemResult.Data; } } //获取客商数据 List <XsCompyBaseDO> xsCompyBaseList = new List <XsCompyBaseDO>(); if (xsLadeBaseList != null) { var itemResult = await _orleansClient.GetGrain <IXsCompyBaseStateGrain>(GrainIdKey.UtcUIDGrainKey.ToString()).GetAllSync(new XsCompyBaseDTO { Ids = xsLadeBaseList.Where(m => !string.IsNullOrEmpty(m.XLB_Client)).Select(m => m.XLB_Client).Distinct().ToList() }); if (itemResult.Success) { xsCompyBaseList = (List <XsCompyBaseDO>)itemResult.Data; } } //获取企业数据 List <PbBasicFirmDO> pbBasicFirmList = new List <PbBasicFirmDO>(); if (entities.Any(m => !string.IsNullOrEmpty(m.XLR_Firm))) { var itemResult = await _orleansClient.GetGrain <IPbBasicFirmStateGrain>(GrainIdKey.UtcUIDGrainKey.ToString()).GetAllSync(new PbBasicFirmDTO { Ids = entities.Where(m => !string.IsNullOrEmpty(m.XLR_Firm)).Select(m => m.XLR_Firm).Distinct().ToList() }); if (itemResult.Success) { pbBasicFirmList = (List <PbBasicFirmDO>)itemResult.Data; } } //左连接查询数据 var xsLadeRimpactVOs = (from rimpact in entities join t1 in xsLadeBaseList on rimpact.XLR_Lade equals t1.Id into mapping1 from lade in mapping1.DefaultIfEmpty() //左连接需要加上DefaultIfEmpty join t2 in xsCompyBaseList on lade.XLB_Client equals t2.XOB_ID into mapping2 from compy in mapping2.DefaultIfEmpty() //左连接需要加上DefaultIfEmpty join t3 in pbBasicFirmList on rimpact.XLR_Firm equals t3.PBF_ID into mapping3 from firm in mapping3.DefaultIfEmpty() //左连接需要加上DefaultIfEmpty select new { rimpact, lade, compy, firm }).AsEnumerable() .Select(x => { var result = this.ObjectMapper.Map <XsLadeRimpactVO>(x.rimpact); result.XLB_LadeId = x.lade?.XLB_LadeId; result.XLB_ClientName = x.compy?.XOB_Name; result.XLR_FirmName = x.firm?.PBF_ShortName; return(result); }) .ToList(); //返回结果 return(ApiResultUtil.IsSuccess(xsLadeRimpactVOs, count, model.PageIndex, model.PageSize)); }