Exemplo n.º 1
0
        public void TestExistingSpaces(string stringGuid)
        {
            var userId   = Guid.Parse(stringGuid);
            var expected = new Space()
            {
                SpaceId = userId
            };

            var expectedServiceResult = new List <Space>()
            {
                expected
            };


            //mocking repositories
            var mockSpaceRepository = new Mock <Repository <Space> >();

            //mocking repositories methods
            mockSpaceRepository
            .Setup(n => n.Get(It.IsAny <Expression <Func <Space, bool> > >(), It.IsAny <Func <IQueryable <Space>, IOrderedQueryable <Space> > >(), string.Empty))
            .Returns(expectedServiceResult);

            var temporarySpaceService = new SpaceService(_dbContext.Object);

            var result = temporarySpaceService.GetSpace(userId);

            Assert.Equal(expected, result);
        }
Exemplo n.º 2
0
        public IHttpActionResult Search(SpaceQuery query)
        {
            query.Count = true;
            var result = SpaceService.Search(query);

            return(Ok(new ScrollableList <Space>(result, Request.RequestUri)));
        }
Exemplo n.º 3
0
        public string IsValidTarget(NWCreature user, NWItem item, NWObject target, Location targetLocation)
        {
            NWArea area = user.Area;

            if (area.GetLocalInt("BUILDING_TYPE") != (int)Enumeration.BuildingType.Starship)
            {
                return("This repair kit may only be used inside a starship");
            }

            string structureID   = area.GetLocalString("PC_BASE_STRUCTURE_ID");
            Guid   structureGuid = new Guid(structureID);

            PCBaseStructure pcbs      = DataService.PCBaseStructure.GetByID(structureGuid);
            BaseStructure   structure = DataService.BaseStructure.GetByID(pcbs.BaseStructureID);

            if (structure.Durability == pcbs.Durability)
            {
                return("This starship is already fully repaired.");
            }

            bool   canRepair = (PerkService.GetCreaturePerkLevel(new NWPlayer(user), PerkType.CombatRepair) >= 1);
            PCBase pcBase    = DataService.PCBase.GetByID(pcbs.PCBaseID);

            if (!canRepair && SpaceService.IsLocationSpace(pcBase.ShipLocation))
            {
                return("You need the Combat Repair perk to repair ships in space.");
            }

            return("");
        }
Exemplo n.º 4
0
 public SpaceController(SpaceService spaceService, SpaceTreeService spaceTreeService, IHttpRequestProvider requestProvider, ContextService contextService)
 {
     _spaceService     = spaceService;
     _spaceTreeService = spaceTreeService;
     _requestProvider  = requestProvider;
     _contextService   = contextService;
 }
Exemplo n.º 5
0
        public async void Update_ErrorsOccurred_ShouldReturnErrorResponse()
        {
            var mock          = new ServiceMockFacade <ISpaceService, ISpaceRepository>();
            var model         = new ApiSpaceServerRequestModel();
            var validatorMock = new Mock <IApiSpaceServerRequestModelValidator>();

            validatorMock.Setup(x => x.ValidateUpdateAsync(It.IsAny <int>(), It.IsAny <ApiSpaceServerRequestModel>())).Returns(Task.FromResult(new ValidationResult(new List <ValidationFailure>()
            {
                new ValidationFailure("text", "test")
            })));
            mock.RepositoryMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult(new Space()));
            var service = new SpaceService(mock.LoggerMock.Object,
                                           mock.MediatorMock.Object,
                                           mock.RepositoryMock.Object,
                                           validatorMock.Object,
                                           mock.DALMapperMockFactory.DALSpaceMapperMock,
                                           mock.DALMapperMockFactory.DALSpaceSpaceFeatureMapperMock);

            UpdateResponse <ApiSpaceServerResponseModel> response = await service.Update(default(int), model);

            response.Should().NotBeNull();
            response.Success.Should().BeFalse();
            validatorMock.Verify(x => x.ValidateUpdateAsync(It.IsAny <int>(), It.IsAny <ApiSpaceServerRequestModel>()));
            mock.MediatorMock.Verify(x => x.Publish(It.IsAny <SpaceUpdatedNotification>(), It.IsAny <CancellationToken>()), Times.Never());
        }
