private void btnEdit_Click(object sender, EventArgs e)
        {
            if (gridSocialNetworkType.SelectedRows.Count == 0)
            {
                DataValidationMesaage.NoSelectedItemFromList(gridSocialNetworkType.Text);

                return;
            }

            DataBaseDataContext myConnection = Setting.DataBase;

            #region SocialNetworkType Casting

            int socialNetworkTypeID = int.Parse(gridSocialNetworkType.SelectedRows[0].Cells[1].Value.ToString());

            if (!SocialNetworkType.Validation(socialNetworkTypeID, myConnection))
            {
                DataValidationMesaage.NoDataInBank();

                return;
            }

            SocialNetworkType socialNetworkType = SocialNetworkType.Get(socialNetworkTypeID, myConnection);

            #endregion

            txtTitle.Text = socialNetworkType.Title;

            FormManagement.EnableYesNo(this.Controls);

            txtTitle.Focus();
        }
        private void btnYes_Click(object sender, EventArgs e)
        {
            DataBaseDataContext myConnection = Setting.DataBase;

            if (string.IsNullOrEmpty(txtTitle.Text) || string.IsNullOrWhiteSpace(txtTitle.Text))
            {
                DataValidationMesaage.BlankTextBox("عنوان");

                return;
            }

            #region SocialNetworkType Casting

            int socialNetworkTypeID = int.Parse(gridSocialNetworkType.SelectedRows[0].Cells[1].Value.ToString());

            if (!SocialNetworkType.Validation(socialNetworkTypeID, myConnection))
            {
                DataValidationMesaage.NoDataInBank();

                return;
            }

            SocialNetworkType socialNetworkType = SocialNetworkType.Get(socialNetworkTypeID, myConnection);

            #endregion

            if (myConnection.SocialNetworkTypes.Any(a => a.Title == txtTitle.Text.Trim() && a.ID != socialNetworkType.ID))
            {
                DataValidationMesaage.DuplicateData(txtTitle.Text);

                return;
            }

            SocialNetworkType.Edit(socialNetworkType, txtTitle.Text.Trim(), myConnection);

            DataValidationMesaage.EditMessage();

            clearTextBox();

            txtTitle.Focus();

            SocialNetworkType.LoadGrid(gridSocialNetworkType, myConnection);

            FormManagement.DisableYesNo(this.Controls);
        }
        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (gridSocialNetworkType.SelectedRows.Count == 0)
            {
                DataValidationMesaage.NoSelectedItemFromList(gridSocialNetworkType.Text);

                return;
            }

            DataBaseDataContext myConnection = Setting.DataBase;

            #region SocialNetworkType Casting

            int socialNetworkTypeID = int.Parse(gridSocialNetworkType.SelectedRows[0].Cells[1].Value.ToString());

            if (!SocialNetworkType.Validation(socialNetworkTypeID, myConnection))
            {
                DataValidationMesaage.NoDataInBank();

                return;
            }

            SocialNetworkType socialNetworkType = SocialNetworkType.Get(socialNetworkTypeID, myConnection);

            #endregion

            if (socialNetworkType.SocialNetworkAccounts.Any())
            {
                DataValidationMesaage.DataInUse(socialNetworkType.Title, gridSocialNetworkType.Text);

                return;
            }
            DialogResult message = DataValidationMesaage.ConfirmDeleteData(socialNetworkType.Title);

            if (message == DialogResult.Yes)
            {
                SocialNetworkType.Delete(socialNetworkType, myConnection);

                DataValidationMesaage.DeleteMessage();

                SocialNetworkType.LoadGrid(gridSocialNetworkType, myConnection);
            }
        }
        private void btnSocialAccountDelete_Click(object sender, EventArgs e)
        {
            DataBaseDataContext myConnection = Setting.DataBase;

            if (lstSocialNetwork.SelectedItems.Count == 0)
            {
                DataValidationMesaage.NoSelectedItemFromList("لیست اکانت های شبکه های اجتماعی");

                return;
            }

            #region Member Casting

            int memberId = FrmMember.MemberProfile.ID;

            if (!Member.Validation(memberId, myConnection))
            {
                DataValidationMesaage.NoDataInBank();

                return;
            }

            Member member = Member.Get(memberId, myConnection);

            #endregion

            #region SocialNetworkType Casting

            int socialNetworkTypeId = ((SocialNetworkType)cmbSocialAccount.SelectedItem).ID;

            if (!SocialNetworkType.Validation(socialNetworkTypeId, myConnection))
            {
                DataValidationMesaage.NoDataInBank();

                return;
            }

            SocialNetworkType socialNetworkType = SocialNetworkType.Get(socialNetworkTypeId, myConnection);

            #endregion

            #region SocialNetworkAccount Casting

            SocialNetworkAccount socialNetworkAccount = (SocialNetworkAccount)lstSocialNetwork.SelectedItems[0].Tag;

            if (!SocialNetworkAccount.Validation(socialNetworkAccount.ID, myConnection))
            {
                DataValidationMesaage.NoDataInBank();

                return;
            }
            socialNetworkAccount = SocialNetworkAccount.Get(socialNetworkAccount.ID, myConnection);

            #endregion

            DialogResult messageResult =
                DataValidationMesaage.ConfirmDeleteData(lstSocialNetwork.SelectedItems[0].SubItems[1].Text);

            if (messageResult == DialogResult.Yes)
            {
                if (socialNetworkAccount.Status)
                {
                    #region NextSocialNetworkAccount Casting

                    int nextSocialNetworkAccountIndex = (int.Parse(lstSocialNetwork.SelectedItems[0].Text)) %
                                                        lstSocialNetwork.Items.Count;

                    SocialNetworkAccount nextSocialNetworkAccount =
                        (SocialNetworkAccount)lstSocialNetwork.Items[nextSocialNetworkAccountIndex].Tag;

                    if (!SocialNetworkAccount.Validation(nextSocialNetworkAccount.ID, myConnection))
                    {
                        DataValidationMesaage.NoDataInBank();

                        return;
                    }
                    nextSocialNetworkAccount = SocialNetworkAccount.Get(nextSocialNetworkAccount.ID, myConnection);

                    var query = myConnection.SocialNetworkAccounts.Where(a => a.Member == member);

                    foreach (var item in query)
                    {
                        item.Status = false;

                        myConnection.SubmitChanges();
                    }

                    #endregion

                    nextSocialNetworkAccount.Status = true;

                    myConnection.SubmitChanges();
                }
                SocialNetworkAccount.Delete(socialNetworkAccount, myConnection);

                SocialNetworkAccount.ShowListByMember(lstSocialNetwork, FrmMember.MemberProfile, myConnection);

                if (lstSocialNetwork.Items.Count == 1)
                {
                    btnPhoneDelete.Enabled = false;
                }
            }

            txtSocialAccount.Clear();

            myConnection.Dispose();
        }
        private void btnSocialAccountEdit_Click(object sender, EventArgs e)
        {
            DataBaseDataContext myConnection = Setting.DataBase;

            if (lstSocialNetwork.SelectedItems.Count == 0)
            {
                DataValidationMesaage.NoSelectedItemFromList("لیست اکانت های شبکه های اجتماعی");

                return;
            }

            #region Member Casting

            int memberId = FrmMember.MemberProfile.ID;

            if (!Member.Validation(memberId, myConnection))
            {
                DataValidationMesaage.NoDataInBank();

                return;
            }

            Member member = Member.Get(memberId, myConnection);

            #endregion

            #region SocialNetworkType Casting

            int socialNetworkTypeId = ((SocialNetworkType)cmbSocialAccount.SelectedItem).ID;

            if (!SocialNetworkType.Validation(socialNetworkTypeId, myConnection))
            {
                DataValidationMesaage.NoDataInBank();

                return;
            }

            SocialNetworkType socialNetworkType = SocialNetworkType.Get(socialNetworkTypeId, myConnection);

            #endregion

            #region SocialNetworkAccount Casting

            SocialNetworkAccount socialNetworkAccount = (SocialNetworkAccount)lstSocialNetwork.SelectedItems[0].Tag;

            if (!SocialNetworkAccount.Validation(socialNetworkAccount.ID, myConnection))
            {
                DataValidationMesaage.NoDataInBank();

                return;
            }
            socialNetworkAccount = SocialNetworkAccount.Get(socialNetworkAccount.ID, myConnection);

            #endregion

            DialogResult message = MessageBox.Show("در صورت تایید اکانت فعلی فعال گردیده و مابقی غیرفعال میگردند",
                                                   "کاربر گرامی", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (message == DialogResult.Yes)
            {
                if (lstSocialNetwork.SelectedItems.Count == 0)
                {
                    DataValidationMesaage.NoSelectedItemFromList("لیست اکانت های شبکه های اجتماعی");

                    return;
                }


                var query = myConnection.SocialNetworkAccounts.Where(a => a.Member == member);

                foreach (var item in query)
                {
                    item.Status = false;

                    myConnection.SubmitChanges();
                }

                SocialNetworkAccount.Edit(socialNetworkAccount, socialNetworkType, member, true, txtSocialAccount.Text.Trim(), myConnection);

                txtSocialAccount.Clear();

                SocialNetworkAccount.ShowListByMember(lstSocialNetwork, member, myConnection);
            }

            myConnection.Dispose();
        }
        private void btnSocialAccountSave_Click(object sender, EventArgs e)
        {
            DataBaseDataContext myConnection = Setting.DataBase;

            if (string.IsNullOrWhiteSpace(txtSocialAccount.Text) || string.IsNullOrEmpty(txtSocialAccount.Text))
            {
                DataValidationMesaage.BlankTextBox("اکانت شبکه های اجتماعی");

                return;
            }

            #region Member Casting

            int memberId = FrmMember.MemberProfile.ID;

            if (!Member.Validation(memberId, myConnection))
            {
                DataValidationMesaage.NoDataInBank();

                return;
            }

            Member member = Member.Get(memberId, myConnection);

            #endregion

            #region SocialNetworkType Casting

            int socialNetworkTypeId = ((SocialNetworkType)cmbSocialAccount.SelectedItem).ID;

            if (!SocialNetworkType.Validation(socialNetworkTypeId, myConnection))
            {
                DataValidationMesaage.NoDataInBank();

                return;
            }

            SocialNetworkType socialNetworkType = SocialNetworkType.Get(socialNetworkTypeId, myConnection);

            #endregion

            if (myConnection.SocialNetworkAccounts.Any(
                    a => a.Account == txtSocialAccount.Text.Trim() && a.Member == member &&
                    a.SocialNetworkType == socialNetworkType))
            {
                DataValidationMesaage.DuplicateData(txtSocialAccount.Text.Trim());

                return;
            }

            var query = myConnection.SocialNetworkAccounts.Where(a => a.Member == member);

            foreach (var item in query)
            {
                item.Status = false;

                myConnection.SubmitChanges();
            }



            SocialNetworkAccount socialNetworkAccount = SocialNetworkAccount.Insert(socialNetworkType, member, true, txtSocialAccount.Text.Trim(), myConnection);

            DataValidationMesaage.AcceptMessage(socialNetworkAccount.Account);

            SocialNetworkAccount.ShowListByMember(lstSocialNetwork, member, myConnection);

            txtSocialAccount.Clear();

            if (lstSocialNetwork.Items.Count > 1)
            {
                btnSocialAccountDelete.Enabled = true;
            }

            myConnection.Dispose();
        }