| 123456789101112131415161718192021222324252627282930313233343536 | 
							- using InABox.API;
 
- using InABox.Core;
 
- using InABox.Database;
 
- using Microsoft.Exchange.WebServices.Data;
 
- namespace InABox.Rpc
 
- {
 
-     
 
-     public class RpcDeleteHandler : RpcCommandHandler<IRpcServer, RpcDeleteCommand, RpcDeleteParameters, RpcDeleteResult>
 
-     {
 
-         public RpcDeleteHandler(IRpcServer sender) : base(sender)
 
-         {
 
-         }
 
-         protected override RpcDeleteResult Execute(IRpcSession session, RpcDeleteParameters parameters)
 
-         {
 
-             var user = CredentialsCache.ValidateAndRefresh(session.ID)
 
-                 ?? throw new RpcException("User not found in Credentials Cache!", RpcError.UNAUTHENTICATED);
 
-             var store = DbFactory.FindStore(parameters.Type, user.ID, user.UserID, session.Platform, session.Version ?? "");
 
-                 
 
-             var items = new List<Entity>();
 
-             foreach (var id in parameters.IDs)
 
-             {
 
-                 var item = (Activator.CreateInstance(parameters.Type) as Entity)!;
 
-                 item.ID = id;
 
-                 items.Add(item);
 
-             }
 
-             store.Delete(items, parameters.AuditNote);
 
-             
 
-             InABox.API.CredentialsCache.Refresh(parameters.Type == typeof(InABox.Core.User));
 
-             return new RpcDeleteResult();
 
-         }
 
-     }
 
- }
 
 
  |