public async Task <Building> Insert(Building entity) { return(await _buildingRepository.Insert(entity)); }
//vytvori village, resources, buildings, products, units pre village //pre kazdy typ budovy budovu, pre kazdy typ res res atd public void CreateVillage(int playerID) { var village = new Village(); using (var uow = UnitOfWorkProvider.Create()) { var player = playerRepository.GetById(playerID, p => p.Villages, p => p.Account); player.NumOfVillages++; village.Player = player; village.Huts = 1; village.AvailableWorkers = 4; if (player.Villages.Count() == 0) { village.Number = 1; } else { village.Number = player.Villages.Last().Number + 1; } villageRepository.Insert(village); playerRepository.Update(player); uow.Commit(); } using (var uow = UnitOfWorkProvider.Create()) { var v = villageRepository.GetById(village.ID); var resourceTypesCount = resourceTypeListQuery.GetTotalRowCount(); Resource[] resources = new Resource[resourceTypesCount]; //takto, alebo i = 0 inicializovat, i++ inicializovat a for od 2 //opakovanie kodu, ci efektivita? for (int i = 0; i < resourceTypesCount; ++i) { resources[i] = new Resource(); resources[i].ResourceType = resourceTypeRepository.GetById(i + 1); if (i == 0) { resources[i].Amount = 90; } if (i == 1) { resources[i].Amount = 50; } resources[i].Village = v; resourceRepository.Insert(resources[i]); } var buildingTypesCount = buildingTypeListQuery.GetTotalRowCount(); var buildingTypes = buildingTypeRepository.GetByIds(Enumerable.Range(1, buildingTypesCount).ToArray()); // 2. Sposob na priradovanie type Building[] buildings = new Building[buildingTypesCount]; for (int i = 0; i < buildingTypesCount; ++i) { buildings[i] = new Building(); buildings[i].BuildingType = buildingTypes[i]; //2. sposob buildings[i].Village = v; buildingRepository.Insert(buildings[i]); } var productTypesCount = productTypeListQuery.GetTotalRowCount(); Product[] products = new Product[productTypesCount]; for (int i = 0; i < productTypesCount; ++i) { products[i] = new Product(); products[i].ProductType = productTypeRepository.GetById(i + 1); products[i].Village = v; productRepository.Insert(products[i]); } var unitTypesCount = unitTypeListQuery.Execute().Where(u => u.Role.Equals(UnitRole.Friendly)).Count(); //friendly/hostile units Unit[] units = new Unit[unitTypesCount]; for (int i = 0; i < unitTypesCount; ++i) { units[i] = new Unit(); units[i].UnitType = unitTypeRepository.GetById(i + 1); units[i].Village = v; unitRepository.Insert(units[i]); } var adventureTypesCount = adventureTypeListQuery.GetTotalRowCount(); var adventureTypes = adventureTypeRepository.GetByIds(Enumerable.Range(1, adventureTypesCount).ToArray()); // 2. Sposob na priradovanie type Adventure[] adventures = new Adventure[adventureTypesCount]; for (int i = 0; i < adventureTypesCount; ++i) { adventures[i] = new Adventure(); adventures[i].AdventureType = adventureTypes[i]; //2. sposob adventures[i].Village = v; adventureRepository.Insert(adventures[i]); } uow.Commit(); } }