public User RemoveMail(string email)
        {
            var mail = Emails.FirstOrDefault(x => x.Value == email);

            Emails.Remove(mail);
            return(this);
        }
        public void Move_last_user_to_another_client()
        {
            var oldClient = DataMother.CreateTestClientWithAddressAndUser();
            var oldUser   = oldClient.Users[0];
            var address   = oldClient.Addresses[0];

            oldUser.AvaliableAddresses = new List <Address>();
            address.AvaliableForUsers.Add(oldUser);
            var newClient = DataMother.CreateTestClientWithAddressAndUser();

            controller.MoveUserOrAddress(newClient.Id, oldUser.Id, address.Id, newClient.Orgs().First().Id, false);
            controller.SendMails();
            session.Flush();

            session.Refresh(oldClient);
            session.Refresh(newClient);
            session.Refresh(oldUser);
            Assert.That(oldUser.Client.Id, Is.EqualTo(newClient.Id));

            Assert.That(newClient.Users.Count, Is.EqualTo(2));
            Assert.That(oldClient.Users.Count, Is.EqualTo(0));

            Assert.That(newClient.Addresses.Count, Is.EqualTo(1));
            Assert.That(oldClient.Addresses.Count, Is.EqualTo(1));

            Assert.That(oldClient.Status, Is.EqualTo(ClientStatus.On));
            Assert.That(Emails.FirstOrDefault(m => m.Subject.Contains("Перемещение пользователя")),
                        Is.Not.Null, "не могу найти уведомление о перемещении");
        }
        public User UpdateMail(string email, string value)
        {
            var mail = Emails.FirstOrDefault(x => x.Value == email);

            if (mail == null)
            {
                throw new BusinessException("Email could not find!");
            }
            mail.Value = value;
            return(this);
        }
        public void Move_address()
        {
            var src     = DataMother.CreateTestClientWithAddress();
            var dst     = DataMother.TestClient();
            var address = src.Addresses[0];

            //должны быть уникальные имена что можно было сделать проверку на правильность написания письма
            MakeNameUniq(src);
            MakeNameUniq(src.Payers);
            MakeNameUniq(src.Payers.SelectMany(p => p.Orgs));

            MakeNameUniq(dst);
            MakeNameUniq(dst.Payers);
            MakeNameUniq(dst.Payers.SelectMany(p => p.Orgs));

            controller.MoveUserOrAddress(dst.Id,
                                         0u,
                                         address.Id,
                                         dst.Orgs().First().Id,
                                         true);
            controller.SendMails();
            session.Flush();

            session.Refresh(dst);
            session.Refresh(src);

            Assert.That(src.Addresses.Count, Is.EqualTo(0));
            Assert.That(src.Disabled, Is.True);
            Assert.That(dst.Addresses.Count, Is.EqualTo(1));
            Assert.That(dst.Addresses[0].Id, Is.EqualTo(address.Id));
            var mail = Emails.FirstOrDefault(m => m.Subject.Contains("Перемещение адреса доставки"));

            Assert.That(mail,
                        Is.Not.Null, "не могу найти уведомление о перемещении " + Emails.Select(n => n.Subject).Implode());
            Assert.That(mail.Body, Is.StringContaining(String.Format("Старый клиент {0} плательщик {1} юр.лицо {2}",
                                                                     src.Name,
                                                                     src.Payers[0].Name,
                                                                     src.Payers[0].Orgs[0].Name)));
            Assert.That(mail.Body, Is.StringContaining(String.Format("Новый клиент {0} плательщик {1} юр.лицо {2}",
                                                                     dst.Name,
                                                                     dst.Payers[0].Name,
                                                                     dst.Payers[0].Orgs[0].Name)));
        }
        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;
            }
        }
Example #6
0
        public void UpdateFrom(IContactInfo source, bool suppressIsChanged)
        {
            FirstName  = source.FirstName;
            MiddleName = source.MiddleName;
            LastName   = source.LastName;
            Company    = source.Company;
            JobTitle   = source.JobTitle;
            Note       = source.Note;
            Key        = source.Key;
            VersionKey = source.VersionKey == null ? String.Empty : source.VersionKey.ToString();

            // Phone numbers
            foreach (var item in source.PhoneNumbers)
            {
                var phoneNumber = PhoneNumbers.FirstOrDefault(x => x.Key == item.Key);
                if (phoneNumber != null)
                {
                    phoneNumber.UpdateFrom(item);
                }
                else
                {
                    PhoneNumbers.Add(new ContactPhoneLocal(item, AddressBook));
                }
            }
            foreach (var item in PhoneNumbers.Where(x => source.PhoneNumbers.All(y => x.Key != y.Key)).ToArray())
            {
                PhoneNumbers.Remove(item);
            }

            // Emails
            foreach (var item in source.Emails)
            {
                var email = Emails.FirstOrDefault(x => x.Key == item.Key);
                if (email != null)
                {
                    email.UpdateFrom(item);
                }
                else
                {
                    Emails.Add(new ContactEmailLocal(item, AddressBook));
                }
            }
            foreach (var item in Emails.Where(x => source.Emails.All(y => x.Key != y.Key)).ToArray())
            {
                Emails.Remove(item);
            }

            // Tags
            foreach (var item in source.Tags)
            {
                var tag = Tags.FirstOrDefault(x => x.Key == item.Key);
                if (tag != null)
                {
                    tag.UpdateFrom(item);
                }
                else
                {
                    var newTag = _contactsManager.Tags.FirstOrDefault(x => x.Key == item.Key);
                    if (newTag != null)
                    {
                        Tags.Add(newTag);
                    }
                }
            }
            foreach (var item in Tags.Where(x => source.Tags.All(y => x.Key != y.Key)).ToArray())
            {
                Tags.Remove(item);
            }

            if (suppressIsChanged)
            {
                IsChanged = false;
            }
        }
Example #7
0
 public override string ToString()
 {
     return($"{FirstName} {LastName} {MiddleName} {Emails.FirstOrDefault()} {Company}");
 }
 /// <summary>
 /// Gets the first email received from the specified simple SMTP server.
 /// </summary>
 /// <returns>An SmtpMessage</returns>
 public static Mail_Message FirstEmail()
 {
     return(Emails.FirstOrDefault());
 }