Example #1
0
        /// <summary>
        /// Find labels according to the request values supplied (if just a blank request is sent all labels will be returned
        /// </summary>
        /// <param name="request">The request containing the filter criteria</param>
        /// <returns>a list of labels if any were found</returns>
        public ApptLabelsResponse Any(FindApptLabels request)
        {
            //return ExecuteFaultHandledMethod(() =>
            //{
            ApptLabelsResponse response = new ApptLabelsResponse();

            if (request != null)
            {
                var query = BuildQuery <ApptLabel>(request);

                var _repository = _DataRepositoryFactory.GetDataRepository <IGenericEntityRepositoryBase <ApptLabel, IDataContextNhJars> >();

                IList <ApptLabel> resList = _repository.Where(query).ToList();
                if (resList.Count == 0 && request.ViewType != "" && request.LabelName == null)
                {
                    CreateDefaultRecord(request, _repository);
                    response.Labels = _repository.Where(query).ConvertAllTo <ApptLabelDto>().ToList();
                }
                else
                {
                    response.Labels = resList.ConvertAllTo <ApptLabelDto>().ToList();
                }
            }
            return(response);
            //});
        }
Example #2
0
        /// <summary>
        /// A helper method used for building the query, depending on if the LoadLazy option was set.
        /// </summary>
        /// <typeparam name="T">A query over object required by the QueryOver Method on the repository</typeparam>
        /// <param name="request">The same request passed into the service</param>
        /// <param name="hasWhere">a bool value indicating if there is a where string</param>
        /// <returns></returns>
        private Expression <Func <ApptLabel, bool> > BuildQuery <T>(FindApptLabels request)
        {
            Expression <Func <ApptLabel, bool> > query = LinqExpressionBuilder.True <ApptLabel>();

            //DisplayName
            if (request.ViewType != null && request.ViewType != string.Empty)
            {
                query = query.And(j => j.ViewName == request.ViewType);
            }

            //IsActive
            if (request.LabelName != null && request.LabelName != string.Empty)
            {
                query = query.And(o => o.LabelName.Like($"{request.LabelName}%"));
            }

            return(query);
        }
Example #3
0
        void CreateDefaultRecord(FindApptLabels request, IGenericEntityRepositoryBase <ApptLabel, IDataContextNhJars> repository)
        {
            ApptLabel lbl = new ApptLabel()
            {
                UseInterfaceType = request.InterfaceTypeName,
                ViewName         = request.ViewType,
                LabelCriteria    = ""
            };

            lbl = repository.CreateUpdate(lbl, "SYSTEM");

            Type t = Type.GetType(request.InterfaceTypeName);

            if (t == typeof(IEntityWithStatusLabels))
            {
                lbl.LabelCriteria = $"([LabelKey] = '{lbl.Id}')";
                lbl = repository.CreateUpdate(lbl, "SYSTEM");
            }
        }