Calendar: core: api
This commit is contained in:
parent
0c1f99005d
commit
44ea8db96f
@ -104,52 +104,37 @@ namespace ASC.Calendar.BusinessObjects
|
||||
|
||||
}
|
||||
|
||||
/* public List<UserViewSettings> GetUserViewSettings(Guid userId, List<string> calendarIds)
|
||||
public List<UserViewSettings> GetUserViewSettings(Guid userId, List<string> calendarIds)
|
||||
{
|
||||
var cc = new ColumnCollection();
|
||||
|
||||
var extCalId = cc.RegistryColumn("ext_calendar_id");
|
||||
var usrId = cc.RegistryColumn("user_id");
|
||||
var hideEvents = cc.RegistryColumn("hide_events");
|
||||
var isAccepted = cc.RegistryColumn("is_accepted");
|
||||
var textColor = cc.RegistryColumn("text_color");
|
||||
var background = cc.RegistryColumn("background_color");
|
||||
var alertType = cc.RegistryColumn("alert_type");
|
||||
var calId = cc.RegistryColumn("convert(calendar_id using utf8)");
|
||||
var calName = cc.RegistryColumn("name");
|
||||
var timeZone = cc.RegistryColumn("time_zone");
|
||||
|
||||
var query = new SqlQuery("calendar_calendar_user")
|
||||
.Select(cc.SelectQuery)
|
||||
.Where((Exp.In(extCalId.Name, calendarIds) |
|
||||
Exp.In(calId.Name, calendarIds)) &
|
||||
Exp.Eq(usrId.Name, userId));
|
||||
|
||||
var data = db.ExecuteList(query);
|
||||
|
||||
var options = new List<UserViewSettings>();
|
||||
foreach (var r in data)
|
||||
{
|
||||
var data = CalendarDb.CalendarCalendarUser
|
||||
.Where(ccu =>
|
||||
(calendarIds.Contains(ccu.CalendarId.ToString()) || calendarIds.Contains(ccu.ExtCalendarId)) &&
|
||||
ccu.UserId == userId.ToString())
|
||||
.ToList();
|
||||
|
||||
var options = new List<UserViewSettings>();
|
||||
foreach (var r in data)
|
||||
{
|
||||
options.Add(new UserViewSettings()
|
||||
{
|
||||
CalendarId =
|
||||
Convert.ToInt32(r[calId.Ind]) == 0
|
||||
? Convert.ToString(r[extCalId.Ind])
|
||||
: Convert.ToString(r[calId.Ind]),
|
||||
UserId = usrId.Parse<Guid>(r),
|
||||
IsHideEvents = hideEvents.Parse<bool>(r),
|
||||
IsAccepted = isAccepted.Parse<bool>(r),
|
||||
TextColor = textColor.Parse<string>(r),
|
||||
BackgroundColor = background.Parse<string>(r),
|
||||
EventAlertType = (EventAlertType) alertType.Parse<int>(r),
|
||||
Name = calName.Parse<string>(r),
|
||||
TimeZone = timeZone.Parse<TimeZoneInfo>(r)
|
||||
Convert.ToInt32(r.CalendarId) == 0
|
||||
? Convert.ToString(r.ExtCalendarId)
|
||||
: Convert.ToString(r.CalendarId),
|
||||
UserId = Guid.Parse(r.UserId),
|
||||
IsHideEvents = Convert.ToBoolean(r.HideEvents),
|
||||
IsAccepted = Convert.ToBoolean(r.IsAccepted),
|
||||
TextColor = r.TextColor,
|
||||
BackgroundColor = r.BackgroundColor,
|
||||
EventAlertType = (EventAlertType)r.AlertType,
|
||||
Name = r.Name,
|
||||
TimeZone = TimeZoneConverter.GetTimeZone(r.TimeZone)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return options;
|
||||
}
|
||||
|
||||
/*
|
||||
public List<Calendar> LoadTodoCalendarsForUser(Guid userId)
|
||||
{
|
||||
var groups = UserManager.GetUserGroups(userId).Select(g => g.ID).ToList();
|
||||
|
@ -30,6 +30,9 @@ using SecurityContext = ASC.Core.SecurityContext;
|
||||
using ASC.Calendar.Core;
|
||||
using ASC.Calendar.Core.Dao;
|
||||
using ASC.Calendar.BusinessObjects;
|
||||
using ASC.Web.Core.Calendars;
|
||||
using ASC.Calendar.ExternalCalendars;
|
||||
using System.Linq;
|
||||
|
||||
namespace ASC.Calendar.Controllers
|
||||
{
|
||||
@ -40,31 +43,48 @@ namespace ASC.Calendar.Controllers
|
||||
|
||||
public Tenant Tenant { get { return ApiContext.Tenant; } }
|
||||
public ApiContext ApiContext { get; }
|
||||
public AuthContext AuthContext { get; }
|
||||
public UserManager UserManager { get; }
|
||||
public DataProvider DataProvider { get; }
|
||||
public ILog Log { get; }
|
||||
private TenantManager TenantManager { get; }
|
||||
public TimeZoneConverter TimeZoneConverter { get; }
|
||||
public CalendarWrapperHelper CalendarWrapperHelper { get; }
|
||||
public DisplayUserSettingsHelper DisplayUserSettingsHelper { get; }
|
||||
public CalendarController(
|
||||
|
||||
ApiContext apiContext,
|
||||
|
||||
AuthContext authContext,
|
||||
UserManager userManager,
|
||||
|
||||
TenantManager tenantManager,
|
||||
TimeZoneConverter timeZoneConverter,
|
||||
|
||||
DisplayUserSettingsHelper displayUserSettingsHelper,
|
||||
IOptionsMonitor<ILog> option,
|
||||
|
||||
DataProvider dataProvider,
|
||||
|
||||
CalendarWrapperHelper calendarWrapperHelper)
|
||||
{
|
||||
AuthContext = authContext;
|
||||
TenantManager = tenantManager;
|
||||
Log = option.Get("ASC.Api");
|
||||
TimeZoneConverter = timeZoneConverter;
|
||||
ApiContext = apiContext;
|
||||
UserManager = userManager;
|
||||
DataProvider = dataProvider;
|
||||
CalendarWrapperHelper = calendarWrapperHelper;
|
||||
DisplayUserSettingsHelper = displayUserSettingsHelper;
|
||||
|
||||
CalendarManager.Instance.RegistryCalendar(new SharedEventsCalendar(AuthContext, TimeZoneConverter, TenantManager));
|
||||
var birthdayReminderCalendar = new BirthdayReminderCalendar(AuthContext, TimeZoneConverter, UserManager, DisplayUserSettingsHelper);
|
||||
if (UserManager.IsUserInGroup(AuthContext.CurrentAccount.ID, Constants.GroupVisitor.ID))
|
||||
{
|
||||
CalendarManager.Instance.UnRegistryCalendar(birthdayReminderCalendar.Id);
|
||||
}
|
||||
else
|
||||
{
|
||||
CalendarManager.Instance.RegistryCalendar(birthdayReminderCalendar);
|
||||
}
|
||||
}
|
||||
|
||||
[Read("info")]
|
||||
@ -76,11 +96,23 @@ namespace ASC.Calendar.Controllers
|
||||
}
|
||||
|
||||
[Read("{calendarId}")]
|
||||
public CalendarWrapper GetCalendarById(int calendarId)
|
||||
public CalendarWrapper GetCalendarById(string calendarId)
|
||||
{
|
||||
var calendars = DataProvider.GetCalendarById(calendarId);
|
||||
int calId;
|
||||
if (int.TryParse(calendarId, out calId))
|
||||
{
|
||||
var calendars = DataProvider.GetCalendarById(calId);
|
||||
|
||||
return (calendars != null ? CalendarWrapperHelper.Get(calendars) : null);
|
||||
return (calendars != null ? CalendarWrapperHelper.Get(calendars) : null);
|
||||
}
|
||||
|
||||
var extCalendar = CalendarManager.Instance.GetCalendarForUser(AuthContext.CurrentAccount.ID, calendarId, UserManager);
|
||||
if (extCalendar != null)
|
||||
{
|
||||
var viewSettings = DataProvider.GetUserViewSettings(AuthContext.CurrentAccount.ID, new List<string> { calendarId });
|
||||
return CalendarWrapperHelper.Get(extCalendar, viewSettings.FirstOrDefault());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user