예제 #1
0
        /// <summary>
        /// Update or create a single JarsUserRole or a list of Roles, depending on whether the Role or Roles property has got a value set.
        /// If the Role property is set the Role will be created or updated and the Roles property will be ignored.
        /// To create or update more than one Role, assign a list to the Roles property and make sure Role is set to nothing/null.
        /// </summary>
        /// <param name="request">The request containing the Role or Roles that needs to be created or updated</param>
        /// <returns>depending on the values supplied, the updated Role or Roles will be returned.</returns>
        public virtual JarsUserRolesResponse Any(StoreJarsUserRoles request)
        {
            return(ExecuteFaultHandledMethod(() =>
            {
                JarsUserRolesResponse response = new JarsUserRolesResponse();
                IJarsUserRoleRepository _repository = _DataRepositoryFactory.GetDataRepository <IJarsUserRoleRepository>();
                bool isSingleEnt = false;
                if (request.Role != null)
                {
                    isSingleEnt = true;
                }

                if (request.Role != null)
                {
                    response.Role = _repository.CreateUpdate(request.Role, request.ModifiedBy);
                }
                else
                {
                    response.Roles = _repository.CreateUpdateList(request.Roles, request.ModifiedBy).ToList();
                }
                return response;
            }));
        }
예제 #2
0
        public object Any(FindJarsUserRoles request)
        {
            IJarsUserRoleRepository repository = _DataRepositoryFactory.GetDataRepository <IJarsUserRoleRepository>();
            JarsUserRolesResponse   response   = new JarsUserRolesResponse();

            if (request.FetchAsDto)
            {
                if (request.Name != null)
                {
                    response.RoleDtos = repository.Where(g => g.Name == request.Name).ToList().ConvertTo <List <JarsUserRoleDto> >();
                }
                if (request.ContainingUserAccountId != 0)
                {
                    response.RoleDtos = repository.Where(g => g.UserAccounts.Contains(g.UserAccounts.FirstOrDefault(u => u.Id == request.ContainingUserAccountId))).ToList().ConvertTo <List <JarsUserRoleDto> >();
                }
            }
            else
            {
                var plist = new List <Expression <Func <JarsUserRole, object> > >();
                plist.Add(p => p.UserAccounts);

                if (request.Name != null)
                {
                    response.Roles = repository.WhereQueryOverEagerly(g => g.Name == request.Name, plist).ToList();
                }
                else if (request.ContainingUserAccountId != 0)
                {
                    response.Roles = repository.WhereQueryOverEagerly(g => g.UserAccounts.Contains(g.UserAccounts.FirstOrDefault(u => u.Id == request.ContainingUserAccountId)), plist).ToList();
                }
                else
                {
                    response.Roles = repository.GetAllEagerly(plist).ToList();
                }
            }
            response.UpdateChildReferences();
            return(response);
        }