Example #1
0
        private string GetRowKey(IContactDetails contactsDetails)
        {
            string concatValue = $"{contactsDetails.Name}-{contactsDetails.SourcePhoneNumber}";

            concatValue = DisallowedCharsInTableKeys.Replace(concatValue, "*");
            return(concatValue);
        }
        private void ValidateContactDetailsRules(IContactDetails contactDetailsResource, List <ValidationResult> results, ContactDetails contactDetails, bool validateModelForPost)
        {
            if (contactDetailsResource == null)
            {
                return;
            }
            //Check PreferredContactMethod being patched
            ValidatePreferredContact(contactDetailsResource, results, contactDetails,
                                     validateModelForPost, contactDetailsResource.PreferredContactMethod);

            //if PreferredContactMethod is empty in the request check against one already in record
            if (!contactDetailsResource.PreferredContactMethod.HasValue && contactDetails != null)
            {
                ValidatePreferredContact(contactDetailsResource, results, contactDetails,
                                         validateModelForPost, contactDetails.PreferredContactMethod);
            }

            if (contactDetailsResource.LastModifiedDate.HasValue && contactDetailsResource.LastModifiedDate.Value > DateTime.UtcNow)
            {
                results.Add(new ValidationResult("Last Modified Date must be less the current date/time", new[] { "LastModifiedDate" }));
            }

            if (contactDetailsResource.PreferredContactMethod.HasValue && !Enum.IsDefined(typeof(PreferredContactMethod), contactDetailsResource.PreferredContactMethod.Value))
            {
                results.Add(new ValidationResult("Please supply a valid Preferred Contact Method", new[] { "PreferredContactMethod" }));
            }
        }
Example #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="T:B4F.TotalGiro.CRM.Person">Person</see> class.
 /// </summary>
 public ContactPerson(string FirstName, string MiddleName,Gender ContactGender, INationality nationality,
     string LastName, Address postalAddress, Address residentialAddress, IContactDetails contactDetails )
     : base(LastName, postalAddress, residentialAddress, contactDetails)
 {
     this.FirstName = FirstName;
     this.MiddleName = MiddleName;
     this.Gender = ContactGender;
     this.Nationality = nationality;
 }
        public List <ValidationResult> ValidateResource(IContactDetails resource, ContactDetails contactdetails, bool validateModelForPost)
        {
            var context = new ValidationContext(resource, null, null);
            var results = new List <ValidationResult>();

            Validator.TryValidateObject(resource, context, results, true);
            ValidateContactDetailsRules(resource, results, contactdetails, validateModelForPost);

            return(results);
        }
Example #5
0
 public void ConvertTo(ref IContactDetails contactsDetails)
 {
     contactsDetails.PhoneNumber       = this.PartitionKey;
     contactsDetails.RowKey            = this.RowKey;
     contactsDetails.SourcePhoneNumber = this.SourcePhoneNumber;
     contactsDetails.Name         = this.Name;
     contactsDetails.Disabled     = this.Disabled;
     contactsDetails.Reported     = this.Reported;
     contactsDetails.ForbidenWord = this.ForbidenWord;
 }
Example #6
0
        /// <summary>
        /// Creates a new contact and saves it to external store.
        /// </summary>
        /// <param name="contactDetails">Contact details value object.</param>
        /// <returns>New Contact created.</returns>
        public Contact CreateNewContact(IContactDetails contactDetails)
        {
            ContactDetailsValidator contactDetailsValidator = new ContactDetailsValidator();

            contactDetailsValidator.ValidateAndThrow(contactDetails);

            ContactAddress contactAddress = new ContactAddress(contactDetails.StreetAndNumber, contactDetails.City, contactDetails.PostalCode, contactDetails.Country);
            Contact        newContact     = new Contact(Guid.NewGuid(), contactDetails.FirstName, contactDetails.LastName, contactDetails.TelephoneNumber, contactAddress);

            _contactOrganizerRepository.CreateNewContact(newContact);
            return(newContact);
        }
