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));
        }
Example #2
0
        public static MembershipPayment FromDb(Database.MembershipPayment membershipPayment)
        {
            Client client = new Client
            {
                Id        = (int)membershipPayment.ClientId,
                FirstName = membershipPayment.Client.AppUser.FirstName,
                LastName  = membershipPayment.Client.AppUser.LastName
            };

            MembershipType membershipType = new MembershipType
            {
                Id          = (int)membershipPayment.MembershipTypeId,
                MonthsValid = membershipPayment.MembershipType.MonthsValid,
                Name        = membershipPayment.MembershipType.Name,
                Price       = membershipPayment.MembershipType.Price
            };

            DateTime expiresAt = membershipPayment.CreatedAt.AddMonths(membershipType.MonthsValid);

            return(new MembershipPayment
            {
                Id = membershipPayment.Id,
                CreatedAt = membershipPayment.CreatedAt.ToString("dd-MM-yyyy"),
                ClientId = client.Id,
                FirstName = client.FirstName,
                LastName = client.LastName,
                MembershipTypeName = membershipType.Name,
                ValidDescriptor = DateTime.Now >= expiresAt ? "Nije Validno" : "Validno",
                TotalPaid = membershipType.Price
            });
        }
        public void Delete(int id)
        {
            Database.MembershipPayment payment = _context.MembershipPayments.Find(id);
            if (payment == null)
            {
                throw new ResourceNotFoundException("Not found");
            }

            _context.MembershipPayments.Remove(payment);
            _context.SaveChanges();
        }
        public void Update(int id, MembershipPaymentUpdate membershipPaymentUpdate)
        {
            Database.MembershipPayment payment = _context.MembershipPayments.Find(id);
            if (payment == null)
            {
                throw new ResourceNotFoundException("Not found");
            }

            payment.MembershipTypeId = membershipPaymentUpdate.MembershipTypeId;
            _context.MembershipPayments.Update(payment);
            _context.SaveChanges();
        }