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); }
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); }
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); }
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); } }
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); }
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); }
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); }