private StorageResources _premiumActive(IDbConnection connection, int userId, StorageResources res, int planetId) { var level = 1; var newRes = res.CloneDeep(); if (planetId != 0) { // todo создать генератор всех хранишищ var p = _planet.GetUserPlanet(connection, planetId, userId); if (p.BuildStorage.Level != null) { level = (int)p.BuildStorage.Level; } newRes.Max = Storage.MaxStorable(level, true); if (!res.NeedFix()) { return(newRes); } var fixedPlanetRes = FixCurrentResources(newRes); var updatedPlanetRes = _planet.SetNewResources(connection, planetId, userId, fixedPlanetRes); return(updatedPlanetRes.Resources); } newRes.Max = Storage.MaxMotherStorable(true); if (!res.NeedFix()) { return(newRes); } var fixedMotherRes = FixCurrentResources(newRes); var updatedMother = _mother.SetNewResources(connection, userId, fixedMotherRes); return(updatedMother.Resources); }
public StorageResources Execute(IDbConnection connection, int userId, StorageResources res, int planetId = 0) { var pr = _storeService.GetPremiumWorkModel(connection, userId); if (pr.IsActive) { return(_premiumActive(connection, userId, res, planetId)); } if (!res.NeedFix()) { return(res); } var fixedRes = FixCurrentResources(res); if (planetId == 0) { var updatedMother = _mother.SetNewResources(connection, userId, fixedRes); return(updatedMother.Resources); } var updatedPlanetRes = _planet.SetNewResources(connection, planetId, userId, fixedRes); return(updatedPlanetRes.Resources); }