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 bSave_Click(object sender, EventArgs e)
        {
            PersianDateFormatter pdf = new PersianDateFormatter();
            AppointmentRepository appRepo = new AppointmentRepository();
            ContractRepository cRepo = new ContractRepository();
            Contract contract = cRepo.getContract(contractId);

            Appointment app = new Appointment();
            string description = "";
            int value = 0;
            foreach (var item in radCheckedDropDownList1.CheckedItems)
            {
                description += item.DisplayValue.ToString() + "/";
                value += Convert.ToInt32(item.Value);
            }
            contract.ContractPayment += value;
            cRepo.updateContract(contract);
            app.ContractId = contractId;
            description = description.Remove(description.Length - 1);
            app.Description = description;

            app.AppointmentDate = pdf.convert(tDate.Text);
            TimeSpan ts = new TimeSpan(tTime.Value.TimeOfDay.Hours, tTime.Value.TimeOfDay.Minutes, 0);
            app.AppointmentTime = ts;
            appRepo.addAppointment(app);
        }
 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_SelectionChanged(object sender, EventArgs e)
 {
     //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();
     bNewAppointment.Enabled = true;
     bNewPayment.Enabled = true;
 }
        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 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();
     }
 }
        private void EditAppointmentForm_Load(object sender, EventArgs e)
        {
            DefaultSettingsRepository dRepo = new DefaultSettingsRepository();
            radCheckedDropDownList1.DataSource = dRepo.GetSetingsByType("price").ToList();
            radCheckedDropDownList1.DisplayMember = "Name";
            radCheckedDropDownList1.ValueMember = "Value";

            PersianDateFormatter pdf = new PersianDateFormatter();
            tTime.Format = DateTimePickerFormat.Custom;
            tTime.CustomFormat = "HH:mm";
            tTime.ShowUpDown = true;
            bSave.DialogResult = DialogResult.OK;
            bCancel.DialogResult = DialogResult.Cancel;
            AppointmentRepository repo = new AppointmentRepository();
            Appointment appo = repo.getAppointment(appointmentId);
            DateTime dt = new DateTime(2000, 1, 1, 0, 0, 0).Add(appo.AppointmentTime.Value);
            tTime.Value = dt;
            tDate.Text = pdf.convert(appo.AppointmentDate.Value);
            string[] parts = appo.Description.Split('/');

            foreach (RadCheckedListDataItem item in radCheckedDropDownList1.Items)
            {
                if (parts.Contains(item.DisplayValue.ToString()))
                {
                    item.Checked = true;
                    unchangedValue += Convert.ToInt32(item.Value.ToString());
                }
            }
        }