| 12345678910111213141516171819202122232425262728293031323334 | 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);            return new RpcDeleteResult();        }    }}
 |