public MembershipPayment Create(
            MembershipPaymentCreate membershipPaymentCreate, int employeeId)
        {
            Database.MembershipPayment activePayment = _context.MembershipPayments
                                                       .Include(x => x.MembershipType)
                                                       .Where(x => x.ClientId == membershipPaymentCreate.ClientId)
                                                       .Where(x => x.CreatedAt.AddMonths(x.MembershipType.MonthsValid) > DateTime.Now)
                                                       .FirstOrDefault();

            if (activePayment != null)
            {
                throw new ActiveMembershipException();
            }

            Database.MembershipPayment membershipPayment = new Database.MembershipPayment
            {
                ClientId         = membershipPaymentCreate.ClientId,
                EmployeeId       = employeeId,
                MembershipTypeId = membershipPaymentCreate.MembershipTypeId,
                CreatedAt        = DateTime.Now,
            };

            _context.MembershipPayments.Add(membershipPayment);
            _context.SaveChanges();

            Database.MembershipPayment createdPayment = _context.MembershipPayments
                                                        .Include(x => x.Client)
                                                        .ThenInclude(x => x.AppUser)
                                                        .Include(x => x.MembershipType)
                                                        .FirstOrDefault(x => x.Id == membershipPayment.Id);

            return(MembershipPaymentMapper.FromDb(createdPayment));
        }
        public List <MembershipPayment> GetAll(MembershipPaymentSearchParams searchParams, UserInfo userInfo)
        {
            IQueryable <Database.MembershipPayment> query = _context.MembershipPayments
                                                            .AsQueryable()
                                                            .Include(x => x.Client)
                                                            .ThenInclude(x => x.AppUser)
                                                            .Include(x => x.MembershipType);

            if (userInfo.Role.Equals("EMPLOYEE") && searchParams.ClientId != null)
            {
                query = query.Where(x => x.ClientId == searchParams.ClientId);
            }

            if (userInfo.Role.Equals("CLIENT"))
            {
                query = query.Where(x => x.ClientId == userInfo.Id);
            }

            return(query
                   .Select(x => MembershipPaymentMapper.FromDb(x))
                   .ToList());
        }