示例#1
0
        /// <summary>
        /// 获取可用的储值方案
        /// </summary>
        /// <returns></returns>
        public IEnumerable <RechargePlanDto> GetUsablePlans(EClientType clientType, string cardTypeId)
        {
            var queryable = this.Repository.GetQueryable(false)
                            .Where(t => t.IsAvailable == true && t.EffectiveDate <DateTime.Now && t.ExpiredDate> DateTime.Now);

            if (!string.IsNullOrEmpty(cardTypeId))
            {
                queryable = queryable.Where(t => t.MatchCardType.Contains(cardTypeId));
            }
            else
            {
                var giftCardId     = MemberCardTypes.GiftCard.ToString();
                var rechargeCardId = MemberCardTypes.PrePaidCard.ToString();
                var disCountCardId = MemberCardTypes.DiscountCard.ToString();
                switch (clientType)
                {
                case EClientType.Portal:
                    queryable = queryable.Where(p => p.VisibleAtPortal && (p.MatchCardType.Contains(rechargeCardId) || p.MatchCardType.Contains(disCountCardId)));
                    break;

                case EClientType.WeChat:
                    queryable = queryable.Where(p => p.VisibleAtWeChat && (p.MatchCardType.Contains(rechargeCardId) || p.MatchCardType.Contains(disCountCardId)));
                    break;

                case EClientType.GiftCard:
                    queryable = queryable.Where(t => t.MatchCardType.Contains(giftCardId));
                    break;

                default:
                    throw new DomainException("未知来源");
                }
            }
            return(queryable.MapTo <RechargePlanDto>()
                   .ToArray());
        }
示例#2
0
        public void StartConnection(EClientType type)
        {
            DiscoverPeersTimer.AutoReset = true;
            DiscoverPeersTimer.Interval  = 1000;
            DiscoverPeersTimer.Elapsed  += DiscoverPeersTimer_Elapsed;
            DiscoverPeersTimer.Start();

            ClientId = new ClientIdData(Environment.MachineName, CommonDebug.GetOptionalNumberId(), type);

            PeerDiscovery.EnableDiscoverable(PeerDiscovery.DiscoveryMethod.UDPBroadcast);

            PeerDiscovery.OnPeerDiscovered += PeerDiscovery_OnPeerDiscovered;

            PeerDiscovery.DiscoverPeersAsync(PeerDiscovery.DiscoveryMethod.UDPBroadcast);

            NetworkComms.AppendGlobalConnectionEstablishHandler(conn => OnConnectionEstablished(conn));
            NetworkComms.AppendGlobalConnectionCloseHandler(conn => OnConnectionClosed(conn));
        }
示例#3
0
 public ClientIdData(string name, int numberId, EClientType type)
 {
     Name             = name;
     OptionalNumberId = numberId;
     ClientType       = type;
 }
示例#4
0
 public ClientIdData(string name, EClientType type)
 {
     Name       = name;
     ClientType = type;
 }
示例#5
0
 public Client(EClientType type, ForegroundClient foregroundClient)
 {
     clientType            = type;
     this.foregroundClient = foregroundClient;
 }
示例#6
0
 public Client()
 {
     clientType       = EClientType.None;
     foregroundClient = null;
 }
示例#7
0
        private bool CheckIfClientIsValid(string clientPublicId, Uri requestRedirectUri, EClientType clientType)
        {
            using (var context = RepositoriesFactory.CreateContext())
            {
                var clientRepo          = RepositoriesFactory.GetClientRepository(context);
                var clientReturnUrlRepo = RepositoriesFactory.GetClientReturnUrlRepository(context);

                var client = clientRepo.GetByPublicId(clientPublicId);

                if (client == null)
                {
                    return(false);
                }

                if (!client.IsValid)
                {
                    return(false);
                }

                if (client.ClientTypeId != (int)clientType)
                {
                    return(false);
                }

                IList <Uri> clientUris = new List <Uri>();
                foreach (var uri in clientReturnUrlRepo.GetAllByClientPublicId(clientPublicId))
                {
                    clientUris.Add(new Uri(uri.ReturnUrl, UriKind.Absolute));
                }

                if (!clientUris.Contains(requestRedirectUri))
                {
                    return(false);
                }
            }

            return(true);
        }