Exemplo n.º 1
0
        /// <summary>
        /// Delete traces from the device or Data Collector.
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public GXTraceDeleteResponse Post(GXTraceDeleteRequest request)
        {
            List <GXEventsItem> events = new List <GXEventsItem>();
            List <GXAmiTrace>   items  = new List <GXAmiTrace>();

            lock (Db)
            {
                if (request.DeviceIDs != null)
                {
                    foreach (ulong id in request.DeviceIDs)
                    {
                        //TODO: Check that user can access the device.
                        items.AddRange(Db.Select <GXAmiTrace>(q => q.DeviceId == id));
                    }
                }
                if (request.DataCollectors != null)
                {
                    foreach (Guid guid in request.DataCollectors)
                    {
                        //TODO: Check that user can access the DC.
                        string query = string.Format("SELECT {0}.* FROM {0} INNER JOIN {1} ON {0}.DataCollectorId = {1}.ID WHERE {1}.Guid = {2}",
                                                     GuruxAMI.Server.AppHost.GetTableName <GXAmiTrace>(Db),
                                                     GuruxAMI.Server.AppHost.GetTableName <GXAmiDataCollector>(Db),
                                                     guid.ToString().Replace("-", ""));
                        items.AddRange(Db.Select <GXAmiTrace>(query));
                    }
                }
                if (request.TraceIDs != null)
                {
                    foreach (ulong id in request.TraceIDs)
                    {
                        //TODO: Check that user can access the DC.
                        items.AddRange(Db.Select <GXAmiTrace>(q => q.Id == id));
                    }
                }
                Db.DeleteByIds <GXAmiTrace>(items.ToArray());
                foreach (GXAmiTrace it in items)
                {
                    events.Add(new GXEventsItem(ActionTargets.Trace, Actions.Add, it));
                }
            }
            AppHost host = this.ResolveService <AppHost>();

            host.SetEvents(Db, this.Request, 0, events);
            return(new GXTraceDeleteResponse());
        }
Exemplo n.º 2
0
 /// <summary>
 /// Delete traces from the device or Data Collector.
 /// </summary>
 /// <param name="request"></param>
 /// <returns></returns>
 public GXTraceDeleteResponse Post(GXTraceDeleteRequest request)
 {
     List<GXEventsItem> events = new List<GXEventsItem>();
     List<GXAmiTrace> items = new List<GXAmiTrace>();
     lock (Db)
     {
         if (request.DeviceIDs != null)
         {
             foreach (ulong id in request.DeviceIDs)
             {
                 //TODO: Check that user can access the device.
                 items.AddRange(Db.Select<GXAmiTrace>(q => q.DeviceId == id));
             }
         }
         if (request.DataCollectors != null)
         {
             foreach (Guid guid in request.DataCollectors)
             {
                 //TODO: Check that user can access the DC.
                 string query = string.Format("SELECT {0}.* FROM {0} INNER JOIN {1} ON {0}.DataCollectorId = {1}.ID WHERE {1}.Guid = {2}",
                     GuruxAMI.Server.AppHost.GetTableName<GXAmiTrace>(Db),
                     GuruxAMI.Server.AppHost.GetTableName<GXAmiDataCollector>(Db),
                     guid.ToString().Replace("-", ""));
                 items.AddRange(Db.Select<GXAmiTrace>(query));
             }
         }
         if (request.TraceIDs != null)
         {
             foreach (ulong id in request.TraceIDs)
             {
                 //TODO: Check that user can access the DC.
                 items.AddRange(Db.Select<GXAmiTrace>(q => q.Id == id));
             }
         }
         Db.DeleteByIds<GXAmiTrace>(items.ToArray());
         foreach (GXAmiTrace it in items)
         {
             events.Add(new GXEventsItem(ActionTargets.Trace, Actions.Add, it));
         }
     }
     AppHost host = this.ResolveService<AppHost>();
     host.SetEvents(Db, this.Request, 0, events);
     return new GXTraceDeleteResponse();
 }