using System; using System.Collections.Generic; using System.Linq; using BeWo.Data.Access; using BeWo.Service.Configuration; using BS.Shared; using BS.Shared.Core; using BS.Shared.DataContracts; namespace BeWo.Service.Plugins { public class QueryService : AbstractIDSpecificDefaultClass { private AppSettings appSettings = null; public AppSettings AppSettings { get { if (appSettings == null) { appSettings = AppSettings.CreateSettings(); } return appSettings; } } public virtual List GetAllQueriesOfType(QueryType pType) { var list = DAOFactory.SearchDAO.FindQuery(pType).Select( q => { QueryDC queryDC = new QueryDC { Oid = q.Oid.Value, Title = q.Title, ReportTypeName = q.ReportTypeName, UserGroupOids = q.UserGroupOids, Notice = q.Notice, ExportTitle = q.ExportTitle, FileName = q.FileName }; queryDC.IsDirect = queryDC.Notice == "direct"; queryDC.IsImport = queryDC.Notice == "import"; List parameter = new List(); foreach (var item in q.Parameter) { var param = new QueryParamDC { QueryParameterOid = item.Oid, ParamType = item.Type, Name = item.Name, DefaultValue = item.DefaultValue }; if (item.Type == QueryParameterType.Custom) { param.CustomValues = new List(); } parameter.Add(param); } queryDC.Parameter = parameter; return queryDC; }).ToList(); return list.Where(q => CheckQueryRights(q)).ToList(); } private bool CheckQueryRights(QueryDC query) { if (query.Oid > 1000) { if (query.Title.ToLower().Contains("unterschrift")) { return AppSettings.ShowSignatures; } } return true; } } }