public StructuralGroup GetRoot()  //TODO: Make this a ViewModel
 {
     using (var structureRepository = new StructureRepository(ApplicationContext.DatabaseContext.Database, ApplicationContext.Services.MemberService))
     {
         return(structureRepository.GetRootForMember(Members.GetCurrentMember()));
     }
 }
Exemple #2
0
 public static void PrepareFactory(StructureRepository structureRepository, GridStructure grid, IPlacementManager placementManager, IResourceManager resourceManager)
 {
     singleStructurePlacementHelper = new SingleStructurePlacementHelper(structureRepository, grid, placementManager, resourceManager);
     structureDemolitionHelper      = new StructureDemolitionHelper(structureRepository, grid, placementManager, resourceManager);
     roadStructurePlacementHelper   = new RoadPlacementModificationHelper(structureRepository, grid, placementManager, resourceManager);
     zonePlacementHelper            = new ZonePlacementHelper(structureRepository, grid, placementManager, Vector3.zero, resourceManager);
 }
Exemple #3
0
 public BuildingManager(int cellSize, int width, int length, IPlacementManager placementManager, StructureRepository structureRepository, IResourceManager resourceManager)
 {
     this.grid                = new GridStructure(cellSize, width, length);
     this.placementManager    = placementManager;
     this.structureRepository = structureRepository;
     StructureModificationFactory.PrepareFactory(structureRepository, grid, placementManager, resourceManager);
 }
 public IEnumerable <MemberViewModel> GetMembers(int structuralGroupId, string memberType)
 {
     using (var structureRepository = new StructureRepository(ApplicationContext.DatabaseContext.Database, ApplicationContext.Services.MemberService))
     {
         return(structureRepository.GetMembers(structuralGroupId, memberType).Select(MemberViewModel.FromModel));
     }
 }
