Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
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);
        }