/// <summary> /// Selete selected schedules. /// </summary> /// <param name="request"></param> /// <returns></returns> public GXScheduleDeleteResponse Post(GXScheduleDeleteRequest request) { IAuthSession s = this.GetSession(false); int id = Convert.ToInt32(s.Id); if (id == 0) { throw new ArgumentException("Remove failed. Invalid session ID."); } if (!GuruxAMI.Server.GXBasicAuthProvider.CanUserEdit(s)) { throw new ArgumentException("Remove not allowed."); } List <GXEventsItem> events = new List <GXEventsItem>(); bool superAdmin = GuruxAMI.Server.GXBasicAuthProvider.IsSuperAdmin(s); lock (Db) { foreach (ulong it in request.Schedules) { if (it == 0) { throw new ArgumentException("ID is required"); } //Only super admin or creator can remove schedule. //TODO: #if !SS4 GXAmiSchedule schedule = Db.QueryById <GXAmiSchedule>(it); #else GXAmiSchedule schedule = Db.SingleById <GXAmiSchedule>(it); #endif if (request.Permanently) { Db.DeleteById <GXAmiSchedule>(it); } else { schedule.Removed = DateTime.Now.ToUniversalTime(); Db.UpdateOnly(schedule, p => p.Removed, p => p.Id == it); } events.Add(new GXEventsItem(ActionTargets.Schedule, Actions.Remove, schedule)); } } AppHost host = this.ResolveService <AppHost>(); host.SetEvents(Db, this.Request, id, events); return(new GXScheduleDeleteResponse()); }
/// <summary> /// Selete selected schedules. /// </summary> /// <param name="request"></param> /// <returns></returns> public GXScheduleDeleteResponse Post(GXScheduleDeleteRequest request) { IAuthSession s = this.GetSession(false); int id = Convert.ToInt32(s.Id); if (id == 0) { throw new ArgumentException("Remove failed. Invalid session ID."); } if (!GuruxAMI.Server.GXBasicAuthProvider.CanUserEdit(s)) { throw new ArgumentException("Remove not allowed."); } List<GXEventsItem> events = new List<GXEventsItem>(); bool superAdmin = GuruxAMI.Server.GXBasicAuthProvider.IsSuperAdmin(s); lock (Db) { foreach (ulong it in request.Schedules) { if (it == 0) { throw new ArgumentException("ID is required"); } //Only super admin or creator can remove schedule. //TODO: #if !SS4 GXAmiSchedule schedule = Db.QueryById<GXAmiSchedule>(it); #else GXAmiSchedule schedule = Db.SingleById<GXAmiSchedule>(it); #endif if (request.Permanently) { Db.DeleteById<GXAmiSchedule>(it); } else { schedule.Removed = DateTime.Now.ToUniversalTime(); Db.UpdateOnly(schedule, p => p.Removed, p => p.Id == it); } events.Add(new GXEventsItem(ActionTargets.Schedule, Actions.Remove, schedule)); } } AppHost host = this.ResolveService<AppHost>(); host.SetEvents(Db, this.Request, id, events); return new GXScheduleDeleteResponse(); }