Ejemplo n.º 1
0
        public ResultCode UpdateLatest <T>(DatabaseSessionMetadata metadata, IStoredData <T> oldMiiData, SourceFlag flag, IStoredData <T> newMiiData) where T : unmanaged
        {
            if (!flag.HasFlag(SourceFlag.Database))
            {
                return(ResultCode.NotFound);
            }

            if (metadata.IsInterfaceVersionSupported(1) && !oldMiiData.IsValid())
            {
                return(oldMiiData.InvalidData);
            }

            ResultCode result = _miiDatabase.FindIndex(metadata, out int index, oldMiiData.CreateId);

            if (result == ResultCode.Success)
            {
                _miiDatabase.Get(metadata, index, out StoreData storeData);

                if (storeData.Type != oldMiiData.Type)
                {
                    return(ResultCode.NotFound);
                }

                newMiiData.SetFromStoreData(storeData);

                if (oldMiiData == newMiiData)
                {
                    return(ResultCode.NotUpdated);
                }
            }

            return(result);
        }
 public RecyclingManager(
     IGarbageFactory garbageFactory,
     IGarbageProcessor garbageProcessor,
     IRecyclingManagementRequirement recyclingManagementRequirement,
     IStoredData storedData)
 {
     this.garbageFactory   = garbageFactory;
     this.garbageProcessor = garbageProcessor;
     this.recyclingManagementRequirement = recyclingManagementRequirement;
     this.storedData = storedData;
 }
        public bool AreRequirementsSatisfy(IStoredData storedData, IWaste garbage)
        {
            if (garbage.GetType() == this.targetGarbageType)
            {
                var isCapitalEnought = this.dataRequirements.CapitalBalance <= storedData.CapitalBalance;
                var isEnergyEnought  = this.dataRequirements.EnergyBalance <= storedData.EnergyBalance;

                if (!isCapitalEnought || !isEnergyEnought)
                {
                    return(false);
                }
            }

            return(true);
        }
 public void ChangeManagementRequirement(IStoredData dataRequirements, Type targetGarbageType)
 {
     this.DataRequirements  = dataRequirements;
     this.TargetGarbageType = targetGarbageType;
 }
 public RecyclingManagementRequirement(IStoredData dataRequirements, Type targetGarbageType)
 {
     this.DataRequirements  = dataRequirements;
     this.TargetGarbageType = targetGarbageType;
 }