Exemplo n.º 6
0
        public async Task Creating_An_Uncreatable_Space_Fails()
        {
            // arrange
            var spaceRepository = new Mock <ISpaceRepository>();

            spaceRepository.Setup(c => c.Add(It.IsAny <ISpace>()))
            .Throws(new UnableToCreateSpaceException("nah", new Exception()));

            var entityFactory = new InMemoryEntityFactory();
            var spaceService  = new SpaceService(entityFactory, spaceRepository.Object);

            var createSpacePresenter = new CreateSpacePresenter();

            var useCase = new Application.UseCases.CreateSpace(createSpacePresenter, spaceService);
            var input   = new CreateSpaceInput(new SpaceName("Demo"));

            // act
            await useCase.Execute(input);

            // assert
            Assert.Single(createSpacePresenter.UnableToCreate);
            Assert.Empty(createSpacePresenter.CreatedSpaces);
            Assert.Empty(createSpacePresenter.AlreadyExisting);

            spaceRepository.Verify(c => c.Add(It.Is <ISpace>(s => s.Name.ToString() == "Demo")));
            spaceRepository.VerifyNoOtherCalls();
        }
Exemplo n.º 7
0
        public override void OnPhysicalAttacked(NWCreature self)
        {
            base.OnPhysicalAttacked(self);
            NWCreature attacker = _.GetLastAttacker();

            SpaceService.OnPhysicalAttacked(self, attacker);
        }
Exemplo n.º 8
0
 public string PostBuilding(string value)
 {
     try
     {
         //set activity user async
         ActivityFactory.SetActivityAsync(User.Identity.GetUserId());
         var          building = JsonConvert.DeserializeObject <Building>(value);
         SpaceService service  = new SpaceService(User.Identity.GetUserId());
         if (!db.Buildings.Where(b => b.Id == building.Id).Any())
         {
             building = (Building)EntityService.OnCreateEntity(building, User.Identity.GetUserId());
             db.Buildings.Add(building);
             db.SaveChanges();
             return(JsonConvert.SerializeObject(new { error = false, data = building }));
         }
         else
         {
             db.Entry(building).State = EntityState.Modified;
             db.SaveChanges();
             return(JsonConvert.SerializeObject(new { error = false, data = building }));
         }
     }
     catch (Exception ex)
     {
         logger.Error(ex.Message);
         return(JsonConvert.SerializeObject(new { error = true, errorMessage = "ServerError" }));
     }
 }
Exemplo n.º 9
0
        public string GetBuildings()
        {
            try
            {
                //set activity user async
                ActivityFactory.SetActivityAsync(User.Identity.GetUserId());

                var          Buildings = new List <Building>();
                SpaceService service   = new SpaceService(User.Identity.GetUserId());
                Buildings = db.Buildings.Where(a => a.DeletedOn == null && a.SpaceId == service.Space.Id).OrderByDescending(a => a.CreatedOn).ToList();


                var BuildingsSerialized = JsonConvert.SerializeObject(new { data = Buildings },
                                                                      new JsonSerializerSettings
                {
                    ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                });

                return(BuildingsSerialized);
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message);
                return(JsonConvert.SerializeObject(new { error = true, errorMessage = "ServerError" }));
            }
        }
Exemplo n.º 10
0
        /// <summary>
        /// Display latest <see cref="Post"/> objects in current space.
        /// </summary>
        /// <param name="app">The app</param>
        /// <param name="query">An object with query parameters for search, paging etc.</param>
        public override ActionResult Get(Posts app, Query query)
        {
            var model = new PostsViewModel();

            if (!IsEmbedded)
            {
                model.Members = SpaceService.GetMembers(WeavyContext.Current.Space.Id, new MemberQuery {
                    Top = 6, OrderBy = "Random", Count = true
                });
                model.ExternalMemberCount = SpaceService.GetMembers(WeavyContext.Current.Space.Id, new MemberQuery {
                    External = true, CountOnly = true
                }).TotalCount ?? 0;
                model.InviteCount = InviteService.Search(new InviteQuery()
                {
                    Top = 6, OrderBy = "Random", SpaceId = app.SpaceId, CountOnly = true
                }).TotalCount ?? 0;
            }

            query.Top   = PageSizes[0] / 5; // NOTE: reduced number of items/page for better perf.
            model.Posts = PostService.GetPosts(app.Id, opts: query);
            if (Request.IsAjaxRequest())
            {
                // infinite scroll, return partial view
                return(PartialView("_Posts", model.Posts));
            }

            // REVIEW: can we do this automagically?
            return(View(IsEmbedded ? "Get.Embedded": null, model));
        }
