コード例 #1
0
        public Task StoreSubscriptionAsync(SubscriptionPayLoad payload)
        {
            // var list =  _context.Subscriptions.ToListAsync();
            var list   = _dbcontext.SWSubscriptions.Where(x => x.MemberID == payload.memberId);
            var found  = list.Where(x => x.Endpoint.ToString().ToLower() == payload.subscription.Endpoint.ToString().ToLower()).FirstOrDefault();
            var found2 = _context.Subscriptions.Where(x => x.Endpoint.ToString().ToLower() == payload.subscription.Endpoint.ToString().ToLower()).FirstOrDefault();

            ;
            if (found == null && found2 == null)
            {
                Console.WriteLine("found =null && found2=null");
                _context.Subscriptions.Add(new PushSubscriptionContext.PushSubscription(payload.subscription, payload.memberId, payload.cleintIP));
                string brwtype = getBrowserType(payload.subscription.Endpoint);
                foreach (var item in list)
                {
                    if (getBrowserType(item.Endpoint) == brwtype)
                    {
                        _dbcontext.Remove(item);
                    }
                }
                _dbcontext.SaveChangesAsync();
            }
            else if (found2 != null)
            {
                found2.clientIP = payload.cleintIP;
                found2.MemberID = payload.memberId;
            }

            return(_context.SaveChangesAsync());
        }