public ICollection <History> SessiosOfThisMonthForThisClient(Client client) { var subcribtions = SubcriptionsRepository.Get(e => e.Client.Id == client.Id).ToList(); var subcribtion = subcribtions.FirstOrDefault(e => (e.EndDate - DateTime.Now).TotalDays > 0); var sessionsofthisClient = HistoriesRepository.Get(n => n.Client.Id == client.Id).ToList(); var sessions = sessionsofthisClient.Where(n => subcribtion != null && n.Record >= subcribtion.StartDate && n.Record <= subcribtion.EndDate) .ToList(); return(sessions); }
public int SessionsLeftOnThisMonthForThisClient(Client client) { if (!ThisClientIsSubcribed(client)) { return(0); } var subcribtions = SubcriptionsRepository.Get(e => e.Client.Id == client.Id).ToList(); var subcribtion = new List <Subcription>(subcribtions.OrderByDescending(e => e.EndDate)).FirstOrDefault(e => (e.EndDate - DateTime.Now).TotalDays >= 0); if (subcribtion != null) { return(subcribtion.SubcriptionType.MaxSessions - SessiosOfThisMonthForThisClient(client).Count); } return(0); }
public bool ThisClientIsSubcribed(Client client) { if (client == null) { return(false); } var subcribtions = SubcriptionsRepository.Get(e => e.Client.Id == client.Id).ToList(); subcribtions = new List <Subcription>(subcribtions.OrderByDescending(n => n.StartDate)); var subcribtion = subcribtions.FirstOrDefault(e => (e.EndDate - DateTime.Now).TotalDays >= 0); var sessions = SessiosOfThisMonthForThisClient(client); if (subcribtion != null && sessions != null) { return(sessions.Count < subcribtion.SubcriptionType.MaxSessions); } return(false); }