/// <summary> /// Delete selected user group. /// </summary> /// <param name="request"></param> /// <returns></returns> public GXUserGroupDeleteResponse Post(GXUserGroupDeleteRequest request) { IAuthSession s = this.GetSession(false); //Normal user can't remove device. if (!GuruxAMI.Server.GXBasicAuthProvider.CanUserEdit(s)) { throw new ArgumentException("Access denied."); } long id = Convert.ToInt64(s.Id); List <GXEventsItem> events = new List <GXEventsItem>(); lock (Db) { foreach (int it in request.GroupIDs) { if (it == 0) { throw new ArgumentException("ID is required"); } if (GetUserGroups(Db, it).Length == 1) { throw new ArgumentException("User must belong atleast one user group."); } #if !SS4 GXAmiUserGroup ug = Db.QueryById <GXAmiUserGroup>(it); #else GXAmiUserGroup ug = Db.SingleById <GXAmiUserGroup>(it); #endif if (request.Permanently) { Db.DeleteById <GXAmiUserGroup>(it); } else { ug.Removed = DateTime.Now.ToUniversalTime(); Db.UpdateOnly(ug, p => p.Removed, p => p.Id == it); } events.Add(new GXEventsItem(ActionTargets.UserGroup, Actions.Remove, ug)); } } AppHost host = this.ResolveService <AppHost>(); host.SetEvents(Db, this.Request, id, events); return(new GXUserGroupDeleteResponse()); }
/// <summary> /// Delete selected user group. /// </summary> /// <param name="request"></param> /// <returns></returns> public GXUserGroupDeleteResponse Post(GXUserGroupDeleteRequest request) { IAuthSession s = this.GetSession(false); //Normal user can't remove device. if (!GuruxAMI.Server.GXBasicAuthProvider.CanUserEdit(s)) { throw new ArgumentException("Access denied."); } long id = Convert.ToInt64(s.Id); List<GXEventsItem> events = new List<GXEventsItem>(); lock (Db) { foreach (int it in request.GroupIDs) { if (it == 0) { throw new ArgumentException("ID is required"); } if (GetUserGroups(Db, it).Length == 1) { throw new ArgumentException("User must belong atleast one user group."); } #if !SS4 GXAmiUserGroup ug = Db.QueryById<GXAmiUserGroup>(it); #else GXAmiUserGroup ug = Db.SingleById<GXAmiUserGroup>(it); #endif if (request.Permanently) { Db.DeleteById<GXAmiUserGroup>(it); } else { ug.Removed = DateTime.Now.ToUniversalTime(); Db.UpdateOnly(ug, p => p.Removed, p => p.Id == it); } events.Add(new GXEventsItem(ActionTargets.UserGroup, Actions.Remove, ug)); } } AppHost host = this.ResolveService<AppHost>(); host.SetEvents(Db, this.Request, id, events); return new GXUserGroupDeleteResponse(); }