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()); }