private void radGridView3_UserDeletingRow(object sender, GridViewRowCancelEventArgs e)
        {
            DialogResult result = MessageBox.Show("آیا از عملیات حذف مطمئن هستید؟", "هشدار", MessageBoxButtons.YesNo);
            if (result == DialogResult.No)
            {
                e.Cancel = true;
            }
            else
            {
                int value = 0;
                DefaultSettingsRepository dRepo = new DefaultSettingsRepository();
                ContractRepository cRepo = new ContractRepository();
                AppointmentRepository rep = new AppointmentRepository();
                int appointmentId = Convert.ToInt32(radGridView3.SelectedRows[0].Cells[0].Value.ToString());
                Appointment appo = rep.getAppointment(appointmentId);
                string[] parts = appo.Description.Split('/');
                foreach (string part in parts)
                {
                    DefaultSetting ds = dRepo.GetSetting(part);
                    value += Convert.ToInt32(ds.Value);

                }
                Contract contract = cRepo.getContract(appo.ContractId.Value);
                contract.ContractPayment -= value;
                cRepo.updateContract(contract);

                rep.deleteAppointment(appointmentId);
                ContractRepository repository = new ContractRepository();
                radGridView1.DataSource = repository.getContractsByCustomerId(customerId).ToList();
            }
        }
 private void radGridView2_UserDeletingRow(object sender, GridViewRowCancelEventArgs e)
 {
     //payment
     DialogResult result = MessageBox.Show("آیا از عملیات حذف مطمئن هستید؟", "هشدار", MessageBoxButtons.YesNo);
     if (result == DialogResult.No)
     {
         e.Cancel = true;
     }
     else
     {
         ContractRepository repository = new ContractRepository();
         PaymentRepository pRepo = new PaymentRepository();
         int paymentAmount = Convert.ToInt32(radGridView2.SelectedRows[0].Cells[1].Value.ToString());
         int paymentId = Convert.ToInt32(radGridView2.SelectedRows[0].Cells[0].Value.ToString());
         Contract contract = repository.getContract(selectedContractId);
         contract.Payment -= paymentAmount;
         pRepo.deletePayment(paymentId);
         repository.updateContract(contract);
         radGridView1.DataSource = repository.getContractsByCustomerId(customerId).ToList();
     }
 }
 private void radGridView3_CellDoubleClick(object sender, GridViewCellEventArgs e)
 {
     if (e.RowIndex != -1)
     {
         int appointmentId = Convert.ToInt32(radGridView3.Rows[e.RowIndex].Cells[0].Value.ToString());
         EditAppointmentForm edaForm = new EditAppointmentForm(appointmentId);
         var result = edaForm.ShowDialog();
         if (result == DialogResult.OK)
         {
             AppointmentRepository repo = new AppointmentRepository();
             radGridView3.DataSource = repo.getAppointmentByContractId(selectedContractId).ToList();
             ContractRepository repository = new ContractRepository();
             radGridView1.DataSource = repository.getContractsByCustomerId(customerId).ToList();
         }
     }
 }
        private void radGridView1_CellDoubleClick(object sender, GridViewCellEventArgs e)
        {
            if (e.RowIndex != -1)
            {
                int contractId = Convert.ToInt32(radGridView1.Rows[e.RowIndex].Cells[0].Value.ToString());
                AddEditContractForm contractForm = new AddEditContractForm(false, contractId, customerId);
                var result = contractForm.ShowDialog();
                if (result == DialogResult.OK)
                {
                    ContractRepository repository = new ContractRepository();
                    radGridView1.DataSource = repository.getContractsByCustomerId(customerId).ToList();
                }

            }
        }
        private void CustomerInfoForm_Load(object sender, EventArgs e)
        {
            PersianDateFormatter pdf = new PersianDateFormatter();
            CustomerRepository repository = new CustomerRepository();
            Customer customer = repository.getCustomer(customerId);
            lName.Text = customer.FirstName + " " + customer.LastName;
            lPhoneNumber.Text = "شماره تماس:" + "   " + customer.PhoneNumber;
            lCreatedDate.Text = "تاریخ ایجاد:" + "   " + pdf.convert(customer.CreatedDate.Value);
            if (String.IsNullOrWhiteSpace(customer.Description))
            {
                lDescription.Text = "توضیحات:" + "   " + "-";
            }
            else
            {
                lDescription.Text = "توضیحات:" + "   " + customer.Description;
            }
            ContractRepository crepository = new ContractRepository();
            radGridView1.DataSource = crepository.getContractsByCustomerId(customerId).ToList();

            ((GridTableElement)radGridView1.TableElement).AlternatingRowColor = Color.FromArgb(215, 234, 124);
            radGridView1.TableElement.RowHeight = 25;
            ((GridTableElement)radGridView2.TableElement).AlternatingRowColor = Color.FromArgb(255, 205, 139);
            radGridView2.TableElement.RowHeight = 25;
            ((GridTableElement)radGridView3.TableElement).AlternatingRowColor = Color.FromArgb(240, 240, 240);
            radGridView3.TableElement.RowHeight = 25;

            if (radGridView1.SelectedRows.Count > 0)
            {
                //MessageBox.Show(radGridView1.SelectedRows[0].Cells[0].Value.ToString());
                PaymentRepository paymentRepository = new PaymentRepository();
                AppointmentRepository appointmentRepository = new AppointmentRepository();
                selectedContractId = Convert.ToInt32(radGridView1.SelectedRows[0].Cells[0].Value.ToString());
                radGridView2.DataSource = paymentRepository.getPaymentsByContractId(selectedContractId).ToList();
                radGridView3.DataSource = appointmentRepository.getAppointmentByContractId(selectedContractId).ToList();
            }

            if (radGridView1.SelectedRows.Count < 1)
            {
                bNewAppointment.Enabled = false;
                bNewPayment.Enabled = false;
            }
        }
 private void bNewPayment_Click(object sender, EventArgs e)
 {
     AddPayment addPayment = new AddPayment(selectedContractId);
     var result = addPayment.ShowDialog();
     if (result == DialogResult.OK)
     {
         PaymentRepository paymentRepository = new PaymentRepository();
         ContractRepository repository = new ContractRepository();
         radGridView1.DataSource = repository.getContractsByCustomerId(customerId).ToList();
         radGridView2.DataSource = paymentRepository.getPaymentsByContractId(selectedContractId).ToList();
     }
 }
 private void bNewContract_Click(object sender, EventArgs e)
 {
     AddEditContractForm contractForm = new AddEditContractForm(true, -1, customerId);
     var result = contractForm.ShowDialog();
     if (result == DialogResult.OK)
     {
         ContractRepository repository = new ContractRepository();
         radGridView1.DataSource = repository.getContractsByCustomerId(customerId).ToList();
     }
 }
 private void bNewAppointment_Click(object sender, EventArgs e)
 {
     AddAppointment addAppointment = new AddAppointment(selectedContractId);
     var result = addAppointment.ShowDialog();
     if (result == DialogResult.OK)
     {
         ContractRepository repo = new ContractRepository();
         AppointmentRepository appointmentRepository = new AppointmentRepository();
         radGridView3.DataSource = appointmentRepository.getAppointmentByContractId(selectedContractId).ToList();
         radGridView1.DataSource = repo.getContractsByCustomerId(customerId).ToList();
     }
 }