Example #7
0
        public void Add(IContactDetails value)
        {
            if (DissallowNullValues && value == null)
            {
                return;
            }
            if (_innerHashSet.Contains(value.PhoneNumber))
            {
                return;
            }

            _innerHashSet.Add(value.PhoneNumber);
            ObjAdjustedToDb.Rows.Add(value.PhoneNumber, value.SourcePhoneNumber, value.Name);
        }
Example #8
0
        /// <summary>
        /// Updates contact details.
        /// </summary>
        /// <param name="contactId">Contact unique ID.</param>
        /// <param name="contactDetails">Contact details value object.</param>
        public Contact UpdateContactDetails(Guid contactId, IContactDetails contactDetails)
        {
            ContactDetailsValidator contactDetailsValidator = new ContactDetailsValidator();

            contactDetailsValidator.ValidateAndThrow(contactDetails);

            Contact        contact        = _contactOrganizerRepository.GetContactById(contactId);
            ContactAddress contactAddress = new ContactAddress(contactDetails.StreetAndNumber, contactDetails.City, contactDetails.PostalCode, contactDetails.Country);

            contact.UpdateDetails(contactDetails.FirstName, contactDetails.LastName, contactDetails.TelephoneNumber, contactAddress);
            _contactOrganizerRepository.UpdateContactDetails(contact);

            return(contact);
        }
Example #9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CarDeliveryNetwork.Api.Data.ContactDetails"/> class
 /// with fields copied from the specified contact
 /// </summary>
 /// <param name="c">The contact to copy into this new instance</param>
 public ContactDetails(IContactDetails c)
 {
     QuickCode        = c.QuickCode;
     LocationCode     = c.LocationCode;
     Contact          = c.Contact;
     OrganisationName = c.OrganisationName;
     AddressLines     = c.AddressLines;
     City             = c.City;
     StateRegion      = c.StateRegion;
     ZipPostCode      = c.ZipPostCode;
     Email            = c.Email;
     Fax         = c.Fax;
     Phone       = c.Phone;
     MobilePhone = c.MobilePhone;
     OtherPhone  = c.OtherPhone;
     Notes       = c.Notes;
 }
Example #10
0
        public ContactDetailsEntity(IContactDetails contactsDetails)
        {
            this.PartitionKey = contactsDetails.PhoneNumber;
            if (string.IsNullOrEmpty(contactsDetails.RowKey))
            {
                this.RowKey = GetRowKey(contactsDetails);
            }
            else
            {
                this.RowKey = contactsDetails.RowKey;
            }

            this.SourcePhoneNumber = contactsDetails.SourcePhoneNumber;
            this.Name         = contactsDetails.Name;
            this.Disabled     = contactsDetails.Disabled;
            this.Reported     = contactsDetails.Reported;
            this.ForbidenWord = contactsDetails.ForbidenWord;
        }
Example #11
0
        private static ICompanyContactPerson CreateCompanyContactPerson(IDalSession session,
                                                        IContactCompany company,
                                                        string BurgerServiceNummer,
                                                        string Voorletters,
                                                        string Tussenvoegsels,
                                                        string Naam,
                                                        Address PostalAddress,
                                                        Address ResidentialAddress,
                                                        IContactDetails ContactDetails,
                                                        Gender ContactGender,
                                                        INationality ContactNationality,
                                                        IIdentification Id,
                                                        DateTime Dob,
                                                        IManagementCompany AssetManager,
                                                        DateTime creationdate)
        {
            ICompanyContactPerson cmpcp = null;
            IContactPerson contact = null;

            if (company != null && !string.IsNullOrEmpty(Naam))
            {
                if (!LookupContactPersonByBSN(session, BurgerServiceNummer, out contact))
                {
                    contact = new ContactPerson(Voorletters,
                                                    Tussenvoegsels,
                                                    ContactGender,
                                                    ContactNationality,
                                                    Naam,
                                                    PostalAddress,
                                                    ResidentialAddress,
                                                    ContactDetails);
                    contact.BurgerServiceNummer = BurgerServiceNummer;
                    contact.AssetManager = (IAssetManager)AssetManager;
                    contact.Identification = Id;
                    contact.DateOfBirth = Dob;
                    contact.CreationDate = creationdate;
                }
                cmpcp = new CompanyContactPerson(contact, company);
            }
            return cmpcp;
        }
