Exemple #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);
        }
Exemple #2
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);
        }
Exemple #3
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);
     }
 }