public void PopulateContactes()
 {
     Contactes        = context.contactes.ToList().OrderBy(x => x.cognoms).ThenBy(x => x.nom).ToList();
     ContacteSelected = Contactes.FirstOrDefault();
 }
        public void BtsClick(string rbName)
        {
            RbNameActual = rbName;
            switch (rbName)
            {
            case "HabilitarMulti":
                IsMultiEnabled = true;
                break;

            /* Buttons CRUD */

            case "afegirContactes":
                contacte co = new contacte();
                co = ContacteSelected;
                context.contactes.Add(co);
                try
                {
                    context.SaveChanges();
                }
                catch (Exception ex) { }
                BtsClick("rbContactes");
                PopulateEmailsTelefons();
                break;

            case "modificarContactes":
                OnNewModalDialog();
                if (respuesta == 1)
                {
                    contacte c = context.contactes.Where(x => x.contacteId == ContacteSelected.contacteId).FirstOrDefault();
                    try
                    {
                        c = ContacteSelected;
                    }
                    catch (Exception ex)
                    {
                    }
                    context.SaveChanges();
                    //BtsClick("rbContactes");
                    PopulateEmailsTelefons();
                }
                break;

            case "esborrarContactes":
                OnNewModalDialog();
                if (respuesta == 1)
                {
                    try
                    {
                        context.contactes.Remove(ContacteSelected);
                    }
                    catch (Exception ex) { }
                    context.SaveChanges();
                    PopulateEmailsTelefons();
                    BtsClick("rbContactes");
                }
                break;

            case "DuplicarContactes":
                OnNewModalDialog();
                if (respuesta == 1)
                {
                    contacte con = new contacte();
                    con.nom     = ContacteSelected.nom;
                    con.cognoms = ContacteSelected.cognoms;
                    context.contactes.Add(con);
                    context.SaveChanges();

                    List <telefon> telefons = ContacteSelected.telefons.ToList();
                    List <email>   emails   = ContacteSelected.emails.ToList();

                    foreach (telefon item in telefons)
                    {
                        telefon tel = new telefon();
                        tel.contacteId = con.contacteId;
                        tel.telefon1   = item.telefon1;
                        tel.tipus      = item.tipus;
                        con.telefons.Add(tel);
                    }

                    foreach (email item in emails)
                    {
                        email ema = new email();
                        ema.contacteId = con.contacteId;
                        ema.email1     = item.email1;
                        ema.tipus      = item.tipus;
                        con.emails.Add(ema);
                    }

                    try
                    {
                        context.SaveChanges();
                    }
                    catch (Exception) {}
                    PopulateEmailsTelefons();
                    BtsClick("rbContactes");
                }
                break;

            case "afegirTelefons":
                telefon t = new telefon();
                t.tipus    = TipusT;
                t.telefon1 = Telefon1;

                ContacteSelected.telefons.Add(t);
                //context.telefons.Add(t);
                try
                {
                    context.SaveChanges();
                }
                catch (Exception ex) { }
                PopulateEmailsTelefons();
                //BtsClick("rbTelefons");
                break;

            case "modificarTelefons":
                OnNewModalDialog();
                if (respuesta == 1)
                {
                    telefon te = context.telefons.Where(x => x.contacteId == TelefonSelected.contacteId).FirstOrDefault();
                    try
                    {
                        te.telefon1 = Telefon1;
                        te.tipus    = TipusT;
                    }
                    catch (Exception ex)
                    {
                    }
                    context.SaveChanges();
                    PopulateEmailsTelefons();
                }
                //BtsClick("rbTelefons");
                break;

            case "esborrarTelefons":
                OnNewModalDialog();
                if (respuesta == 1)
                {
                    try
                    {
                        context.telefons.Remove(TelefonSelected);
                    }
                    catch (Exception ex) { }
                    context.SaveChanges();
                    PopulateEmailsTelefons();
                }
                //BtsClick("rbTelefons");
                break;

            case "afegirEmails":
                email e = new email();
                e.tipus  = TipusE;
                e.email1 = Email1;

                ContacteSelected.emails.Add(e);
                try
                {
                    context.SaveChanges();
                }
                catch (Exception ex) { }
                //BtsClick("rbEmails");
                PopulateEmailsTelefons();
                break;

            case "modificarEmails":
                OnNewModalDialog();
                if (respuesta == 1)
                {
                    email em = context.emails.Where(x => x.contacteId == EmailSelected.contacteId).FirstOrDefault();
                    try
                    {
                        em.email1 = Email1;
                        em.tipus  = TipusE;
                    }
                    catch (Exception ex)
                    {
                    }
                    context.SaveChanges();
                    PopulateEmailsTelefons();
                }
                //BtsClick("rbEmails");
                break;

            case "esborrarEmails":
                OnNewModalDialog();
                if (respuesta == 1)
                {
                    try
                    {
                        context.emails.Remove(EmailSelected);
                    }
                    catch (Exception ex)
                    {
                    }
                    context.SaveChanges();
                    PopulateEmailsTelefons();
                }
                //BtsClick("rbEmails");
                break;


            /* Radio Buttons Columnas */

            case "rbContactes":
                BtsClick("rbSenseContactes");
                EnableContactes();
                RbColumnaActual  = "contactes";
                Contactes        = context.contactes.ToList().OrderBy(x => x.cognoms).ThenBy(x => x.nom).ToList();
                ContacteSelected = Contactes.FirstOrDefault();
                break;

            case "rbTelefons":
                BtsClick("rbSenseTelefons");
                EnableTelefons();
                RbColumnaActual = "telefons";
                Telefons        = context.telefons.OrderBy(x => x.tipus).ToList();
                TelefonSelected = Telefons.FirstOrDefault();
                break;

            case "rbEmails":
                BtsClick("rbSenseEmails");
                EnableEmails();
                RbColumnaActual = "emails";
                Emails          = context.emails.ToList().OrderBy(x => x.email1).ToList();
                EmailSelected   = Emails.FirstOrDefault();
                break;


            /* Contactes */

            case "rbConteContacte":
                Contactes        = context.contactes.Where(x => x.nom.Contains(TextBoxContactes) || x.cognoms.Contains(TextBoxContactes)).OrderBy(x => x.cognoms).ThenBy(x => x.nom).ToList();
                ContacteSelected = Contactes.FirstOrDefault();
                EnableContactes();
                RbColumnaActual = "contactes";
                break;

            case "rbComençaContacte":
                Contactes        = context.contactes.Where(x => x.nom.StartsWith(TextBoxContactes) || x.cognoms.StartsWith(TextBoxContactes)).OrderBy(x => x.cognoms).ThenBy(x => x.nom).ToList();
                ContacteSelected = Contactes.FirstOrDefault();
                EnableContactes();
                RbColumnaActual = "contactes";
                break;

            case "rbAcabaContacte":
                Contactes        = context.contactes.Where(x => x.nom.EndsWith(TextBoxContactes) || x.cognoms.EndsWith(TextBoxContactes)).OrderBy(x => x.cognoms).ThenBy(x => x.nom).ToList();
                ContacteSelected = Contactes.FirstOrDefault();
                EnableContactes();
                RbColumnaActual = "contactes";
                break;

            case "rbSenseContacte":
                BtsClick("rbSenseContactes");
                EnableContactes();
                RbColumnaActual  = "contactes";
                Contactes        = context.contactes.ToList().OrderBy(x => x.cognoms).ThenBy(x => x.nom).ToList();
                ContacteSelected = Contactes.FirstOrDefault();
                break;


            /* Telèfons */

            case "rbConteTelefon":
                Telefons        = context.telefons.Where(x => x.telefon1.Contains(TextBoxTelefons) || x.tipus.Contains(TextBoxTelefons)).OrderBy(x => x.tipus).ToList();
                TelefonSelected = Telefons.FirstOrDefault();
                EnableTelefons();
                RbColumnaActual = "telefons";
                break;

            case "rbComençaTelefon":
                Telefons        = context.telefons.Where(x => x.telefon1.StartsWith(TextBoxTelefons) || x.tipus.StartsWith(TextBoxTelefons)).OrderBy(x => x.tipus).ToList();
                TelefonSelected = Telefons.FirstOrDefault();
                EnableTelefons();
                RbColumnaActual = "telefons";
                break;

            case "rbAcabaTelefon":
                Telefons        = context.telefons.Where(x => x.telefon1.EndsWith(TextBoxTelefons) || x.tipus.EndsWith(TextBoxTelefons)).OrderBy(x => x.tipus).ToList();
                TelefonSelected = Telefons.FirstOrDefault();
                EnableTelefons();
                RbColumnaActual = "telefons";
                break;

            case "rbSenseTelefon":
                BtsClick("rbSenseTelefons");
                EnableTelefons();
                RbColumnaActual = "telefons";
                Telefons        = context.telefons.OrderBy(x => x.tipus).ToList();
                TelefonSelected = Telefons.FirstOrDefault();
                break;


            /* Emails */

            case "rbConteEmail":
                Emails        = context.emails.Where(x => x.email1.Contains(TextBoxEmails) || x.tipus.Contains(TextBoxEmails)).OrderBy(x => x.email1).ToList();
                EmailSelected = Emails.FirstOrDefault();
                EnableEmails();
                RbColumnaActual = "emails";
                break;

            case "rbComençaEmail":
                Emails        = context.emails.Where(x => x.email1.StartsWith(TextBoxEmails) || x.tipus.StartsWith(TextBoxEmails)).OrderBy(x => x.email1).ToList();
                EmailSelected = Emails.FirstOrDefault();
                EnableEmails();
                RbColumnaActual = "emails";
                break;

            case "rbAcabaEmail":
                Emails        = context.emails.Where(x => x.email1.EndsWith(TextBoxEmails) || x.tipus.EndsWith(TextBoxEmails)).OrderBy(x => x.email1).ToList();
                EmailSelected = Emails.FirstOrDefault();
                EnableEmails();
                RbColumnaActual = "emails";
                break;

            case "rbSenseEmail":
                BtsClick("rbSenseEmails");
                EnableEmails();
                RbColumnaActual = "emails";
                Emails          = context.emails.ToList().OrderBy(x => x.email1).ToList();
                EmailSelected   = Emails.FirstOrDefault();
                break;
            }
        }