Example #12
0
        private static IContactCompany CreateContactCompany(IDalSession session,
                                                        string KvKNummer,
                                                        string Naam,
                                                        Address PostalAddress,
                                                        Address ResidentialAddress,
                                                        IContactDetails ContactDetails,
                                                        DateTime dateOfFounding,
                                                        IManagementCompany AssetManager,
                                                        DateTime creationdate)
        {
            IContactCompany theCompany = null;

            if (!LookupContactCompanybyKVK(session, KvKNummer, out theCompany))
            {
                theCompany = new ContactCompany(Naam, PostalAddress, ResidentialAddress, ContactDetails, KvKNummer);
            }
            theCompany.DateOfFounding = dateOfFounding;
            theCompany.AssetManager = (IAssetManager)AssetManager;
            theCompany.CreationDate = creationdate;

            return theCompany;
        }
Example #13
0
 public static string GetTown(IContactDetails that) => that.Value <string>("town");
Example #14
0
 public static string GetTelephone(IContactDetails that) => that.Value <string>("telephone");
Example #15
0
 public static string GetRegion(IContactDetails that) => that.Value <string>("region");
Example #16
0
 public static string GetPostZipCode(IContactDetails that) => that.Value <string>("postZipCode");
Example #17
0
 public static string GetEmail(IContactDetails that) => that.Value <string>("email");
Example #18
0
 public static string GetCountry(IContactDetails that) => that.Value <string>("country");
Example #19
0
 public static string GetCity(IContactDetails that) => that.Value <string>("city");
Example #20
0
 public static string GetAddress2(IContactDetails that) => that.Value <string>("address2");
