Esempio n. 1
0
 public UserPremiumWorkModel(UserPremiumDataModel parent)
 {
     UserId   = parent.Id;
     EndTime  = parent.EndTime;
     AutoPay  = parent.AutoPay;
     Finished = parent.Finished;
     Data     = parent.Data;
 }
Esempio n. 2
0
        public static TimeLineStatus GetPemiumTimeLine(UserPremiumDataModel userUserPremium)
        {
            if (userUserPremium?.Data == null || !userUserPremium.Data.Any())
            {
                return(null);
            }

            var pd       = userUserPremium.Data.OrderBy(i => i.Value.DateActivate);
            var timeLine = new List <TimeLine>();
            var curTime  = UnixTime.UtcNow();

            timeLine.AddRange(pd.Select(i => new TimeLine
            {
                StartTime    = i.Value.DateActivate,
                EndTime      = i.Value.DateEndTime,
                ActiveStatus = i.Value.DateEndTime <= curTime
            }));
            if (!timeLine.Any())
            {
                return(null);
            }
            var premiumTimeLineStatus = new TimeLineStatus
            {
                Status = new List <bool>(),
                Points = new List <int>()
            };

            var e = new TimeLine();

            for (var i = 0; i < timeLine.Count; i++)
            {
                if (i == 0)
                {
                    e = timeLine[i];
                    premiumTimeLineStatus.Add(timeLine[i].StartTime, true);
                    continue;
                }

                if (e.EndTime < timeLine[i].StartTime)
                {
                    premiumTimeLineStatus.Add(e.EndTime, false);
                    premiumTimeLineStatus.Add(timeLine[i].StartTime, true);
                }

                e = timeLine[i];
            }
            premiumTimeLineStatus.Add(e.EndTime, e.EndTime >= curTime);

            return(premiumTimeLineStatus);
        }
        public UserPremiumDataModel CreateUserPremium(IDbConnection connection, int userId)
        {
            var addPremium = new UserPremiumDataModel
            {
                Id       = userId,
                EndTime  = UnixTime.UtcNow(),
                AutoPay  = false,
                Finished = true,
                Data     = new Dictionary <int, UserPremiumtHistory>()
            };

            addPremium = _premiumRepo.AddOrUpdateeModel(connection, addPremium);
            return(_premiumCache.UpdateLocalItem(connection, addPremium));
        }
 public UserPremiumDataModel AddOrUpdatePremium(IDbConnection connection, UserPremiumDataModel dataModel)
 {
     return(_premiumCache.UpdateLocalItem(connection, _premiumRepo.AddOrUpdateeModel(connection, dataModel)));
 }