public void TestAddingSimpleItem() { using (var scope = new TransactionScope(TransactionScopeOption.Required, TimeSpan.FromMinutes(1))) { IEquipmentRepository repository = Ninject.Current.Get <IEquipmentRepository>(); var entity = Factory.CreateTemporaryEntity(); var equipment = entity.Equipment; repository.AddEquipmentItem(equipment.ID, (int)ProductTypeEnum.Bread, 3, 25); repository.SaveChanges(); var item = repository.GetEquipmentItem(equipment.ID, (int)ProductTypeEnum.Bread, 3); Assert.IsTrue(item != null); Assert.IsTrue(item.Quality == 3); Assert.IsTrue(item.ProductID == (int)ProductTypeEnum.Bread); var items = repository.GetEquipmentItems(equipment.ID, (int)ProductTypeEnum.Bread); Assert.IsTrue(items.Count == 1); Assert.IsTrue(items[0].Quality == 3); Assert.IsTrue(items[0].ProductID == (int)ProductTypeEnum.Bread); } }
public void GiveItem(ProductTypeEnum productType, int amount, int quality, Equipment equipment) { equipmentRepository.AddEquipmentItem(equipment.ID, (int)productType, quality, amount); ConditionalSaveChanges(equipmentRepository); }
public void ProcessDayChange(int newDay) { var shops = companyRepository .Where(c => c.CompanyTypeID == (int)CompanyTypeEnum.Shop) .ToList(); foreach (var shop in shops) { var item = shop.Entity.GetEquipmentItem(ProductTypeEnum.SellingPower, 1, productRepository); equipmentRepository.AddEquipmentItem(shop.Entity.EquipmentID.Value, item.ProductID, 1, 10); } equipmentRepository.SaveChanges(); }
public void RemoveAmountItem() { using (var scope = new TransactionScope(TransactionScopeOption.Required, TimeSpan.FromMinutes(1))) { IEquipmentRepository repository = Ninject.Current.Get <IEquipmentRepository>(); var entity = Factory.CreateTemporaryEntity(); var equipment = entity.Equipment; repository.AddEquipmentItem(equipment.ID, (int)ProductTypeEnum.Bread, 3, 25); repository.RemoveEquipmentItem(equipment.ID, (int)ProductTypeEnum.Bread, 3, 20); var item = repository.GetEquipmentItem(equipment.ID, (int)ProductTypeEnum.Bread, 3); Assert.IsTrue(item.Amount == 5); var items = repository.GetEquipmentItems(equipment.ID, (int)ProductTypeEnum.Bread); Assert.IsTrue(items.Count == 1); Assert.IsTrue(items[0].Amount == 5); } }
public MethodResult Buy(MarketOffer offer, Entity buyer, int amount, int walletID) { using (var scope = transactionScopeProvider.CreateTransactionScope()) { var eqID = buyer.EquipmentID.Value; var sellerEntity = offer.Company.Entity; var localCountry = sellerEntity.GetCurrentCountry(); if (offer.GetProductType() == ProductTypeEnum.House) { var houseService = DependencyResolver.Current.GetService <IHouseService>(); houseService.CreateHouseForCitizen(buyer.Citizen); } else { equipmentRepository.AddEquipmentItem(eqID, offer.ProductID, offer.Quality, amount); } var cost = GetOfferCost(offer, buyer, amount); if (sellerEntity.Company.CompanyTypeID == (int)CompanyTypeEnum.Shop) { equipmentRepository.RemoveEquipmentItem(sellerEntity.EquipmentID.Value, (int)ProductTypeEnum.SellingPower, 1, amount); } if (buyer.EntityTypeID == (int)EntityTypeEnum.Company) { UseFuelInBuyProcess(eqID, cost); } var currency = Persistent.Currencies.First(c => c.ID == offer.CurrencyID); if (makeCompanyTransactionForBuy(offer, buyer, sellerEntity, cost, currency, amount, walletID) != TransactionResult.Success) { return(MethodResult.Failure); } if (makeLocalCountryTransactionForBuy(offer, buyer, sellerEntity, localCountry, cost, currency, amount, walletID) != TransactionResult.Success) { return(MethodResult.Failure); } //there is no vat because company is not paying vat (directly). Citizen is paying the vat. ICompanyFinance[] finances = new ICompanyFinance[] { new SellRevenueFinance(cost.BasePrice, currency.ID), }; companyFinanceSummaryService.AddFinances(offer.Company, finances); /*if (cost.ExportTax > 0) * { * makeExportTransactionForBuy(offer, buyer, sellerEntity, cost, amount); * }*/ offer.Amount -= amount; if (offer.Amount <= 0) { marketOfferRepository.Remove(offer.ID); } equipmentRepository.SaveChanges(); scope.Complete(); return(MethodResult.Success); } }