private void CheckConsecutiveDaysLimit(User user, DateTime dateTimeFrom, LimitDirection direction, int timeZoneMinutes) { var dateFrom = dateTimeFrom.Date; var limit = UserService.GetUserLimits(user).LimitOfConsecutiveLearningDays; var consecutiveDays = Enumerable.Range(1, limit) .Select(offset => dateFrom.AddDays((int)direction * offset)) .ToArray(); var previousLearningDays = _schedulearnContext.LearningDays .Where(l => l.UserId == user.Id) .Where(l => consecutiveDays.Contains(l.DateFrom.AddMinutes(timeZoneMinutes).Date)) .Select(l => l.DateFrom.AddMinutes(timeZoneMinutes).Date) .Distinct() .ToList(); if (previousLearningDays.Count >= limit) { throw new LimitUsed(Error_LimitOfConsecutiveLearningDays); } }
public static ErrorCode IsLimitEnabled(void *handle, LimitDirection sw, byte *enabled) { return(driver.c_SparkMax_IsLimitEnabled(handle, sw, enabled)); }
public static ErrorCode EnableLimitSwitch(void *handle, LimitDirection sw, byte enable) { return(driver.c_SparkMax_EnableLimitSwitch(handle, sw, enable)); }
public static ErrorCode GetLimitSwitch(void *handle, LimitDirection sw, byte *limit) { return(driver.c_SparkMax_GetLimitSwitch(handle, sw, limit)); }
public static ErrorCode GetLimitPolarity(void *handle, LimitDirection sw, LimitPolarity *polarity) { return(driver.c_SparkMax_GetLimitPolarity(handle, sw, polarity)); }
public static ErrorCode GetSoftLimit(void *handle, LimitDirection dir, float *limit) { return(driver.c_SparkMax_GetSoftLimit(handle, dir, limit)); }
public static ErrorCode EnableSoftLimit(void *handle, LimitDirection dir, byte enable) { return(driver.c_SparkMax_EnableSoftLimit(handle, dir, enable)); }