public InvitationService(IUnitOfWork unitOfWork, IRepository <Invitation> invitationRepositoryEF, IRepository <User> userRepositoryEF, IInvitationFactory invitationFactory)
        {
            if (unitOfWork == null)
            {
                throw new ArgumentNullException(string.Format(ExceptionConstants.ArgumentCannotBeNull, "unitOfWork"));
            }

            if (invitationRepositoryEF == null)
            {
                throw new ArgumentNullException(string.Format(ExceptionConstants.ArgumentCannotBeNull, "invitationRepositoryEF"));
            }

            if (userRepositoryEF == null)
            {
                throw new ArgumentNullException(string.Format(ExceptionConstants.ArgumentCannotBeNull, "userRepositoryEF"));
            }

            if (invitationFactory == null)
            {
                throw new ArgumentNullException(string.Format(ExceptionConstants.ArgumentCannotBeNull, "invitationFactory"));
            }

            this.unitOfWork             = unitOfWork;
            this.invitationRepositoryEF = invitationRepositoryEF;
            this.userRepositoryEF       = userRepositoryEF;
            this.invitationFactory      = invitationFactory;
        }
        public IActionResult Get(Guid id)
        {
            IActionResult result = null;

            if (result == null && id.Equals(Guid.Empty))
            {
                result = BadRequest("Missing id");
            }

            if (result == null)
            {
                using (ILifetimeScope scope = m_container.BeginLifetimeScope())
                {
                    IInvitationFactory factory    = scope.Resolve <IInvitationFactory>();
                    IInvitation        invitation = factory.Get(m_settings.Value, id);
                    if (invitation == null)
                    {
                        result = NotFound();
                    }
                    else
                    {
                        IMapper mapper = new Mapper(m_mapperConfiguration);
                        result = Ok(mapper.Map <Models.Invitation>(invitation));
                    }
                }
            }
            return(result);
        }
        public IActionResult Update([FromBody] Models.Invitation invitation)
        {
            IActionResult result          = null;
            IMapper       mapper          = null;
            IInvitation   innerInvitation = null;

            if (result == null && invitation == null)
            {
                result = BadRequest("Missing invitation data");
            }

            if (result == null && (!invitation.InvitationId.HasValue || invitation.InvitationId.Equals(Guid.Empty)))
            {
                result = BadRequest("Missing id");
            }

            if (result == null && !invitation.EventDate.HasValue)
            {
                result = BadRequest("Missing event date");
            }

            if (result == null && !invitation.RSVPDueDate.HasValue)
            {
                result = BadRequest("Missing RSVP date");
            }

            if (result == null && string.IsNullOrEmpty(invitation.Title))
            {
                result = BadRequest("Missing title");
            }

            if (result == null && string.IsNullOrEmpty(invitation.Invitee))
            {
                result = BadRequest("Missing invitee");
            }

            if (result == null)
            {
                mapper = new Mapper(m_mapperConfiguration);
                using (ILifetimeScope scope = m_container.BeginLifetimeScope())
                {
                    IInvitationFactory factory = scope.Resolve <IInvitationFactory>();
                    innerInvitation = factory.Get(m_settings.Value, invitation.InvitationId.Value);

                    if (innerInvitation == null)
                    {
                        result = NotFound();
                    }
                    else
                    {
                        mapper.Map <Models.Invitation, IInvitation>(invitation, innerInvitation);
                        IInvitationSaver saver = scope.Resolve <IInvitationSaver>();
                        saver.Update(m_settings.Value, innerInvitation);
                        invitation = mapper.Map <Models.Invitation>(innerInvitation);
                        result     = Ok(invitation);
                    }
                }
            }
            return(result);
        }
 public InvitationService(IInvitationFactory invitationFactory,
                          IEfRepository <Invitation> invitationRepository, IUnitOfWork unitOfWork)
 {
     this.invitationFactory    = invitationFactory;
     this.invitationRepository = invitationRepository;
     this.unitOfWork           = unitOfWork;
 }
Пример #5
0
        public static Invitation Map(this IInvitationEntity entity, IInvitationFactory factory)
        {
            var invitation = factory.CreateInvitation();

            entity.UserToUserRequestEntity.MapTo(invitation);
            invitation.InviterId           = entity.inviterId;
            invitation.InviteeId           = entity.inviteeId;
            invitation.InviteeEmailAddress = entity.inviteeEmailAddress;
            return(invitation);
        }
Пример #6
0
        public SendInvitesTests()
        {
            var options = new DbContextOptionsBuilder <EventContext>()
                          .UseInMemoryDatabase(databaseName: "Add_writes_to_database")
                          .Options;

            _context           = new EventContext(options);
            _invitationFactory = new Infrastructure.InvitationFactory();
            _eventFactory      = new Infrastructure.EventFactory();
            _eventRepository   = new EventRepository(_context);
            _emailService      = new Mock <IEmailService>().Object;
        }
        public IActionResult GetAll()
        {
            IActionResult result = null;

            using (ILifetimeScope scope = m_container.BeginLifetimeScope())
            {
                IInvitationFactory        factory     = scope.Resolve <IInvitationFactory>();
                IEnumerable <IInvitation> invitations = factory.GetAll(m_settings.Value);
                IMapper mapper = new Mapper(m_mapperConfiguration);
                result = Ok(
                    invitations.Select <IInvitation, Models.Invitation>(i => mapper.Map <Models.Invitation>(i))
                    );
            }

            return(result);
        }
        public IActionResult CreateResponse(Guid id, [FromBody] Models.InvitationResponse response)
        {
            IActionResult result = null;

            if (result == null && id.Equals(Guid.Empty))
            {
                result = BadRequest("Missing id");
            }

            if (result == null && response == null)
            {
                result = BadRequest("Missing response data");
            }

            if (result == null)
            {
                using (ILifetimeScope scope = m_container.BeginLifetimeScope())
                {
                    IInvitationFactory factory    = scope.Resolve <IInvitationFactory>();
                    IInvitation        invitation = factory.Get(m_settings.Value, id);
                    if (invitation == null)
                    {
                        result = NotFound();
                    }
                    else
                    {
                        IInvitationResponse      innerResponse = invitation.CreateResponse(response.IsAttending, response.AttendeeCount, response.Note);
                        IInvitationResponseSaver saver         = scope.Resolve <IInvitationResponseSaver>();
                        saver.Create(m_settings.Value, innerResponse);
                        IMapper mapper = new Mapper(m_mapperConfiguration);
                        result = Ok(mapper.Map <Models.InvitationResponse>(innerResponse));
                    }
                }
            }
            return(result);
        }
 private void SetupTest()
 {
     _invitationFactory = new InvitationFactory();
 }
 public NewEventAssembler(IInvitationFactory invitationFactory, IEventFactory eventFactory)
 {
     _invitationFactory = invitationFactory;
     _eventFactory      = eventFactory;
 }
 public SendInvitesUseCase(DbContext context, IInvitationFactory invitationsFactory, IEmailService emailService)
 {
     _context            = context;
     _invitationsFactory = invitationsFactory;
     _emailService       = emailService;
 }
Пример #12
0
 public PostEventController(IEventFactory eventFactory, IInvitationFactory invitationFactory)
 {
     _eventFactory      = eventFactory;
     _invitationFactory = invitationFactory;
 }
Пример #13
0
 public DTOConverter(IEventFactory eventFactory, IInvitationFactory invitationFactory)
 {
     _eventFactory      = eventFactory;
     _invitationFactory = invitationFactory;
 }