| 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();        }    }}
 |