Example #21
0
        private static IContactPerson CreateContactPerson(IDalSession session,
                                                        string BurgerServiceNummer,
                                                        string Voorletters,
                                                        string Tussenvoegsels,
                                                        string Naam,
                                                        Address PostalAddress,
                                                        Address ResidentialAddress,
                                                        IContactDetails ContactDetails,
                                                        Gender ContactGender,
                                                        INationality ContactNationality,
                                                        IIdentification Id,
                                                        DateTime Dob,
                                                        IManagementCompany AssetManager,
                                                        DateTime creationdate)
        {
            IContactPerson theContact = null;

            //1st see if the contact exists
            if (!LookupContactPersonByBSN(session, BurgerServiceNummer, out theContact))
            {
                if (!string.IsNullOrEmpty(Naam))
                {
                    theContact = new ContactPerson(Voorletters,
                                                    Tussenvoegsels,
                                                    ContactGender,
                                                    ContactNationality,
                                                    Naam,
                                                    PostalAddress,
                                                    ResidentialAddress,
                                                    ContactDetails);
                    theContact.BurgerServiceNummer = BurgerServiceNummer;
                    theContact.AssetManager = (IAssetManager)AssetManager;
                    theContact.Identification = Id;
                    theContact.DateOfBirth = Dob;
                    theContact.CreationDate = creationdate;
                }
            }
            return theContact;
        }
        private void ValidatePreferredContact(IContactDetails contactDetailsResource, List <ValidationResult> results, ContactDetails contactDetails, bool validateModelForPost, PreferredContactMethod?preferredContactMethod)
        {
            //New validation for empty strings
            if (validateModelForPost)
            {
                switch (preferredContactMethod)
                {
                case PreferredContactMethod.Email:
                    if (string.IsNullOrWhiteSpace(contactDetailsResource.EmailAddress))
                    {
                        results.Add(new ValidationResult("Preferred Contact Method is Email so Email Address must be supplied.", new[] { "EmailAddress" }));
                    }
                    break;

                case PreferredContactMethod.Mobile:
                    if (string.IsNullOrWhiteSpace(contactDetailsResource.MobileNumber))
                    {
                        results.Add(new ValidationResult("Preferred Contact Method is Mobile so Mobile Number must be supplied.", new[] { "MobileNumbers", "AlternativeNumber" }));
                    }
                    break;

                case PreferredContactMethod.Telephone:
                    if (string.IsNullOrWhiteSpace(contactDetailsResource.HomeNumber))
                    {
                        results.Add(new ValidationResult("Preferred Contact Method is Telephone so Home Number must be supplied.", new[] { "HomeNumber", "AlternativeNumber" }));
                    }
                    break;

                case PreferredContactMethod.SMS:
                    if (string.IsNullOrWhiteSpace(contactDetailsResource.MobileNumber))
                    {
                        results.Add(new ValidationResult("Preferred Contact Method is SMS so Mobile Number must be supplied.", new[] { "MobileNumbers" }));
                    }
                    break;
                }
            }
            else
            {
                switch (preferredContactMethod)
                {
                case PreferredContactMethod.Email:
                    if (contactDetailsResource.EmailAddress == "" ||
                        (string.IsNullOrWhiteSpace(contactDetailsResource.EmailAddress) && string.IsNullOrWhiteSpace(contactDetails.EmailAddress)))
                    {
                        results.Add(new ValidationResult("Preferred Contact Method is Email so Email Address must be supplied.", new[] { "EmailAddress" }));
                    }
                    break;

                case PreferredContactMethod.Mobile:
                    if (contactDetailsResource.MobileNumber == "" ||
                        (string.IsNullOrWhiteSpace(contactDetailsResource.MobileNumber) && string.IsNullOrWhiteSpace(contactDetails.MobileNumber)))
                    {
                        results.Add(new ValidationResult("Preferred Contact Method is Mobile so Mobile Number must be supplied.", new[] { "MobileNumbers", "AlternativeNumber" }));
                    }
                    break;

                case PreferredContactMethod.Telephone:
                    if (contactDetailsResource.HomeNumber == "" ||
                        (string.IsNullOrWhiteSpace(contactDetailsResource.HomeNumber) && string.IsNullOrWhiteSpace(contactDetails.HomeNumber)))
                    {
                        results.Add(new ValidationResult("Preferred Contact Method is Telephone so Home Number must be supplied.", new[] { "HomeNumber", "AlternativeNumber" }));
                    }
                    break;

                case PreferredContactMethod.SMS:
                    if (contactDetailsResource.MobileNumber == "" ||
                        (string.IsNullOrWhiteSpace(contactDetailsResource.MobileNumber) && string.IsNullOrWhiteSpace(contactDetails.MobileNumber)))
                    {
                        results.Add(new ValidationResult("Preferred Contact Method is SMS so Mobile Number must be supplied.", new[] { "MobileNumbers" }));
                    }
                    break;
                }
            }
        }
Example #23
0
 public ContactCompany(string LastName, Address postalAddress, Address residentialAddress, IContactDetails contactDetails, string KvKNumber)
     : base(LastName, postalAddress, residentialAddress, contactDetails)
 {
     this.KvKNumber = KvKNumber;
 }
Example #24
0
 /// <summary>
 /// Initializes a new instance of the <see cref="T:B4F.TotalGiro.CRM.ContactCompany">ContactCompany</see> class.
 /// </summary>
 public ContactCompany(string LastName, Address postalAddress, Address residentialAddress, IContactDetails contactDetails, DateTime DateOfFounding, string KvKNumber)
     : base(LastName, postalAddress, residentialAddress, contactDetails)
 {
     this.DateOfFounding = DateOfFounding;
     this.KvKNumber = KvKNumber;
 }