Files
BeWoPlaner/Service/Plugins/QueryService.cs
2025-03-20 10:12:28 +01:00

88 lines
2.3 KiB
C#

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<QueryService>
{
private AppSettings appSettings = null;
public AppSettings AppSettings
{
get
{
if (appSettings == null)
{
appSettings = AppSettings.CreateSettings();
}
return appSettings;
}
}
public virtual List<QueryDC> 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<QueryParamDC> parameter = new List<QueryParamDC>();
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<string>();
}
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;
}
}
}