Esempio n. 1
0
        public static City Find(ISession session, string name, string state, string country)
        {
            if (string.IsNullOrEmpty(country))
            {
                throw new ManagedCountry.InvalidCountryException();
            }

            ICriteria cr = session.CreateCriteria(typeof(City))
                           .Add(Expression.Or(Expression.Eq("Name", name), Expression.Eq("Tag", name)));

            Country c = ManagedCountry.Find(session, country);

            cr.Add(Expression.Eq("Country.Id", c.Id));

            if (c.States != null && c.States.Count > 0 && string.IsNullOrEmpty(state))
            {
                throw new ManagedState.InvalidStateException();
            }

            if (!string.IsNullOrEmpty(state))
            {
                State s = ManagedState.Find(session, state, country);
                cr.Add(Expression.Eq("State.Id", s.Id));
            }

            City city = (City)cr.UniqueResult();

            if (city == null)
            {
                throw new InvalidCityException();
            }

            return(city);
        }
Esempio n. 2
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);
        }
Esempio n. 3
0
        public override City GetInstance(ISession session, ManagedSecurityContext sec)
        {
            City instance = base.GetInstance(session, sec);

            instance.Name    = this.Name;
            instance.Tag     = this.Tag;
            instance.State   = string.IsNullOrEmpty(State) ? null : ManagedState.Find(session, State, Country);
            instance.Country = string.IsNullOrEmpty(Country) ? null : ManagedCountry.Find(session, Country);
            return(instance);
        }
Esempio n. 4
0
 public static City FindOrCreate(ISession session, string name, string state, string country)
 {
     try
     {
         return(Find(session, name, state, country));
     }
     catch (InvalidCityException)
     {
         City city = new City();
         city.Country = ManagedCountry.Find(session, country);
         if (!string.IsNullOrEmpty(state))
         {
             city.State = ManagedState.Find(session, state, country);
         }
         city.Name = name;
         session.Save(city);
         return(city);
     }
 }
Esempio n. 5
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);
        }
Esempio n. 6
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);
        }
Esempio n. 7
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);
        }