Exemple #5
0
        public void InitBeforeEveryTests()
        {
            PlacementManager placementManager = Substitute.For <PlacementManager>();

            materialTransparent = new Material(Shader.Find("Standard"));
            placementManager.transparentMaterial = materialTransparent;
            GameObject ground = new GameObject();

            ground.transform.position = Vector3.zero;
            placementManager.ground   = ground.transform;
            StructureRepository structureRepository = Substitute.For <StructureRepository>();
            CollectionSO        collection          = new CollectionSO();
            RoadStructureSO     road = new RoadStructureSO();

            road.buildingName = "Road";
            GameObject roadChild = new GameObject("Road", typeof(MeshRenderer));

            roadChild.GetComponent <MeshRenderer>().material.color = Color.blue;
            GameObject roadPrefab = new GameObject("Road");

            roadChild.transform.SetParent(roadPrefab.transform);
            road.prefab = roadPrefab;
            collection.roadStructure = road;
            structureRepository.modelDataCollection = collection;
            buildingManager = new BuildingManager(3, 10, 10, placementManager, structureRepository);
        }
        public void Init()
        {
            StructureRepository structureRepository = TestHelpers.CreateStructureRepositoryContainingRoad();
            IPlacementManager   placementManager    = Substitute.For <IPlacementManager>();
            IResourceManager    resourceManager     = Substitute.For <IResourceManager>();

            resourceManager.CanIBuyIt(default, default, default).Returns(true);
Exemple #7
0
 public BuildingManager(GridStructure grid, IPlacementManager placementManager, StructureRepository structureRepository, IResourceManager resourceManager)
 {
     _grid = grid;
     this._placementManager    = placementManager;
     this._structureRepository = structureRepository;
     StructureModificationFactory.PrepareFactory(structureRepository, _grid, placementManager, resourceManager);
 }
Exemple #8
0
        public IEnumerable <AttendanceSummaryViewModel> GetAttendanceSummary(DateTime start, DateTime end, int structuralGroupId)
        {
            var db = ApplicationContext.DatabaseContext.Database;

            using (var structureRepository = new StructureRepository(db, Services.MemberService))
            {
                var structure = structureRepository.GetStructureFrom(structuralGroupId);
                var ids       = new List <int>();
                PopulateStructureIds(structure, ids);

                var query = string.Format("SELECT [Date], Attendance, COUNT(*) AS Total FROM AttendanceRecord " +
                                          "INNER JOIN AttendanceSet ON AttendanceRecord.AttendanceSetId = AttendanceSet.Id " +
                                          "WHERE [Date] BETWEEN '{0}' and '{1}' " +
                                          "AND StructuralGroupId IN ({2}) " +
                                          "GROUP BY [Date], Attendance", start.ToString("yyyy-MM-dd"), end.ToString("yyyy-MM-dd"), string.Join(",", ids));

                var table = DbUtils.ExecuteDataTable(db, query);
                return(DateUtils.Range(start, end).Select(date =>
                {
                    var presentRow = table.Select(string.Format("Date = '{0:yyyy-MM-dd}' AND Attendance = {1}", date, (int)Attendance.Present)).FirstOrDefault();
                    var absentRow = table.Select(string.Format("Date = '{0:yyyy-MM-dd}' AND Attendance = {1}", date, (int)Attendance.Absent)).FirstOrDefault();
                    var present = presentRow == null ? 0 : presentRow.Field <int>("Total");
                    var absent = absentRow == null ? 0 : absentRow.Field <int>("Total");
                    return new AttendanceSummaryViewModel
                    {
                        Date = date,
                        Present = present,
                        Absent = absent
                    };
                }));
            }
        }
            public void Init()
            {
                StructureRepository structureRepository = TestHelpers.CreateStructureRepositoryContainingRoad();
                IPlacementManager   placementManager    = Substitute.For <IPlacementManager>();

                _tempObject = new GameObject();
                placementManager.CreateGhostStructure(default, default).ReturnsForAnyArgs(_tempObject);
        public void Init()
        {
            structureRepo = Substitute.For <StructureRepository>();
            CollectionSO collection = new CollectionSO();

            testRoad            = new GameObject();
            testSingleStructure = new GameObject();
            testZone            = new GameObject();
            var road = new RoadStructureSO();

            road.buildingName = "Road";
            road.prefab       = testRoad;
            var facility = new SingleFacilitySO();

            facility.buildingName = "PowerPlant";
            facility.prefab       = testSingleStructure;
            var zone = new ZoneStructureSO();

            zone.buildingName              = "Commercial";
            zone.prefab                    = testZone;
            collection.roadStructure       = road;
            collection.singleStructureList = new List <SingleStructureBaseSO>();
            collection.singleStructureList.Add(facility);
            collection.zonesList = new List <ZoneStructureSO>();
            collection.zonesList.Add(zone);
            structureRepo.modelDataCollection = collection;
        }
Exemple #11
0
        public void Init()
        {
            CollectionSO collection = new CollectionSO();

            var road = new RoadStructureSO();

            road.buildingName        = "Road";
            collection.roadStructure = road;

            var facility = new SingleFacilitySO();

            facility.buildingName          = "PowerPlant";
            collection.singleStructureList = new List <SingleStructureBaseSO>();
            collection.singleStructureList.Add(facility);

            var zone = new ZoneStructureSO();

            zone.buildingName    = "Commercial";
            collection.zonesList = new List <ZoneStructureSO>();
            collection.zonesList.Add(zone);

            GameObject testObject = new GameObject();

            repository = testObject.AddComponent <StructureRepository>();
            repository.modelDataCollection = collection;
        }
Exemple #12
0
        public void StructureListByProduct()
        {
            var rep = new StructureRepository();

            var structures = rep.List("373666-E");

            structures.Should().NotBeNullOrEmpty();
        }
Exemple #13
0
        public void StructureList()
        {
            var rep = new StructureRepository();

            var structures = rep.List("MAINPROD_ASC");

            structures.Should().NotBeNull();
        }
Exemple #14
0
 public StructureModificationHelper(StructureRepository structureRepository, GridStructure grid, IPlacementManager placementManager, IResourceManager resourceManager)
 {
     this._structureRepository = structureRepository;
     this._grid             = grid;
     this._placementManager = placementManager;
     this._resourceManager  = resourceManager;
     _structureData         = ScriptableObject.CreateInstance <NullStructureSO>();
 }
Exemple #15
0
 public static void PrepareFactory(StructureRepository structureRepository, GridStructure grid, IPlacementManager placementManager, IResourceManager resourceManager)
 {
     _manufacturerPlacementHelper    = new ManufacturerPlacementHelper(structureRepository, grid, placementManager, resourceManager);
     _singleStructurePlacementHelper = new SingleStructurePlacementHelper(structureRepository, grid, placementManager, resourceManager);
     _structureRemovalHelper         = new StructureRemovalHelper(structureRepository, grid, placementManager, resourceManager);
     _strutureUpgradeHelper          = new StructureUpgradeHelper(structureRepository, grid, placementManager, resourceManager);
     _roadStructurePlacementHelper   = new RoadPlacementModificationHelper(structureRepository, grid, placementManager, resourceManager);
     _zonePlacementHelper            = new ZonePlacementHelper(structureRepository, grid, placementManager, Vector3.zero, resourceManager);
 }
 public IEnumerable <StructuralGroupViewModel> GetLeaves()
 {
     using (var structureRepository = new StructureRepository(ApplicationContext.DatabaseContext.Database, ApplicationContext.Services.MemberService))
     {
         var root   = structureRepository.GetRootForMember(Members.GetCurrentMember());
         var leaves = new List <StructuralGroup>();
         structureRepository.PopulateLeaves(root, leaves);
         var viewModels = leaves.Select(StructuralGroupViewModel.FromModel);
         return(viewModels);
     }
 }
Exemple #17
0
    public static StructureRepository CreateStructureRepositoryContainingRoad()
    {
        StructureRepository structureRepository = Substitute.For <StructureRepository>();
        CollectionSO        collection          = new CollectionSO();
        RoadStructureSO     road = new RoadStructureSO();

        road.buildingName        = "Road";
        road.prefab              = GetAGameObjectWithMaterial();
        collection.roadStructure = road;
        structureRepository.modelDataCollection = collection;
        return(structureRepository);
    }
        public void DeleteGroup(int id)
        {
            using (var structureRepository = new StructureRepository(ApplicationContext.DatabaseContext.Database, ApplicationContext.Services.MemberService))
            {
                var model = structureRepository.GetById(id);
                if (model == null)
                {
                    throw new HttpResponseException(HttpStatusCode.NotFound);
                }

                structureRepository.Delete(model);
            }
        }
Exemple #19
0
    public static StructureRepository CreateStructureRepositoryContainingFacility()
    {
        StructureRepository structureRepository = Substitute.For <StructureRepository>();
        CollectionSO        collection          = ScriptableObject.CreateInstance <CollectionSO>();
        SingleFacilitySO    facility            = ScriptableObject.CreateInstance <SingleFacilitySO>();

        facility.buildingName       = "Water Tower";
        facility.prefab             = GetAGameObjectWithMaterial();
        collection.singleStructures = new List <SingleStructureBaseSO>();
        collection.singleStructures.Add(facility);
        structureRepository.modelDataCollection = collection;

        return(structureRepository);
    }
Exemple #20
0
        public void Init()
        {
            GameObject gameManagerObject       = new GameObject();
            var        cameraMovementComponent = gameManagerObject.AddComponent <CameraMovement>();

            gameManagerObject.AddComponent <ResourceManagerTestStub>();

            _uIController = Substitute.For <UIController>();
            StructureRepository repository = Substitute.For <StructureRepository>();

            _gameManagerComponent = gameManagerObject.AddComponent <GameManager>();
            _gameManagerComponent.resourceManagerGameObject  = gameManagerObject;
            _gameManagerComponent.cameraMovement             = cameraMovementComponent;
            _gameManagerComponent.placementManagerGameObject = gameManagerObject;
            _gameManagerComponent.structureRepository        = repository;
            _gameManagerComponent.uIController = _uIController;
        }
        public StructuralGroupViewModel UpdateGroup(StructuralGroupViewModel viewModel)
        {
            var root = GetRoot();

            if (!viewModel.ValidateUpdate(root))
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            using (var structureRepository = new StructureRepository(ApplicationContext.DatabaseContext.Database, ApplicationContext.Services.MemberService))
            {
                var targetModel = structureRepository.GetById(viewModel.Id);
                targetModel.Name     = viewModel.Name;
                targetModel.ParentId = viewModel.ParentId;
                structureRepository.Update(targetModel);
            }

            return(viewModel);
        }
Exemple #22
0
    public static StructureRepository CreateStructureRepositoryContainingZoneStructure()
    {
        StructureRepository structureRepository = Substitute.For <StructureRepository>();
        CollectionSO        collection          = ScriptableObject.CreateInstance <CollectionSO>();
        ZoneStructureSO     zone        = ScriptableObject.CreateInstance <ZoneStructureSO>();
        GameObject          TestPrefab  = new GameObject();
        GameObject          TestPrefab2 = new GameObject();

        zone.buildingName  = "Commercial";
        zone.prefab        = GetAGameObjectWithMaterial();
        zone.upgradable    = true;
        zone.fullyUpgraded = false;
        zone.prefab        = TestPrefab;
        //zone.upgradePrefab = TestPrefab2;
        //zone.upgradePrefabVariants = new GameObject[1];
        collection.zoneStructures = new List <ZoneStructureSO>();
        collection.zoneStructures.Add(zone);
        structureRepository.modelDataCollection = collection;

        return(structureRepository);
    }
        public StructuralGroupViewModel InsertGroup(StructuralGroupViewModel viewModel)
        {
            var root = GetRoot();

            if (!viewModel.ValidateNew(root))
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            var type = root == null ? StructuralGroupType.Root
                : viewModel.TypeDescription == "Class" ? StructuralGroupType.Leaf : StructuralGroupType.Intermediate;

            var model = new StructuralGroup(type, viewModel.Name);

            model.ParentId = viewModel.ParentId;

            using (var structureRepository = new StructureRepository(ApplicationContext.DatabaseContext.Database, ApplicationContext.Services.MemberService))
            {
                structureRepository.Insert(model);
            }

            return(StructuralGroupViewModel.FromModel(model));
        }
        public void Init()
        {
            CollectionSO     collection = ScriptableObject.CreateInstance <CollectionSO>();
            RoadStructureSO  road       = ScriptableObject.CreateInstance <RoadStructureSO>();
            ZoneStructureSO  zone       = ScriptableObject.CreateInstance <ZoneStructureSO>();
            SingleFacilitySO facility   = ScriptableObject.CreateInstance <SingleFacilitySO>();

            //SingleStructureBaseSO single = ScriptableObject.CreateInstance<SingleStructureBaseSO>();

            road.buildingName     = "Road";
            zone.buildingName     = "Commercial";
            facility.buildingName = "PowerPlant";

            collection.roadStructure    = road;
            collection.singleStructures = new List <SingleStructureBaseSO>();
            collection.singleStructures.Add(facility);
            collection.zoneStructures.Add(zone);

            GameObject testObject = new GameObject();

            _repository = testObject.AddComponent <StructureRepository>();
            _repository.modelDataCollection = collection;
        }
Exemple #25
0
 public StructureDemolitionHelper(StructureRepository structureRepository, GridStructure grid, IPlacementManager placementManager, IResourceManager resourceManager) : base(structureRepository, grid, placementManager, resourceManager)
 {
 }
Exemple #26
0
 public BuildingManager(int cellSize, int width, int length, PlacementManager placementManager, StructureRepository structureRepository)
 {
     this.grid                = new GridStructure(cellSize, width, length);
     this.placementManager    = placementManager;
     this.structureRepository = structureRepository;
 }
Exemple #27
0
 public ManufacturerPlacementHelper(StructureRepository structureRepository, GridStructure grid, IPlacementManager placementManager, IResourceManager resourceManager)
     : base(structureRepository, grid, placementManager, resourceManager)
 {
 }
 public StructureController() : base()
 {
     structureRepository = new StructureRepository();
     productRepository   = new ProductRepository();
     logger = new SystemLogger();
 }
 public ZonePlacementHelper(StructureRepository structureRepository, GridStructure grid, IPlacementManager placementManager, Vector3 mapBottomLeftCorner, IResourceManager resourceManager)
     : base(structureRepository, grid, placementManager, resourceManager)
 {
     this._mapBottomLeftCorner = mapBottomLeftCorner;
 }
 public RoadPlacementModificationHelper(StructureRepository structureRepository, GridStructure grid, IPlacementManager placementManager, IResourceManager resourceManager)
     : base(structureRepository, grid, placementManager, resourceManager)
 {
 }