Exemplo n.º 11
0
        public override PlayerDialog SetUp(NWPlayer player)
        {
            string     header;
            DialogPage mainOptions;

            if (!SpaceService.IsLocationSpace(SpaceService.GetShipLocation(player.Area)))
            {
                header      = "You can only crew the guns while the ship is in space.";
                mainOptions = new DialogPage(header);
            }
            else
            {
                SpaceService.CreateShipInSpace(player.Area);

                header = "Crewing the ship's guns allows the ship to fire in any direction using the gunner's Piloting skill. " +
                         "If the target is in front of the ship, both the pilot's and the gunner's skills are added to the shot. " +
                         "Unlike the pilot, the gunner can select targets using the quickbar option.  To stop crewing the guns, " +
                         "type /exit or use the quickbar button.";
                mainOptions = new DialogPage(header, "Crew the guns!");
            }

            PlayerDialog dialog = new PlayerDialog("MainPage");

            dialog.AddPage("MainPage", mainOptions);

            return(dialog);
        }
Exemplo n.º 12
0
        public void ChoosesCorrectTarget()
        {
            ClosestOpponentTargeter targeter = new ClosestOpponentTargeter(new Distance(1.0));

            Hero attacker      = new Hero(new TeamId(0), _initialHp);
            Hero teammate      = new Hero(new TeamId(0), _initialHp);
            Hero deadOpponent  = new Hero(new TeamId(1), new HitPoints(0));
            Hero farOpponent   = new Hero(new TeamId(2), _initialHp);
            Hero closeOpponent = new Hero(new TeamId(3), _initialHp);

            HeroService  heroService  = new HeroService(new[] { attacker, teammate, deadOpponent, farOpponent, closeOpponent });
            SpaceService spaceService = new SpaceService();

            spaceService.SetHeroPosition(attacker, new Position(0.0, 0.0));
            spaceService.SetHeroPosition(teammate, new Position(0.1, 0.0));
            spaceService.SetHeroPosition(deadOpponent, new Position(0.0, 0.2));
            spaceService.SetHeroPosition(farOpponent, new Position(0.0, 0.9));
            spaceService.SetHeroPosition(closeOpponent, new Position(0.3, 0.4));

            GameContext context = new GameContext(heroService, new InputService(), new TimeService(), spaceService, new RandomService(new Random()));

            Hero[] targets = targeter.EnumerateTargets(attacker, context).ToArray();

            targets.Should().HaveCount(1);
            targets.Should().HaveElementAt(0, closeOpponent);
        }
Exemplo n.º 13
0
        public ListSpacesTest()
        {
            var context       = new InMemoryContext();
            var entityFactory = new InMemoryEntityFactory();

            _spaceRepository = new SpaceRepository(context);
            _spaceService    = new SpaceService(entityFactory, _spaceRepository);
        }
Exemplo n.º 14
0
 /// <summary>
 /// DocumentController
 /// </summary>
 /// <param name="documentService"></param>
 /// <param name="spaceService"></param>
 public UploadController(DocumentService documentService,
                         SpaceService spaceService,
                         IHttpRequestProvider requestProvider,
                         IStorePolicy storePolicy)
 {
     _documentService = documentService;
     _spaceService    = spaceService;
     _requestProvider = requestProvider;
 }
Exemplo n.º 15
0
        public GitFixtures()
        {
            _entityFactory = new GitEntityFactory();

            SpaceRepository = new SpaceRepository(_configuration.Configuration);
            PageRepository  = new PageRepository();

            SpaceService = new SpaceService(SpaceFactory, SpaceRepository);
        }
Exemplo n.º 16
0
        public override void DoAction(NWPlayer player, string pageName, int responseID)
        {
            if (responseID == 1)
            {
                SpaceService.DoCrewGuns(player, player.Area);
            }

            EndConversation();
        }
