IConnectorUserData.csβ’2.33 kB
ο»Ώusing Api.DigitalPages.Interfaces.Models;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Api.DigitalPages.Interfaces.Connector
{
public interface IConnectorUserData :
ISystemConnectorBaseCrudFlow<IUserData, UserDataQueryOptions>,
ISystemConnectorBaseCrudFlow<ITag, UserTagQueryOptions>,
ISystemConnectorBaseCrudFlow<ITagShared, ITag, UserTagSharedQueryOptions>,
ISystemConnectorBasePagedFlow<IUserData, UserDataQueryOptions>,
ISystemConnectorBasePagedFlow<ITag, UserTagQueryOptions>,
ISystemConnectorBasePagedFlow<ITagShared, UserTagSharedQueryOptions>
{
#region Selection
Task<IUserData> DataFrom(string json, IUserData baseData = null);
Task<ITag> TagFrom(string json, ITag baseData = null);
Task<ITagShared> TagSharedFrom();
#endregion
}
public class UserBaseQueryOptions : IBaseCrudOptions
{
public List<Guid> FilterUser { get; set; }
public List<UserDataOriginType> FilterOriginType { get; set; }
public List<ObjectType> FilterTargetsType { get; set; }
public List<ObjectType> FilterContextsType { get; set; }
public List<Guid> FilterTargets { get; set; }
public List<Guid> FilterContexts { get; set; }
}
public class UserDataQueryOptions : UserBaseQueryOptions
{
public List<Guid> FilterSharingUser { get; set; }
public bool FilterOnlyViewed { get; set; }
public bool FilterOnlyNotViewed { get; set; }
public List<Guid> FilterSessions { get; set; }
public List<Guid> FilterTags { get; set; }
public bool IncludeTags { get; set; }
}
public class UserTagQueryOptions : UserBaseQueryOptions
{
public List<string> FilterNames { get; set; }
public bool? FilterShareStatus { get; set; }
public List<string> FilterCodeShare { get; set; }
}
public class UserTagSharedQueryOptions : UserBaseQueryOptions
{
public List<string> FilterNames { get; set; }
public List<Guid> FilterParent { get; set; }
public List<string> FilterCodes { get; set; }
public bool? FilterShareStatus { get; set; }
public bool IncludeParent { get; set; }
}
}