public UserPremiumWorkModel(UserPremiumDataModel parent) { UserId = parent.Id; EndTime = parent.EndTime; AutoPay = parent.AutoPay; Finished = parent.Finished; Data = parent.Data; }
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))); }