コード例 #1
0
ファイル: GroupServiceTests.cs プロジェクト: smurfolan/Likkle
        public void GroupAsNewArea_We_Create_Gets_Into_Our_HistoryGroups()
        {
            // arrange
            var userId = Guid.NewGuid();
            var dbUser = new User()
            {
                Id = userId,
                AutomaticSubscriptionSettings = null
            };

            var newAreaId = Guid.NewGuid();
            var newArea   = new Area()
            {
                Id        = newAreaId,
                Latitude  = 10,
                Longitude = 10,
                Radius    = RadiusRangeEnum.FiftyMeters
            };

            var populatedDatabase = new FakeLikkleDbContext()
            {
                Users = new FakeDbSet <User>()
                {
                    dbUser
                },
                Areas = new FakeDbSet <Area>()
                {
                    newArea
                }
            }
            .Seed();

            this._mockedLikkleUoW.Setup(uow => uow.UserRepository).Returns(new UserRepository(populatedDatabase));
            this._mockedLikkleUoW.Setup(uow => uow.AreaRepository).Returns(new AreaRepository(populatedDatabase));
            this._mockedLikkleUoW.Setup(uow => uow.TagRepository).Returns(new TagRepository(populatedDatabase));
            this._mockedLikkleUoW.Setup(uow => uow.GroupRepository).Returns(new GroupRepository(populatedDatabase));

            var newGroupRequest = new GroupAsNewAreaRequestDto()
            {
                Name   = "New group",
                TagIds = new List <Guid>()
                {
                    Guid.Parse("caf77dee-a94f-49cb-b51f-e0c0e1067541"), Guid.Parse("bd456f08-f137-4382-8358-d52772c2dfc8")
                },
                Radius    = RadiusRangeEnum.FiveHundredMeters,
                UserId    = userId,
                Latitude  = 10,
                Longitude = 10
            };

            // act
            var newGroupId = this._groupService.InserGroupAsNewArea(newGroupRequest);

            // assert
            var user = this._mockedLikkleUoW.Object.UserRepository.GetUserById(userId);

            Assert.IsNotNull(user.HistoryGroups);
            Assert.IsTrue(user.HistoryGroups.Select(hg => hg.GroupId).Contains(newGroupId));
        }
コード例 #2
0
        public void We_Can_Insert_Grou_As_New_Area()
        {
            // arrange
            var userId = Guid.NewGuid();
            var dbUser = new User()
            {
                Id = userId,
                AutomaticSubscriptionSettings = null
            };

            var populatedDatabase = new FakeLikkleDbContext()
            {
                Users = new FakeDbSet <User>()
                {
                    dbUser
                }
            }
            .Seed();

            this._mockedLikkleUoW.Setup(uow => uow.UserRepository).Returns(new UserRepository(populatedDatabase));
            this._mockedLikkleUoW.Setup(uow => uow.AreaRepository).Returns(new AreaRepository(populatedDatabase));
            this._mockedLikkleUoW.Setup(uow => uow.TagRepository).Returns(new TagRepository(populatedDatabase));
            this._mockedLikkleUoW.Setup(uow => uow.GroupRepository).Returns(new GroupRepository(populatedDatabase));

            var newGroupRequest = new GroupAsNewAreaRequestDto()
            {
                Longitude = 10,
                Latitude  = 10,
                Name      = "Group 1",
                Radius    = RadiusRangeEnum.FiftyMeters,
                TagIds    =
                    new List <Guid>()
                {
                    Guid.Parse("caf77dee-a94f-49cb-b51f-e0c0e1067541"),
                    Guid.Parse("bd456f08-f137-4382-8358-d52772c2dfc8")
                },
                UserId = userId
            };

            var allAreasCount = this._areaService.GetAllAreas().Count();

            Assert.AreEqual(allAreasCount, 0);

            // act
            var newGroupId = this._groupService.InserGroupAsNewArea(newGroupRequest);

            // assert
            allAreasCount = this._areaService.GetAllAreas().Count();

            Assert.AreNotEqual(newGroupId, Guid.Empty);
            Assert.AreEqual(allAreasCount, 1);

            var newlyCreatedGroup = this._groupService.GetGroupById(newGroupId);

            Assert.IsNotNull(newlyCreatedGroup);
        }
コード例 #3
0
        public async Task <IHttpActionResult> Post([FromBody] GroupAsNewAreaRequestDto newGroup)
        {
            // TODO: Validate if really the passed groups belong to the passed coordinates
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                var newlyCreatedGroupId = await Task.FromResult(this._groupService.InserGroupAsNewArea(newGroup));

                return(Created("api/v1/groups/" + newlyCreatedGroupId, "Success"));
            }
            catch (Exception ex)
            {
                var errorMessage = _apiLogger.OnActionException(ActionContext, ex);
                return(InternalServerError(new HttpException(errorMessage)));
            }
        }
コード例 #4
0
ファイル: GroupService.cs プロジェクト: smurfolan/Likkle
        public Guid InserGroupAsNewArea(GroupAsNewAreaRequestDto newGroup)
        {
            // 1. Add new area
            var areaEntity = new Area()
            {
                Latitude  = newGroup.Latitude,
                Longitude = newGroup.Longitude,
                Radius    = newGroup.Radius,
                IsActive  = true
            };

            areaEntity.ApproximateAddress = this._geoCodingManager.GetApproximateAddress(new NewAreaRequest()
            {
                Latitude  = newGroup.Latitude,
                Longitude = newGroup.Longitude
            });

            var newAreaId = this._unitOfWork.AreaRepository.InsertArea(areaEntity);

            this._unitOfWork.AreaRepository.Save();

            // 2. Add new group
            var newGroupEntity = this._mapper.Map <GroupAsNewAreaRequestDto, Group>(newGroup);

            this.AssignBaseGroupInfo(newGroup, newGroupEntity);

            var newlyCreatedArea = this._unitOfWork.AreaRepository.GetAreaById(newAreaId);

            newGroupEntity.Areas.Add(newlyCreatedArea);

            this._unitOfWork.GroupRepository.InsertGroup(newGroupEntity);

            this._unitOfWork.GroupRepository.Save();

            return(newGroupEntity.Id);
        }