public static DateTime? GetRemanderDate(Event eventToEdit)
        {
            if (eventToEdit.ReminderDate != null)
            {
                var remainderDate = ConvertDateTime.ConvertStartDateToRightZoneTime((DateTime)eventToEdit.ReminderDate);

                return remainderDate;
            }

            return null;
        }
        public bool EventHasNotPassed(Event eventForInvitation)
        {
            var todaysDate = ConvertDateTime.ToSwissTimezone(DateTime.UtcNow);
            var compareDates = eventForInvitation.StartDate.GetValueOrDefault().CompareTo(todaysDate);

            var notPassed = compareDates >= 0;
            return notPassed;
        }
 public static DateTime GetListDate(Event eventToEdit)
 {
     var listDate = eventToEdit.ListDate;
     return listDate.GetValueOrDefault();
 }
 private static bool CheckIfEventHasPassed(Event @event)
 {
     var dateToday = DateTime.UtcNow.Date;
     var listDate = @event.ListDate.GetValueOrDefault().Date;
     bool canStillRespond = dateToday <= listDate;
     return canStillRespond;
 }
 public void SaveEvent(Event @event)
 {
     using (_db = new SchedulerDbContext())
     {
         _db.Users.Find(UserId).Events.Add(@event);
         _db.SaveChanges();
     }
 }
 private string CreateUrl(string actionName, string controllerName, Event eventForInvitation, int participantId)
 {
     if (participantId == 0)
     {
         return Url.Action(actionName, controllerName, new RouteValueDictionary(new { id = eventForInvitation.Id }), "https");
     }
     return Url.Action(actionName, controllerName, new RouteValueDictionary(new { id = eventForInvitation.Id, pId = participantId }), "https");
 }
 private static int GetParticipantId(Event eventForInvitation, string email)
 {
     return eventForInvitation.Participants
                              .Where(p => p.Email == email)
                              .Select(p => p.Id)
                              .FirstOrDefault();
 }
 private void SaveParticipantInDb(string email, Event eventForInvitation)
 {
     var invitedParticipant = _service.CreateParticipant(email);
     eventForInvitation.Participants.Add(invitedParticipant);
     _db.SaveChanges();
 }
        private EmailInformation ComposeEmailInfo(Event eventForInvitation,
            string email)
        {

            var user = _service.GetUser();
            var participantId = GetParticipantId(eventForInvitation, email);

            return new EmailInformation
            {
                CurrentEvent = eventForInvitation,
                OrganizerEmail = user.Email,
                OrganizerName = user.FirstName + " " + user.LastName,
                ParticipantId = participantId,
                ParticipantEmail = email,
                ResponseUrl = CreateUrl("Response", "Response", eventForInvitation, participantId),
                RemainderDate = eventForInvitation.ReminderDate.GetValueOrDefault(),
                ListDate = eventForInvitation.ListDate.GetValueOrDefault(),
                EventDetailsUrl = CreateUrl("Details", "Events", eventForInvitation, 0),
                EmailSubject = " Invitation"
            };
        }
        public EventsController Arrange_Event_Controller()
        {
            var testEvent1 = new Event { Id = 1 };
            var testEvent2 = new Event { Id = 2 };

            var testUser = new SchedulerUser { Id = "99fd20b8-7194-31e1-945b-e6736c732499", Events = new List<Event> { testEvent1, testEvent2 } };

            var users = new List<SchedulerUser> { testUser }.AsQueryable();
            var service = new Service();


            var mockSet = new Mock<DbSet<SchedulerUser>>();
            mockSet.As<IQueryable<SchedulerUser>>().Setup(m => m.Provider).Returns(users.Provider);
            mockSet.As<IQueryable<SchedulerUser>>().Setup(m => m.Expression).Returns(users.Expression);
            mockSet.As<IQueryable<SchedulerUser>>().Setup(m => m.ElementType).Returns(users.ElementType);
            mockSet.As<IQueryable<SchedulerUser>>().Setup(m => m.GetEnumerator()).Returns(users.GetEnumerator);

            var context = new Mock<SchedulerDbContext>();
            context.Setup(c => c.Users).Returns(mockSet.Object);

            var controller = new EventsController(context.Object, service) { ControllerContext = MockContext() };

            return controller;
        }