private void OnGUI()
        {
            _backgroundGrid.Draw();

            OnGui?.Invoke();
            ProcessedEvents?.Invoke(Event.current);

            ProcessEvents(Event.current);

            if (GUI.changed)
            {
                Repaint();
            }
        }
        public virtual void SendEmailEventDelete(ProcessedEvents eventItem, ProcessedGroup group)
        {
            var messageSubject = $"Delete {eventItem.Title}";

            _logger.LogInformation("Sending event delete email");

            var emailBody = new EventDelete {
                Title = eventItem.Title
            };

            var emailsTosend = string.Join(",", group.GroupAdministrators.Items.Select(i => i.Email).ToList());

            emailsTosend = emailsTosend + "," +
                           _configuration.GetGroupSubmissionEmail(_businessId.ToString());

            if (!string.IsNullOrEmpty(emailsTosend))
            {
                _emailClient.SendEmailToService(new EmailMessage(messageSubject, _emailClient.GenerateEmailBodyFromHtml(emailBody),
                                                                 _fromEmail, emailsTosend, new List <IFormFile>()));
            }
        }
        // ReSharper disable once InconsistentNaming
        private void OnGUI()
        {
            _backgroundGrid.Draw();

            // ReSharper disable once UseNullPropagation
            if (OnGui != null)
            {
                OnGui.Invoke();
            }

            // ReSharper disable once UseNullPropagation
            if (ProcessedEvents != null)
            {
                ProcessedEvents.Invoke(Event.current);
            }

            ProcessEvents(Event.current);

            if (GUI.changed)
            {
                Repaint();
            }
        }
        public EventsControllerTest()
        {
            _eventsItem = new Event {
                Title    = "title", Slug = "slug", Teaser = "teaser", ImageUrl = "image.png", ThumbnailImageUrl = "image.png", Description = "description", Fee = "fee",
                Location = "location", SubmittedBy = "submittedBy", EventDate = new DateTime(2016, 12, 30, 00, 00, 00), StartTime = "startTime", EndTime = "endTime", Breadcrumbs = new List <Crumb>(), Group = _group, Alerts = _alerts
            };
            _categories = new List <string> {
                "Category 1", "Category 2"
            };

            var mockTime = new Mock <ITimeProvider>();

            _datetimeCalculator = new DateCalculator(mockTime.Object);

            var eventsCalendar = new EventResponse(new List <Event> {
                _eventsItem
            }, _categories);
            var eventItem = new ProcessedEvents("title", "slug", "teaser", "image.png", "image.png", "description",
                                                "fee", "location", "submittedBy", new DateTime(2016, 12, 30, 00, 00, 00), "startTime", "endTime",
                                                new List <Crumb>(), _categories, new MapDetails(), "booking information", _group, _alerts, string.Empty, string.Empty);

            var eventHomepage = new EventHomepage {
                Categories = new List <EventCategory>(), Rows = new List <EventHomepageRow>()
            };

            // setup responses (with mock data)
            responseListing = new HttpResponse(200, eventsCalendar, "");
            _responseDetail = new HttpResponse(200, eventItem, "");
            var responseHomepage = new HttpResponse(200, eventHomepage, "");
            var response404      = new HttpResponse(404, null, "not found");

            // setup mocks
            _repository.Setup(o => o.Get <EventHomepage>(It.IsAny <string>(), It.IsAny <List <Query> >()))
            .ReturnsAsync(responseHomepage);

            _repository.Setup(o => o.Get <EventResponse>(It.IsAny <string>(), It.IsAny <List <Query> >()))
            .ReturnsAsync(responseListing);

            _processedContentRepository.Setup(o => o.Get <Event>("event-of-the-century", It.Is <List <Query> >(l => l.Count == 0)))
            .ReturnsAsync(_responseDetail);

            _processedContentRepository.Setup(o => o.Get <Event>("404-event", It.Is <List <Query> >(l => l.Count == 0)))
            .ReturnsAsync(response404);

            _emailClient = new Mock <IHttpEmailClient>();
            _applicationConfiguration = new Mock <IApplicationConfiguration>();
            _logger      = new Mock <ILogger <EventsController> >();
            _emaillogger = new Mock <ILogger <EventEmailBuilder> >();

            _applicationConfiguration.Setup(a => a.GetEmailEmailFrom(It.IsAny <string>()))
            .Returns(AppSetting.GetAppSetting("GroupSubmissionEmail"));

            _eventEmailBuilder = new EventEmailBuilder(_emaillogger.Object, _emailClient.Object, _applicationConfiguration.Object, new BusinessId("businessId"));

            _mockRssFeedFactory = new Mock <IRssFeedFactory>();
            _config             = new Mock <IApplicationConfiguration>();
            _filteredUrl        = new Mock <IFilteredUrl>();

            _config.Setup(o => o.GetRssEmail(BusinessId)).Returns(AppSetting.GetAppSetting("rss-email"));
            _config.Setup(o => o.GetEmailAlertsNewSubscriberUrl(BusinessId)).Returns(AppSetting.GetAppSetting("email-alerts-url"));

            _controller = new EventsController(
                _repository.Object,
                _processedContentRepository.Object,
                _eventEmailBuilder,
                _mockRssFeedFactory.Object,
                _logger.Object,
                _config.Object,
                new BusinessId(BusinessId),
                _filteredUrl.Object,
                null,
                null,
                _datetimeCalculator,
                null
                );
        }