Exemplo n.º 17
0
        private void LoadBaseDetailsPage()
        {
            var    data           = BaseService.GetPlayerTempData(GetPC());
            PCBase pcBase         = DataService.PCBase.GetByID(data.PCBaseID);
            Area   dbArea         = DataService.Area.GetByResref(pcBase.AreaResref);
            var    owner          = DataService.Player.GetByID(pcBase.PlayerID);
            bool   canExtendLease = BasePermissionService.HasBasePermission(GetPC(), pcBase.ID, BasePermission.CanExtendLease);
            bool   canCancelLease = BasePermissionService.HasBasePermission(GetPC(), pcBase.ID, BasePermission.CanCancelLease);

            int dailyUpkeep = dbArea.DailyUpkeep + (int)(dbArea.DailyUpkeep * (owner.LeaseRate * 0.01f));

            string header = ColorTokenService.Green("Location: ") + dbArea.Name + " (" + pcBase.Sector + ")\n\n";

            header += ColorTokenService.Green("Owned By: ") + owner.CharacterName + "\n";
            header += ColorTokenService.Green("Purchased: ") + pcBase.DateInitialPurchase + "\n";
            header += ColorTokenService.Green("Rent Due: ") + pcBase.DateRentDue + "\n";
            header += ColorTokenService.Green("Daily Upkeep: ") + dailyUpkeep + " credits\n\n";
            header += "Daily upkeep may be paid up to 30 days in advance.\n";

            // Starships have slightly different setups.  They only pay rent when in a public starport and
            // the cost is set by the starport.
            if (pcBase.PCBaseTypeID == (int)Enumeration.PCBaseType.Starship)
            {
                canCancelLease = false;

                if (SpaceService.IsLocationPublicStarport(pcBase.ShipLocation))
                {
                    var           shipLocationGuid = new Guid(pcBase.ShipLocation);
                    SpaceStarport starport         = DataService.SpaceStarport.GetByID(shipLocationGuid);
                    header  = ColorTokenService.Green("Location: ") + starport.Name + " (" + starport.Planet + ")\n";
                    header += ColorTokenService.Green("Rent Due: ") + pcBase.DateRentDue + "\n";
                    header += ColorTokenService.Green("Daily Upkeep: ") + starport.Cost + " credits\n\n";
                }
                else
                {
                    header         = "This ship has no lease currently.  You only need to pay when in a starport.";
                    canExtendLease = false;
                }
            }

            SetPageHeader("BaseDetailsPage", header);

            const int MaxAdvancePay = 30;
            DateTime  newRentDate   = pcBase.DateRentDue.AddDays(1);
            TimeSpan  ts            = newRentDate - DateTime.UtcNow;
            bool      canPayRent    = ts.TotalDays < MaxAdvancePay;

            SetResponseVisible("BaseDetailsPage", 1, canPayRent && canExtendLease);

            newRentDate = pcBase.DateRentDue.AddDays(7);
            ts          = newRentDate - DateTime.UtcNow;
            canPayRent  = ts.TotalDays < MaxAdvancePay;

            SetResponseVisible("BaseDetailsPage", 2, canPayRent && canExtendLease);
            SetResponseVisible("BaseDetailsPage", 3, canCancelLease);
        }
Exemplo n.º 18
0
        public IHttpActionResult UpdateMember(int id, int userid, [FromBody] Access access)
        {
            var space = SpaceService.Get(id);

            if (space == null)
            {
                ThrowResponseException(HttpStatusCode.NotFound, $"Space with id {id} not found.");
            }
            return(Ok(SpaceService.AddMember(id, userid, access)));
        }
Exemplo n.º 19
0
        // GET: Spaces
        public string GetSpaceForCurrentUser()
        {
            SpaceService spaceService = new SpaceService(User.Identity.GetUserId());

            if (spaceService.Space != null)
            {
                return(JsonConvert.SerializeObject(spaceService.Space));
            }
            return("");
        }
Exemplo n.º 20
0
 public HomeController(DocumentService documentService,
                       SpaceService spaceService,
                       SpaceTreeService spaceTreeService,
                       ContextService contextService)
 {
     _documentService  = documentService;
     _spaceService     = spaceService;
     _spaceTreeService = spaceTreeService;
     _contextService   = contextService;
 }
