//BuildItemUnitView public ItemProgress Upgraded(IDbConnection connection, GDetailPlanetDataModel planet, int userId, bool premiumIsActive, IServiceProvider resolver) { var bu = new BuildUpgrade(); bu.SetData(planet.Turels, NativeName); if (!bu.IsUpgradeComplite(bu.Progress)) { return(bu.Progress); } //planetService.SavePlanet(); bu.Progress = ItemProgress.ProgressUpdateComplite(bu.Progress); BuildUpgrade.TransactionBuildUpdate(connection, planet, bu, resolver); return(bu.Progress); }
public int UpgradeForCc(IDbConnection connection, GDetailPlanetDataModel planet, int userId, bool premiumIsActive, BuildUpgrade preResult, IServiceProvider resolver) { var storeService = resolver.GetService <IStoreService>(); var balanceCc = storeService.BalanceCalcResultCc(connection, userId, CalcCcCurrentPrice(preResult.Progress?.Level ?? 1)); preResult.Cc = balanceCc.Quantity; preResult.Progress = ItemProgress.ProgressUpdateComplite(preResult.Progress); if (preResult.StorageResources == null) { throw new Exception(Error.UserResourceNotSetInInstance); } preResult.StorageResources.Max = MaxStorable(preResult.Progress?.Level ?? 1, premiumIsActive); BuildUpgrade.TransactionBuildUpdate(connection, planet, preResult, resolver, balanceCc); return(preResult.Cc); }
public ItemProgress Upgraded(IDbConnection connection, GDetailPlanetDataModel planet, int userId, bool premiumIsActive, IServiceProvider resolver) { var progress = planet.BuildStorage; var preResult = new BuildUpgrade(planet.Resources, progress, NativeName); //todo не правильно высчитывается время на азуре из за чего вылетает ошибка при ответе от сервера if (!preResult.IsUpgradeComplite(preResult.Progress)) { return(preResult.Progress); } preResult.Progress = ItemProgress.ProgressUpdateComplite(preResult.Progress); preResult.StorageResources.Max = MaxStorable(preResult.Progress.Level ?? 1, premiumIsActive); BuildUpgrade.TransactionBuildUpdate(connection, planet, preResult, resolver); return(preResult.Progress); }