Example #1
0
        /// <summary>
        /// Add company with a system user
        /// </summary>
        /// <param name="name"></param>
        /// <param name="email"></param>
        public static void AddCompany(string name, string username, string email, string password)
        {
            if (name == null) {
                throw new ArgumentNullException("name");
            }

            if (username == null) {
                throw new ArgumentNullException("username");
            }

            if (email == null) {
                throw new ArgumentNullException("email");
            }

            if (string.IsNullOrEmpty(name)) {
                throw new ArgumentException("name");
            }

            if (string.IsNullOrEmpty(email)) {
                throw new ArgumentException("email");
            }

            // Check for duplicated email
            string emailLow = email.ToLowerInvariant();

            if (!Utils.IsValidEmail(email)) {
                throw new ArgumentException("email", "Invalid email address");
            }

            // Check if there is any system users that has this email.
            var dupEmail = Db.SQL<Simplified.Ring3.EmailAddress>("SELECT o FROM Simplified.Ring3.EmailAddress o WHERE o.EMail=? AND o.ToWhat IS Simplified.Ring3.SystemUser", emailLow).First;
            if (dupEmail != null) {
                throw new ArgumentException("email", "Duplicated email");
            }

            // Check for duplicated username
            var dupUserName = Db.SQL<Simplified.Ring3.SystemUser>("SELECT o FROM Simplified.Ring3.SystemUser o WHERE o.Username=?", username).First;
            if (dupUserName != null) {
                throw new ArgumentException("username", "Duplicated username");
            }

            Organization company = new Organization() { Name = name };

            Simplified.Ring3.SystemUser systemUser = new Simplified.Ring3.SystemUser();
            systemUser.WhatIs = company;
            systemUser.Username = username;
            SetPassword(systemUser, password);

            //// Add ability to also sign in with email
            //EmailAddress emailRel = new EmailAddress();
            //emailRel.SetToWhat(systemUser);
            //emailRel.EMail = emailLow;

            //emailRel = new EMailAddress();
            //emailRel.SetToWhat(company);
            //emailRel.EMail = emailLow;
            company.ImageURL = Utils.GetGravatarUrl(emailLow);
        }
        public Person GetDefaultPerson(Organization Organization) {
            OrganizationPerson op = this.SelectOrganizationPersons(Organization).First;

            if (op != null) {
                return op.Person;
            }

            return null;
        }
        public void Delete(Organization Organization) {
            ContactInfoProvider provider = new ContactInfoProvider();

            foreach (AddressRelation item in provider.SelectAddressRelations(Organization)) {
                item.Address.Delete();
                item.Delete();
            }

            foreach (EmailAddressRelation item in provider.SelectEmailAddressRelations(Organization)) {
                item.EmailAddress.Delete();
                item.Delete();
            }

            foreach (PhoneNumberRelation item in provider.SelectPhoneNumberRelations(Organization)) {
                item.PhoneNumber.Delete();
                item.Delete();
            }

            Organization.Delete();
        }
 public PhoneNumber GetDefaultPhoneNumber(Organization Organization) {
     return Db.SQL<PhoneNumber>("SELECT r.PhoneNumber FROM Simplified.Ring3.PhoneNumberRelation r WHERE r.Somebody = ?", Organization).First;
 }
 public EmailAddress GetDefaultEmailAddress(Organization Organization) {
     return Db.SQL<EmailAddress>("SELECT r.EmailAddress FROM Simplified.Ring3.EmailAddressRelation r WHERE r.Somebody = ?", Organization).First;
 }
 public QueryResultRows<OrganizationPerson> SelectOrganizationPersons(Organization Organization) {
     return Db.SQL<OrganizationPerson>("SELECT op FROM Simplified.Ring2.OrganizationPerson op WHERE op.Organization = ?", Organization);
 }