Exemplo n.º 1
0
    protected virtual int UnsafeLock <T>(Lite <DisconnectedMachineEntity> machine, DisconnectedStrategy <T> strategy, Lite <DisconnectedExportEntity> stats) where T : Entity, new()
    {
        using (ExecutionMode.Global())
        {
            var result = Database.Query <T>().Where(strategy.UploadSubset !)
                         .Where(a => a.Mixin <DisconnectedSubsetMixin>().DisconnectedMachine != null)
                         .Select(a => "{0} locked in {1}".FormatWith(a.Id, a.Mixin <DisconnectedSubsetMixin>().DisconnectedMachine !.Entity.MachineName))
                         .ToString("\r\n");

            if (result.HasText())
            {
                stats.MListElementsLite(_ => _.Copies).Where(a => a.Element.Type.Is(typeof(T).ToTypeEntity())).UnsafeUpdateMList()
                .Set(mle => mle.Element.Errors, mle => result)
                .Execute();
            }

            return(Database.Query <T>().Where(strategy.UploadSubset !).UnsafeUpdate()
                   .Set(a => a.Mixin <DisconnectedSubsetMixin>().DisconnectedMachine, a => machine)
                   .Set(a => a.Mixin <DisconnectedSubsetMixin>().LastOnlineTicks, a => a.Ticks)
                   .Execute());
        }
    }
Exemplo n.º 2
0
    protected virtual SqlPreCommandSimple GetWhere(DisconnectedStrategy <T> pair)
    {
        var query = Database.Query <T>().Where(pair.DownloadSubset !).Select(a => a.Id);

        return(Administrator.QueryPreCommand(query));
    }