Exemplo n.º 21
0
        public Space GetSpace(int id)
        {
            var space = SpaceService.Get(id);

            if (space == null)
            {
                ThrowResponseException(HttpStatusCode.NotFound, "Space with id " + id + " not found");
            }
            return(space);
        }
Exemplo n.º 22
0
        public IHttpActionResult RemoveMember(int id, int userid)
        {
            var space = SpaceService.Get(id);

            if (space == null)
            {
                ThrowResponseException(HttpStatusCode.NotFound, $"Space with id {id} not found.");
            }
            return(Ok(SpaceService.RemoveMember(id, userid)));
        }
Exemplo n.º 23
0
 public ViewController(DocumentService documentService,
                       SpaceService spaceService,
                       IStorePolicy storePolicy,
                       ContextService contextService)
 {
     _documentService = documentService;
     _spaceService    = spaceService;
     _contextService  = contextService;
     _storePolicy     = storePolicy;
     _storePolicy     = storePolicy;
 }
Exemplo n.º 24
0
        public IHttpActionResult Delete(int id)
        {
            var space = SpaceService.Get(id, trashed: true);

            if (space == null)
            {
                ThrowResponseException(HttpStatusCode.NotFound, $"Space with id {id} not found.");
            }
            space = SpaceService.Delete(id);
            return(Ok(space));
        }
Exemplo n.º 25
0
        public IHttpActionResult GetMembers(int id)
        {
            var space = SpaceService.Get(id);

            if (space == null)
            {
                ThrowResponseException(HttpStatusCode.NotFound, $"Space with id {id} not found.");
            }
            var members = SpaceService.GetMembers(id);

            return(Ok(members));
        }
Exemplo n.º 26
0
        public IHttpActionResult Insert(int id, App model)
        {
            var space = SpaceService.Get(id);

            if (space == null)
            {
                ThrowResponseException(HttpStatusCode.NotFound, $"Space with id {id} not found.");
            }

            var app = AppService.Insert(model, space);

            return(Created($"{WeavyContext.Current.ApplicationPath}api/apps/{app.Id}", app));
        }
Exemplo n.º 27
0
 public DocumentController(DocumentService documentService,
                           SpaceService spaceService,
                           SpaceTreeService spaceTreeService,
                           IStorePolicy storePolicy,
                           IHttpRequestProvider requestProvider,
                           ContextService contextService)
 {
     _documentService  = documentService;
     _spaceService     = spaceService;
     _spaceTreeService = spaceTreeService;
     _requestProvider  = requestProvider;
     _contextService   = contextService;
     _storePolicy      = storePolicy;
 }
Exemplo n.º 28
0
        public InMemoryFixtures()
        {
            Context = new InMemoryContext();

            var entityFactory = new InMemoryEntityFactory();

            SpaceFactory = entityFactory;
            PageFactory  = entityFactory;

            SpaceRepository = new SpaceRepository(Context);
            PageRepository  = new PageRepository(Context);

            SpaceService = new SpaceService(SpaceFactory, SpaceRepository);
        }
Exemplo n.º 29
0
        public IHttpActionResult Update(int id, Delta <Space> model)
        {
            var space = SpaceService.Get(id);

            if (space == null)
            {
                ThrowResponseException(HttpStatusCode.NotFound, $"Space with id {id} not found.");
            }

            // patch the original space
            model.Patch(space);

            space = SpaceService.Update(space);
            return(Ok(space));
        }
Exemplo n.º 30
0
        public async void Get_null_record()
        {
            var mock = new ServiceMockFacade <ISpaceRepository>();

            mock.RepositoryMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <Space>(null));
            var service = new SpaceService(mock.LoggerMock.Object,
                                           mock.RepositoryMock.Object,
                                           mock.ModelValidatorMockFactory.SpaceModelValidatorMock.Object,
                                           mock.BOLMapperMockFactory.BOLSpaceMapperMock,
                                           mock.DALMapperMockFactory.DALSpaceMapperMock);

            ApiSpaceResponseModel response = await service.Get(default(int));

            response.Should().BeNull();
            mock.RepositoryMock.Verify(x => x.Get(It.IsAny <int>()));
        }