Ejemplo n.º 1
0
        public override State GetInstance(ISession session, ManagedSecurityContext sec)
        {
            State instance = base.GetInstance(session, sec);

            instance.Name    = this.Name;
            instance.Country = session.Load <Country>(ManagedCountry.GetCountryId(session, Country));
            return(instance);
        }
Ejemplo n.º 2
0
        public override AccountAddress GetInstance(ISession session, ManagedSecurityContext sec)
        {
            AccountAddress instance = base.GetInstance(session, sec);

            if (Id == 0)
            {
                instance.Account = base.GetOwner(session, AccountId, sec);
            }
            instance.Apt     = this.Apt;
            instance.City    = this.City;
            instance.Country = session.Load <Country>(ManagedCountry.GetCountryId(session, this.Country));
            instance.Name    = this.Name;
            instance.State   = session.Load <State>(ManagedState.GetStateId(session, this.State, this.Country));
            if (instance.State.Country.Id != instance.Country.Id)
            {
                throw new ManagedCountry.InvalidCountryException();
            }
            instance.Street = this.Street;
            instance.Zip    = this.Zip;
            return(instance);
        }
Ejemplo n.º 3
0
        public static State Find(ISession session, string name, string country)
        {
            State s = (State)session.CreateCriteria(typeof(State))
                      .Add(Expression.Eq("Name", name))
                      .Add(Expression.Eq("Country.Id", string.IsNullOrEmpty(country) ? 0 : ManagedCountry.GetCountryId(session, country)))
                      .UniqueResult();

            if (s == null)
            {
                throw new InvalidStateException();
            }

            return(s);
        }
Ejemplo n.º 4
0
        public int Merge(ManagedSecurityContext sec, string name, string state, string country)
        {
            if (!sec.IsAdministrator())
            {
                throw new ManagedAccount.AccessDeniedException();
            }

            int count = 0;

            // update accounts
            ICriteria accounts_criteria = Session.CreateCriteria(typeof(Account)).Add(Expression.Eq("City", name));

            if (string.IsNullOrEmpty(state))
            {
                accounts_criteria.Add(Expression.IsNull("State"));
            }
            else
            {
                accounts_criteria.Add(Expression.Eq("State.Id", ManagedState.GetStateId(Session, state, country)));
            }
            if (string.IsNullOrEmpty(country))
            {
                accounts_criteria.Add(Expression.IsNull("Country"));
            }
            else
            {
                accounts_criteria.Add(Expression.Eq("Country.Id", ManagedCountry.GetCountryId(Session, country)));
            }
            IList <Account> accounts = accounts_criteria.List <Account>();

            count += accounts.Count;
            foreach (Account account in accounts)
            {
                account.City    = mInstance.Name;
                account.Country = mInstance.Country;
                account.State   = mInstance.State;
                Session.Save(account);
            }

            // update account addresses
            ICriteria accountaddresses_criteria = Session.CreateCriteria(typeof(AccountAddress)).Add(Expression.Eq("City", name));

            if (string.IsNullOrEmpty(state))
            {
                accountaddresses_criteria.Add(Expression.IsNull("State"));
            }
            else
            {
                accountaddresses_criteria.Add(Expression.Eq("State.Id", ManagedState.GetStateId(Session, state, country)));
            }
            if (string.IsNullOrEmpty(country))
            {
                accountaddresses_criteria.Add(Expression.IsNull("Country"));
            }
            else
            {
                accountaddresses_criteria.Add(Expression.Eq("Country.Id", ManagedCountry.GetCountryId(Session, country)));
            }
            IList <AccountAddress> accountaddresses = accountaddresses_criteria.List <AccountAddress>();

            count += accountaddresses.Count;
            foreach (AccountAddress accountaddress in accountaddresses)
            {
                accountaddress.City    = mInstance.Name;
                accountaddress.Country = mInstance.Country;
                accountaddress.State   = mInstance.State;
                Session.Save(accountaddress);
            }

            return(count);
        }