예제 #1
0
        protected IQueryable <UserAccount> GetAllUserAccountsImpl(
            [NotNull] USTDataContext context)
        {
            ThrowIfNull(context);

            return(context.UserAccounts);
        }
예제 #2
0
        protected static AuthenticationResult TryAuthenticate(string username, string password, out UserAccount userAccount)
        {
            try
            {
                using (var context = new USTDataContext())
                {
                    var currentUserAccount = I.FetchUserFromUsernameAccountImpl(context, username);

                    if (currentUserAccount == null)
                    {
                        userAccount = default(UserAccount);
                        return(AuthenticationResult.UsernameError);
                    }

                    if (currentUserAccount.Password == password)
                    {
                        I.CurrentUserAccount = currentUserAccount;
                        userAccount          = currentUserAccount;
                        return(AuthenticationResult.Success);
                    }

                    userAccount = default(UserAccount);
                    return(AuthenticationResult.PasswordError);
                }
            }
            catch (Exception ex)
            {
                userAccount = default(UserAccount);
                return(AuthenticationResult.UnknownError);
            }
        }
예제 #3
0
 public State[] GetAllStates()
 {
     using (var context = new USTDataContext())
     {
         return(context.States.ToArray());
     }
 }
예제 #4
0
 public UserAccount[] GetAllUserAccountsExcludingActive()
 {
     using (var context = new USTDataContext())
     {
         return(GetAllUserAccountsExcludingActiveImpl(context).ToArray());
     }
 }
예제 #5
0
        protected UserAccount FetchUserFromUsernameAccountImpl(
            [NotNull] USTDataContext context,
            string username)
        {
            ThrowIfNull(context);

            return(context.UserAccounts.SingleOrDefault(t => t.Username == username));
        }
예제 #6
0
        protected UserAccount FetchUserAccountImpl(
            [NotNull] USTDataContext context,
            int userAccountID)
        {
            ThrowIfNull(context);

            return(context.UserAccounts.SingleOrDefault(t => t.UserAccountID == userAccountID));
        }
예제 #7
0
        protected State FetchStateImpl(
            USTDataContext context,
            int stateID)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            return(context.States.SingleOrDefault(t => t.StateID == stateID));
        }
예제 #8
0
        protected IQueryable <JobAssignment> GetJobAssignmentsImpl(
            USTDataContext context,
            int jobAssignmentID)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            return(context.JobAssignments.Where(t => t.JobAssignmentID == jobAssignmentID));
        }
예제 #9
0
        protected JobAssignmentGroup FetchJobAssignmentGroupImpl(
            USTDataContext context,
            int jobAssignmentGroupID)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            return(context.JobAssignmentGroups.SingleOrDefault(t => t.AssignmentGroupID == jobAssignmentGroupID));
        }
예제 #10
0
        protected City FetchCityByLegacyMonikerCaseInsensitiveImpl(
            USTDataContext context,
            string legacyCityMoniker)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            return(context.Cities.SingleOrDefault(t => SqlMethods.Like(t.LegacyLocationMoniker, legacyCityMoniker)));
        }
예제 #11
0
        protected City FetchCityImpl(
            [NotNull] USTDataContext context,
            int cityID)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            return(context.Cities.SingleOrDefault(t => t.CityID == cityID));
        }
예제 #12
0
        protected IQueryable <UserAccount> GetAllUserAccountsExcludingActiveImpl(
            [NotNull] USTDataContext context)
        {
            ThrowIfNull(context);
            if (!I.IsAuthenticated)
            {
                throw new AuthenticationException("There is no user currently authenticated.");
            }

            return(context.UserAccounts.Where(t => t.UserAccountID != I.CurrentUserAccount.UserAccountID));
        }
예제 #13
0
        protected State FetchStateByAbbreviationImpl(
            USTDataContext context,
            string abbreviation,
            bool ignoreCase = false)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            return(context.States.SingleOrDefault(t => t.Abbreviation == abbreviation));
        }
예제 #14
0
        protected City FetchCityByNameImpl(
            USTDataContext context,
            string cityName,
            bool ignoreCase = false)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            if (ignoreCase)
            {
                return(context.Cities.SingleOrDefault(t => SqlMethods.Like(t.CityName, cityName)));
            }
            return(context.Cities.SingleOrDefault(t => t.CityName == cityName));
        }
예제 #15
0
        protected State FetchStateByNameImpl(
            USTDataContext context,
            string stateName,
            bool ignoreCase = false)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            if (ignoreCase)
            {
                return(context.States.SingleOrDefault(t => SqlMethods.Like(t.StateName, stateName)));
            }
            return(context.States.SingleOrDefault(t => t.StateName == stateName));
        }
예제 #16
0
        protected UserAccount AddUserAccountImpl(
            [NotNull] USTDataContext context,
            [NotNull] UserAccount userAccount,
            bool submitChanges = true)
        {
            ThrowIfNull(context);
            ThrowIfNull(userAccount);

            context.UserAccounts.InsertOnSubmit(userAccount);
            if (submitChanges)
            {
                context.SubmitChanges();
            }

            return(userAccount);
        }
예제 #17
0
        protected State AddStateImpl(
            USTDataContext context,
            State state,
            bool deferSubmitChanges = false)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            context.States.InsertOnSubmit(state);
            if (!deferSubmitChanges)
            {
                context.SubmitChanges();
            }
            return(state);
        }
예제 #18
0
        protected JobAssignmentGroup AddJobAssignmentGroupImpl(
            USTDataContext context,
            JobAssignmentGroup jobAssignmentGroup,
            bool deferSubmitChanges = false)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            context.JobAssignmentGroups.InsertOnSubmit(jobAssignmentGroup);
            if (!deferSubmitChanges)
            {
                context.SubmitChanges();
            }
            return(jobAssignmentGroup);
        }
예제 #19
0
        protected City AddCityImpl(
            [NotNull] USTDataContext context,
            City city,
            bool deferSubmitChanges = false)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            context.Cities.InsertOnSubmit(city);
            if (!deferSubmitChanges)
            {
                context.SubmitChanges();
            }
            return(city);
        }