public void InvitationRepository_GetsInvitationWithExistingKey_GetsAnExistingUser()
        {
            var invitationRepository = new Mock <IInvitationRepository>();

            // Arrange
            var invitationDto = new InvitationDTO
            {
                Id            = 1,
                invitationKey = "fsdfsdfsdf",
                Used          = false
            };

            invitationRepository
            .Setup(x => x.FindByInvitationKey(It.Is <string>(i => i == "fsdfsdfsdf")))
            .Returns(invitationDto);

            invitationRepository
            .Setup(x => x.FindByInvitationKey(It.Is <string>(i => i != "fsdfsdfsdf")))
            .Returns((InvitationDTO)null);

            // Act

            var invitation = invitationRepository.Object.FindByInvitationKey("fsdfsdfsdf");

            // Assert
            Assert.NotNull(invitation);
            Assert.Equal(invitation.Id, invitationDto.Id);
        }
Ejemplo n.º 2
0
        public long AddInvitation(InvitationDTO invitationDto, long userID, string fileName)
        {
            var invitation = new Invitation();

            invitation.InvitationName = invitationDto.InvitationName;
            //invitation.InvitationDateTime = DateTime.Now;
            invitation.InvitationDateTime    = invitationDto.InvitationDateTime;
            invitation.InvitationDescription = invitationDto.InvitationDescription;
            invitation.TemplateID            = invitationDto.TemplateID;
            invitation.UserID  = userID;
            invitation.icsFile = fileName;

            _invitationService.Insert(invitation);

            var inviteesList = AddSelectedInvitees(invitationDto.inviteesData, userID, invitation.InvitationID);

            SaveChanges();

            // Uncomment below code to run Sending email
            foreach (var item in inviteesList)
            {
                var contact = _contactService.GetContactByID(item.ContactID);

                string url  = "http://invitationsbackend.azurewebsites.net/#!/viewInvitationForInvitee/" + invitation.InvitationID + "/" + item.InviteeID;
                string body = PopulateBody(url);
                SendHtmlFormattedEmail(contact.ContactEmail, "New Invitation!", body);

                //sendEmailViaWebApi(invitation.InvitationID, item.InviteeID, contact.ContactEmail, fileName);
            }

            // Edit consumed Users in package and send to subscription
            UpdateUserPackages(invitationDto.ConsumedPackage, userID);
            return(invitation.InvitationID);
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> FlightInvitation([FromBody] InvitationDTO model)
        {
            if (ModelState.IsValid)
            {
                var user = await UserService.GetCurrentUser();

                if (user != null)
                {
                    var reservation = user.ReservedFlights.SingleOrDefault(rf => rf.FlightReservationId == model.Id);

                    if (reservation != null)
                    {
                        var flight = await FlightService.GetFlight(reservation.FlightId);

                        if (flight != null)
                        {
                            var successfull = await UserService.InviteToFlight(model.FlightId, model.FriendUsername);

                            if (successfull)
                            {
                                return(Ok(200));
                            }
                            else
                            {
                                return(BadRequest("Friend not found!"));
                            }
                        }
                    }
                }
            }

            return(BadRequest("Not enough data provided."));
        }
Ejemplo n.º 4
0
        public void InvitationManager_SaveAInvitationWithUsed_ThrowsValidationError()
        {
            // Arrange
            var sessionMock       = new Mock <ISession>();
            var mapperMock        = new Mock <IMapper>();
            var unitOfWorkMock    = new Mock <IUnitOfWork>();
            var invitationManager = new InvitationManager(sessionMock.Object, mapperMock.Object, unitOfWorkMock.Object);

            unitOfWorkMock
            .SetupGet(x => x.IsManagedTransaction)
            .Returns(true);

            var invitationDTO = new InvitationDTO
            {
                Used          = true,
                UserId        = 1,
                invitationKey = "fsdfsdfdsfdsfdfs"
            };
            var invitationEntity = new InvitationEntity
            {
                Used          = true,
                invitationKey = "fsdfsdfdsfdsfdfs"
            };

            mapperMock
            .Setup(x => x.Map(It.IsAny <InvitationDTO>(), It.IsAny <InvitationEntity>()))
            .Returns(invitationEntity);
            // Act
            var saveResult = invitationManager.Save(invitationDTO);

            // Assert
            Assert.False(saveResult.Succeeded);
            Assert.True(saveResult.ErrorMessages.Count > 0);
        }
Ejemplo n.º 5
0
        public async Task RegisterService_RegisterWidthUsedInvitation_ReturnsFalseActionResult()
        {
            var mediatorMock    = new Mock <IMediator>();
            var registerService = new RegisterService(mediatorMock.Object);
            var key             = "Key";
            var user            = new UserDTO
            {
                Name               = "Test",
                Email              = "*****@*****.**",
                UserName           = "******",
                NormalizedUserName = "******"
            };
            var deriveduser = new UserDTO
            {
                Name               = "derivedTest",
                Email              = "*****@*****.**",
                UserName           = "******",
                NormalizedUserName = "******",
                Id           = 35,
                PasswordHash = "PasswordHash"
            };
            var invitation = new InvitationDTO
            {
                Id            = 1,
                Used          = true,
                UserId        = 35,
                invitationKey = "Key",
                User          = deriveduser
            };
            var password = "******";

            mediatorMock
            .Setup(x => x.Send(It.Is <GetInvitationByKeyQuery>(y => y.invitationKey == key), default))
            .Returns(Task.FromResult(invitation));



            var actionResult = await registerService.Register(user, password, key);

            Assert.False(actionResult.Suceeded);
        }
        public void InvitationRepository_ListInvitationWithExistingUserId_GetsAnExistingUser()
        {
            var invitationRepository = new Mock <IInvitationRepository>();

            // Arrange
            var invitationDto = new InvitationDTO
            {
                UserId        = 1,
                invitationKey = "fsdfsdfsdf",
                Used          = false
            };

            invitationRepository
            .Setup(x => x.FindByUserId(It.Is <int>(i => i != 1)))
            .Returns((InvitationDTO[])null);

            // Act

            var invitation = invitationRepository.Object.FindByUserId(1);

            // Assert
            Assert.NotNull(invitation);
        }