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