private async void BtnSave_Click(object sender, EventArgs e)
        {
            if (_payment == null)
            {
                MembershipPaymentCreate membershipPayment = new MembershipPaymentCreate
                {
                    ClientId         = _client.Id,
                    MembershipTypeId = int.Parse(cbClanarinaType.SelectedValue.ToString())
                };

                await _apiService.Create <MembershipType>(membershipPayment);
            }
            else
            {
                MembershipPaymentUpdate membershipUpdate = new MembershipPaymentUpdate
                {
                    MembershipTypeId = int.Parse(cbClanarinaType.SelectedValue.ToString())
                };

                await _apiService.Update <MembershipType>(_payment.Id, membershipUpdate);
            }

            MembershipPaymentForm paymentForm = new MembershipPaymentForm(_token, _client);

            paymentForm.MdiParent   = this.MdiParent;
            paymentForm.WindowState = FormWindowState.Maximized;
            paymentForm.ControlBox  = false;
            paymentForm.MaximizeBox = false;
            paymentForm.MinimizeBox = false;
            paymentForm.ShowIcon    = false;

            paymentForm.Show();
        }
        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 MembershipPayment Create(
            MembershipPaymentCreate membershipPaymentCreate)
        {
            UserInfo userInfo = _authenticationService.IsAuthorized(Request, "EMPLOYEE");

            validateModel();
            return(_membershipPaymentService.Create(membershipPaymentCreate, userInfo.Id));
        }