Exemplo n.º 1
0
        /// <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();
		}