public IList <EditionEntity> GetEditionsToNotify(NotificationType notificationType) { IList <EditionEntity> editions; if (WebConfigHelper.IsLocal || WebConfigHelper.IsTest) { editions = EditionServices.GetEditionsByEvent(248); } else { var deviationInDays = WebConfigHelper.EditionNotificationDeviationInDays; if (notificationType.GetAttribute <NotificationAttribute>().CheckDaysType == NotificationAttribute.CheckDaysTypes.Passed) { deviationInDays *= -1; } var checkDays = _emailNotificationHelper.GetCheckDays(notificationType).Select(x => x - deviationInDays).ToList(); var minFinancialYear = WebConfigHelper.MinFinancialYear; var statuses = Utility.Constants.DefaultValidEditionStatusesForCed; var eventTypes = notificationType.GetAttribute <NotificationAttribute>().EventTypes.Select(x => x.GetDescription()).ToArray(); var eventActivities = Utility.Constants.ValidEventActivitiesToNotify; editions = EditionServices.GetEditionsByNotificationType(checkDays, null, notificationType, minFinancialYear, statuses, eventTypes, eventActivities); } return(editions); }
public ActionResult _GetFiles(int entityId, string entityType, string fileType, string langCode) { var files = FileServices.GetFilesByEntity(entityId, entityType, null, langCode).OrderByDescending(x => x.CreatedOn).ToList(); var isCancelled = false; if (entityType == EntityType.Edition.GetDescription()) { var edition = EditionServices.GetEditionById(entityId, Constants.ValidEventTypesForCed); isCancelled = edition.IsCancelled(); } var model = new FilesEditModel { EntityId = entityId, EntityType = entityType.ToEnumFromDescription <EntityType>(), EditionFileType = fileType.ToEnumFromDescription <EditionFileType>(), LanguageCode = langCode, Files = files, CurrentUser = CurrentCedUser, IsCancelled = isCancelled }; return(PartialView("_EditionFiles", model)); }
public void SearchByName_K_Returns_ListOfZeroElements() { //Arrange var mock = new Mock <IRepository <Edition> >(); mock.Setup(a => a.List()).Returns(new List <Edition>() { new Edition() { Name = "Edition", Description = "Edition is Edition", DateNextPublication = DateTime.UtcNow, Language = "eng", Price = 3 }, new Edition() { Name = "Edition1", Description = "Edition is Edition1", DateNextPublication = DateTime.UtcNow, Language = "eng", Price = 5 } }); EditionServices service = new EditionServices(mock.Object); //Act var result = service.SearchByName("k"); //Assert Assert.AreEqual(0, result.Count); }
public void SortByNameTest_ReturnsSortedList() { //Arrange var mock = new Mock <IRepository <Edition> >(); mock.Setup(a => a.List()).Returns(new List <Edition>() { new Edition() { Name = "Edition", Description = "Edition is Edition", DateNextPublication = DateTime.UtcNow, Language = "eng" }, new Edition() { Name = "Edition1", Description = "Edition is Edition1", DateNextPublication = DateTime.UtcNow, Language = "eng" } }); EditionServices service = new EditionServices(mock.Object); //Act var result = service.SortByName(true); //Assert Assert.AreEqual("Edition", result[0].Name); }
public void GetEditionsByLanguageMethod_ByUA_ReturnsEmptyList() { //Arrange var mock = new Mock <IRepository <Edition> >(); mock.Setup(a => a.List()).Returns(new List <Edition>() { new Edition() { Name = "Edition", Description = "Edition is Edition", DateNextPublication = DateTime.UtcNow, Language = "ru" }, new Edition() { Name = "Edition1", Description = "Edition is Edition1", DateNextPublication = DateTime.UtcNow, Language = "eng" } }); EditionServices service = new EditionServices(mock.Object); //Act var result = service.GetEditionsByLanguage("ua"); //Assert Assert.AreEqual(0, result.Count()); }
public ActionResult _Details(int id) { var edition = EditionServices.GetEditionById(id); var model = Mapper.Map <EditionEntity, AdminEditionDetailsModel>(edition); return(PartialView(model)); }
public Application() { _editionServices = new EditionServices(); _userServices = new UserServices(); _domainServices = new DomainServices(); _bookServices = new BookServices(); _borrowServices = new BorrowServices(); }
public EditionController(IRepository <Edition> editionRepository, IRepository <Topic> topicRepository, IUserRepository userRepository) { _editionRepository = editionRepository; _topicRepository = topicRepository; TopicModel.SetTopicsList(_topicRepository.List()); _editionService = new EditionServices(_editionRepository); _userRepository = userRepository; }
public IList <EditionEntity> GetApprovedEditions() { var approvedEditions = EditionServices.GetEditionsByStatus(new List <EditionStatusType> { EditionStatusType.Approved }.ToArray()); return(approvedEditions); }
private void UpdateApprovedEdition(Edition stagingEdition, EditionEntity approvedEdition) { approvedEdition.AxEventId = Convert.ToInt32(stagingEdition.EventBEID); approvedEdition.DwEventId = stagingEdition.DWEventID; approvedEdition.Status = EditionStatusType.Published; EditionServices.UpdateEdition(approvedEdition.EditionId, approvedEdition, BusinessServices.Helpers.Constants.AutoIntegrationUserId, true); }
private int GetEditionListItemsCount(int?eventId, string directorEmail, string[] regions, string country, string city, int[] statusId, int[] eventActivityId, int[] eventTypeId) { var statusTypes = GetEditionStatusTypes(statusId); var eventActivities = GetEventActivities(eventActivityId); var eventTypes = GetEventTypes(eventTypeId); var editionsCount = EditionServices.GetEditionsCount2(directorEmail, eventId, false, null, statusTypes, eventTypes, eventActivities, null, country, city); return(editionsCount); }
public ActionResult EditionUpdate(int editionId) { var edition = EditionServices.GetEditionById(editionId); var buttonUrl = _editionHelper.GetEditionUrl(edition); SendEmailNotification(edition, NotificationType.EditionUpdated, WebConfigHelper.AdminEmails, CurrentCedUser.CurrentUser, "test", buttonUrl); return(View()); }
public ActionResult PostShowMetricsInfoCompleteness2(int editionId) { var edition = EditionServices.GetEditionById(editionId); var notificationAttr = NotificationType.PostShowMetricsInfoCompleteness2.GetAttribute <NotificationAttribute>(); var buttonUrl = _editionHelper.GetEditionUrl(edition, notificationAttr.Fragment); SendEmailNotification(edition, NotificationType.PostShowMetricsInfoCompleteness2, WebConfigHelper.AdminEmails, CurrentCedUser.CurrentUser, "test", buttonUrl); return(View()); }
public ActionResult _SearchCities(string searchTerm, string countryCode) { var cities = EditionServices.GetCities(searchTerm, countryCode); var pagedEvents = CitiesToSelect2Format(cities, 15); return(new JsonResult { Data = pagedEvents, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); }
private IList <AdminEditionListItemModel> GetEditionListItems(int?eventId, string directorEmail, string[] regions, string country, string city, int[] statusId, int[] eventActivityId, int[] eventTypeId) { var statusTypes = GetEditionStatusTypes(statusId); var eventActivities = GetEventActivities(eventActivityId); var eventTypes = GetEventTypes(eventTypeId); var editions = EditionServices.GetEditions2(directorEmail, eventId, false, null, statusTypes, eventTypes, eventActivities, null, country, city); var editionListItems = Mapper.Map <IList <EditionEntityLight>, IList <AdminEditionListItemModel> >(editions); return(editionListItems); }
public TaskServices(IUnitOfWork unitOfWork, IEditionHelper editionHelper, IEmailNotificationHelper emailNotificationHelper) : base(unitOfWork) { _unitOfWork = (UnitOfWork)unitOfWork; _editionServices = new EditionServices(unitOfWork); _editionTranslationServices = new EditionTranslationServices(unitOfWork); _eventServices = new EventServices(unitOfWork); _eventDirectorServices = new EventDirectorServices(unitOfWork); _editionServiceHelper = new EditionServiceHelper(unitOfWork); _editionHelper = editionHelper; _emailNotificationHelper = emailNotificationHelper; }
public ActionResult _AddEditionKeyVisitor(int editionId, int keyVisitorId, string value) { var edition = EditionServices.GetEditionById(editionId); if (edition == null) { return(Json(new { success = false, message = "Edition doesn't exist." }, JsonRequestBehavior.AllowGet)); } //var keyVisitor = KeyVisitorServices.GetKeyVisitorById(keyVisitorId); //if (keyVisitor == null) // return Json(new { success = false, message = "KeyVisitor doesn't exist." }, JsonRequestBehavior.AllowGet); var editionKeyVisitorId = EditionKeyVisitorServices.CreateEditionKeyVisitor(new EditionKeyVisitorEntity { EditionId = editionId, EventBEID = edition.AxEventId, KeyVisitorId = keyVisitorId, Value = value.Trim() }, CurrentCedUser.CurrentUser.UserId ); // TODO: KeyVisitor entity is not loaded into EditionKeyVisitor entity. var editionKeyVisitor = EditionKeyVisitorServices.GetEditionKeyVisitorById(editionKeyVisitorId); var keyVisitor = KeyVisitorServices.GetKeyVisitorById(editionKeyVisitor.KeyVisitorId); // UPDATE EDITION UpdateEditionUpdateInfo(edition); // DIFF var diff = new List <Variance> { new Variance { Prop = "KeyVisitor", ValA = null, ValB = keyVisitor.Name + ": " + editionKeyVisitor.Value } }; OnEditionUpdated(edition, diff); // UPDATE LOG var updatedFields = NotificationControllerHelper.GetUpdatedFieldsAsJson("KeyVisitor", new List <Variance> { new Variance { Prop = "KeyVisitor" } }); UpdateLogInMemory(edition, updatedFields); return(Json(new { success = true, message = "KeyVisitor has been added." /*, editionKeyVisitorCount = editionKeyVisitorCount*/ }, JsonRequestBehavior.AllowGet)); }
public void SortByNameTest_ReturnsEmptyList() { //Arrange var mock = new Mock <IRepository <Edition> >(); mock.Setup(a => a.List()).Returns(new List <Edition>()); EditionServices service = new EditionServices(mock.Object); //Act var result = service.SortByName(true); //Assert Assert.AreEqual(0, result.Count); }
public void GetEditionsByLanguageMethod_ReturnsEmptyList() { //Arrange var mock = new Mock <IRepository <Edition> >(); mock.Setup(a => a.List()).Returns(new List <Edition>()); EditionServices service = new EditionServices(mock.Object); //Act var result = service.GetEditionsByLanguage("eng"); //Assert Assert.AreEqual(0, result.Count()); }
public ActionResult _DeleteEditionDiscountApprover(int id) { var discountApprover = EditionDiscountApproverServices.GetById(id); if (discountApprover == null) { return(Json(new { success = false, message = "Discount approver doesn't exist!" }, JsonRequestBehavior.AllowGet)); } var edition = EditionServices.GetEditionById(discountApprover.EditionId); if (edition == null) { return(Json(new { success = false, message = "Edition doesn't exist." }, JsonRequestBehavior.AllowGet)); } var deleted = EditionDiscountApproverServices.Delete(id); if (!deleted) { return(Json(new { success = false, message = $"Discount approver could not be deleted: {discountApprover.ApprovingUser}" }, JsonRequestBehavior.AllowGet)); } var scopeName = "Edition Discount Approver"; // UPDATE EDITION UpdateEditionUpdateInfo(edition); // DIFF var diff = new List <Variance> { new Variance { Prop = scopeName, ValA = discountApprover.ApprovingUser, ValB = null } }; OnEditionUpdated(edition, diff); // UPDATE LOG var updatedFields = NotificationControllerHelper.GetUpdatedFieldsAsJson(scopeName, new List <Variance> { new Variance { Prop = scopeName } }); UpdateLogInMemory(edition, updatedFields); return(Json(new { success = true, message = $"Discount approver has been deleted: {discountApprover.ApprovingUser}" }, JsonRequestBehavior.AllowGet)); }
public ActionResult _DeleteCohostEdition(int cohostEditionId) { var cohostEdition = EditionCoHostServices.GetEditionCohostById(cohostEditionId); if (cohostEdition == null) { return(Json(new { success = false, message = "Co-host doesn't exist." }, JsonRequestBehavior.AllowGet)); } var edition = EditionServices.GetEditionById(cohostEdition.FirstEditionId); if (edition == null) { return(Json(new { success = false, message = "Edition doesn't exist." }, JsonRequestBehavior.AllowGet)); } var deleted = EditionCoHostServices.DeleteEditionCohost(cohostEditionId); if (!deleted) { return(Json(new { success = false, message = "Co-host could not be removed." }, JsonRequestBehavior.AllowGet)); } var cohostCount = SetEditionCohostedEventStatus(cohostEdition.FirstEditionId); // UPDATE EDITION UpdateEditionUpdateInfo(edition); // DIFF var diff = new List <Variance> { new Variance { Prop = "Co-host", ValA = null, ValB = cohostEdition.FirstEdition.EditionName } }; OnEditionUpdated(edition, diff); // UPDATE LOG var updatedFields = NotificationControllerHelper.GetUpdatedFieldsAsJson("Co-host", new List <Variance> { new Variance { Prop = "Co-host" } }); UpdateLogInMemory(edition, updatedFields); return(Json(new { success = true, message = "Co-host has been removed.", cohostCount = cohostCount }, JsonRequestBehavior.AllowGet)); }
public ActionResult _DeleteEditionPaymentSchedule(int editionPaymentScheduleId) { var editionPaymentSchedule = EditionPaymentScheduleServices.GetById(editionPaymentScheduleId); if (editionPaymentSchedule == null) { return(Json(new { success = false, message = "Edition payment schedule doesn't exist!" }, JsonRequestBehavior.AllowGet)); } var edition = EditionServices.GetEditionById(editionPaymentSchedule.EditionId); if (edition == null) { return(Json(new { success = false, message = "Edition doesn't exist." }, JsonRequestBehavior.AllowGet)); } var deleted = EditionPaymentScheduleServices.Delete(editionPaymentScheduleId); if (!deleted) { return(Json(new { success = false, message = $"Edition payment schedule could not be deleted: {editionPaymentSchedule.Name}" }, JsonRequestBehavior.AllowGet)); } var scopeName = "Edition Payment Schedule"; // UPDATE EDITION UpdateEditionUpdateInfo(edition); // DIFF var diff = new List <Variance> { new Variance { Prop = scopeName, ValA = editionPaymentSchedule.Name, ValB = null } }; OnEditionUpdated(edition, diff); // UPDATE LOG var updatedFields = NotificationControllerHelper.GetUpdatedFieldsAsJson(scopeName, new List <Variance> { new Variance { Prop = scopeName } }); UpdateLogInMemory(edition, updatedFields); return(Json(new { success = true, message = $"Edition payment schedule has been deleted: {editionPaymentSchedule.Name}" }, JsonRequestBehavior.AllowGet)); }
public ActionResult _DeleteSocialMedia(int editionSocialMediaId) { var editionSocialMedia = EditionTranslationSocialMediaServices.GetById(editionSocialMediaId); if (editionSocialMedia == null) { return(Json(new { success = false, message = "Social media account doesn't exist!" }, JsonRequestBehavior.AllowGet)); } var edition = EditionServices.GetEditionById(editionSocialMedia.EditionId); if (edition == null) { return(Json(new { success = false, message = "Edition doesn't exist." }, JsonRequestBehavior.AllowGet)); } var deleted = EditionTranslationSocialMediaServices.Delete(editionSocialMediaId); if (!deleted) { return(Json(new { success = false, message = $"<i class='fa fa-{editionSocialMedia.SocialMediaId}'></i> {editionSocialMedia.SocialMediaId.ToEnumFromDescription<SocialMediaType>()} account could not be deleted." }, JsonRequestBehavior.AllowGet)); } var scopeName = "Social Media Account"; // UPDATE EDITION UpdateEditionUpdateInfo(edition); // DIFF var diff = new List <Variance> { new Variance { Prop = scopeName, ValA = editionSocialMedia.SocialMediaId + "/" + editionSocialMedia.AccountName, ValB = null } }; OnEditionUpdated(edition, diff); // UPDATE LOG var updatedFields = NotificationControllerHelper.GetUpdatedFieldsAsJson(scopeName, new List <Variance> { new Variance { Prop = scopeName } }); UpdateLogInMemory(edition, updatedFields); return(Json(new { success = true, message = $"<i class='fa fa-{editionSocialMedia.SocialMediaId}'></i> {editionSocialMedia.SocialMediaId.ToEnumFromDescription<SocialMediaType>()} account has been deleted." }, JsonRequestBehavior.AllowGet)); }
private int SetEditionCohostedEventStatus(int editionId) { var cohosts = EditionCoHostServices.GetEditionCohosts(editionId); if (!cohosts.Any() || cohosts.Count == 1) { var edition = EditionServices.GetEditionById(editionId); var currentEdition = (EditionEntity)edition.Clone(); edition.CohostedEvent = cohosts.Any(); EditionServices.UpdateEdition(editionId, edition, CurrentCedUser.CurrentUser.UserId); UpdateLogInMemory(currentEdition, edition, null, null); } return(cohosts.Count); }
public ActionResult _DeleteEditionKeyVisitor(int editionKeyVisitorId) { var editionKeyVisitor = EditionKeyVisitorServices.GetEditionKeyVisitorById(editionKeyVisitorId); if (editionKeyVisitor == null) { return(Json(new { success = false, message = "KeyVisitor doesn't exist." }, JsonRequestBehavior.AllowGet)); } var edition = EditionServices.GetEditionById(editionKeyVisitor.EditionId); if (edition == null) { return(Json(new { success = false, message = "Edition doesn't exist." }, JsonRequestBehavior.AllowGet)); } var deleted = EditionKeyVisitorServices.DeleteEditionKeyVisitor(editionKeyVisitorId); if (!deleted) { return(Json(new { success = false, message = "KeyVisitor could not be removed." }, JsonRequestBehavior.AllowGet)); } // UPDATE EDITION UpdateEditionUpdateInfo(edition); // DIFF var diff = new List <Variance> { new Variance { Prop = "KeyVisitor", ValA = editionKeyVisitor.KeyVisitor.Name + ": " + editionKeyVisitor.Value, ValB = null } }; OnEditionUpdated(edition, diff); // UPDATE LOG var updatedFields = NotificationControllerHelper.GetUpdatedFieldsAsJson("KeyVisitor", new List <Variance> { new Variance { Prop = "KeyVisitor" } }); UpdateLogInMemory(edition, updatedFields); return(Json(new { success = true, message = "KeyVisitor has been removed." /*, editionKeyVisitorCount = editionKeyVisitorCount*/ }, JsonRequestBehavior.AllowGet)); }
private void ProcessEditionNotifications(KeyValuePair <EditionEntity, NotificationType> editionNotification, int itemIndex, int totalItemsCount) { var edition = editionNotification.Key; var notificationType = editionNotification.Value; // NEEDLESS! // STEP 2: Does it REQUIRE a NOTIFICATION? var requires = EditionServices.RequiresNotification(edition, notificationType); if (requires) { // STEP 3: Does NOTIFICATION already EXIST? //if (!NotificationAlreadyExists(edition, notificationType)) { if (WebConfigHelper.PrimaryDirectorNotifications) { var recipients = WebConfigHelper.PrimaryDirectorNotificationsUseMockRecipients ? WebConfigHelper.AdminEmails : EventDirectorServices.GetRecipientEmails(edition); // STEP 3: CREATE NOTIFICATION CreateInAppNotification(edition, notificationType, recipients, null); PushRealTimeInAppNotification(edition, notificationType, recipients, CurrentCedUser?.CurrentUser?.Email); // STEP 4: SEND EMAIL var notifAttr = notificationType.GetAttribute <NotificationAttribute>(); var buttonUrl = notificationType == NotificationType.EditionExistence ? _editionHelper.GetEditionListUrl(edition.Event, notifAttr.Fragment) : _editionHelper.GetEditionUrl(edition, notifAttr.Fragment); var emailResult = SendEmailNotification(edition, notificationType, recipients, null, null, buttonUrl); // STEP 5: LOG EMAIL if (emailResult.Sent) { LogEmail(edition.EditionId, recipients, emailResult.ErrorMessage, null, notificationType.ToString()); } else { LogEmail(edition.EditionId, WebConfigHelper.AdminEmails, emailResult.ErrorMessage, null, notificationType.ToString(), ActionType.NotificationEmailSendFailure); } } } } }
private IList <EmailNotificationListItemModel> GetEmailNotificationListItems(EmailNotificationSearchModel model) { var notifications = new List <EmailNotificationListItemModel>(); if (model.NotificationTypes == null) { model.NotificationTypes = EditionCompletenessNotificationTypes().ToArray(); } if (model.DayRange > 0) { model.EmailSendingDate = null; } foreach (var notifType in model.NotificationTypes) { var deviationInDays = Convert.ToInt32((DateTime.Today - model.EmailSendingDate).GetValueOrDefault().TotalDays); if (notifType.GetAttribute <NotificationAttribute>().CheckDaysType == NotificationAttribute.CheckDaysTypes.Passed) { deviationInDays *= -1; } if (notifType.GetAttribute <CompletenessNotificationTypeAttribute>() != null) { var minFinancialYear = WebConfigHelper.MinFinancialYear; var statuses = Utility.Constants.DefaultValidEditionStatusesForCed; var eventTypes = notifType.GetAttribute <NotificationAttribute>().EventTypes.Select(x => x.GetDescription()).ToArray(); var eventActivities = Utility.Constants.ValidEventActivitiesToNotify; var checkDays = _emailNotificationHelper.GetCheckDays(notifType); foreach (var checkDay in checkDays) { var editionsToNotify = EditionServices.GetEditionsByNotificationType(checkDay - deviationInDays, model.DayRange, notifType, minFinancialYear, statuses, eventTypes, eventActivities, model.EventId); AddEditionsToNotificationList(notifications, editionsToNotify, notifType, checkDay); } } } return(notifications); }
private void AddEditionsToNotificationList(IList <EmailNotificationListItemModel> notifications, IList <EditionEntity> editions, NotificationType notificationType, int checkDay) { foreach (var edition in editions) { EditionEntity prevEdition = null; var sendingDate = DateTime.MinValue; switch (notificationType) { case NotificationType.EditionExistence: // TODO:??? break; case NotificationType.GeneralInfoCompleteness: prevEdition = EditionServices.GetPreviousEdition(edition); sendingDate = prevEdition.StartDate.Value.AddDays(-checkDay); break; case NotificationType.PostShowMetricsInfoCompleteness: case NotificationType.PostShowMetricsInfoCompleteness2: sendingDate = edition.EndDate.Value.AddDays(checkDay); break; } var log = NotificationEmailSent(prevEdition ?? edition, notificationType, sendingDate); notifications.Add(new EmailNotificationListItemModel { EmailSendingDate = sendingDate, NotificationType = notificationType, EditionName = edition.EditionName, StartDate = edition.StartDate.GetValueOrDefault(), EndDate = edition.EndDate.GetValueOrDefault(), ReceiverEmail = log?.AdditionalInfo.Substring("Recipient: ".Length, log.AdditionalInfo.IndexOf("|") - "Recipient: ".Length), SentByEmail = log != null, CreatedOn = log?.CreatedOn }); } }
public ActionResult _AddSocialMedia(int editionTranslationId, string socialMediaId, string accountName) { if (string.IsNullOrWhiteSpace(accountName)) { return(Json(new { success = false, message = "Account name cannot be empty!" }, JsonRequestBehavior.AllowGet)); } var editionTranslation = EditionTranslationServices.GetEditionTranslationById(editionTranslationId); if (editionTranslation == null) { return(Json(new { success = false, message = "Edition translation must be saved for this action." }, JsonRequestBehavior.AllowGet)); } var edition = EditionServices.GetEditionById(editionTranslation.EditionId); if (edition == null) { return(Json(new { success = false, message = "Edition doesn't exist." }, JsonRequestBehavior.AllowGet)); } var existingSocialMedia = SocialMediaServices.GetSocialMediaById(socialMediaId); if (existingSocialMedia == null) { socialMediaId = SocialMediaServices.CreateSocialMedia(socialMediaId); } if (!string.IsNullOrWhiteSpace(socialMediaId)) { var existingEditionSocialMedia = EditionTranslationSocialMediaServices.Get(editionTranslationId, socialMediaId); if (existingEditionSocialMedia != null) { return(Json(new { success = false, message = $"<i class='fa fa-{existingEditionSocialMedia.SocialMediaId}'></i> {existingEditionSocialMedia.SocialMediaId.ToEnumFromDescription<SocialMediaType>()} account already exists!" }, JsonRequestBehavior.AllowGet)); } var editionSocialMedia = new EditionTranslationSocialMediaEntity { EditionId = editionTranslation.EditionId, EditionTranslationId = editionTranslation.EditionTranslationId, SocialMediaId = socialMediaId, AccountName = accountName }; EditionTranslationSocialMediaServices.Create(editionSocialMedia, CurrentCedUser.CurrentUser.UserId); var scopeName = "Social Media Account"; // UPDATE EDITION UpdateEditionUpdateInfo(edition); // DIFF var diff = new List <Variance> { new Variance { Prop = scopeName, ValA = null, ValB = editionSocialMedia.SocialMediaId + "/" + editionSocialMedia.AccountName } }; OnEditionUpdated(edition, diff); // UPDATE LOG var updatedFields = NotificationControllerHelper.GetUpdatedFieldsAsJson(scopeName, new List <Variance> { new Variance { Prop = scopeName } }); UpdateLogInMemory(edition, updatedFields); return(Json(new { success = true, message = $"<i class='fa fa-{editionSocialMedia.SocialMediaId}'></i> {editionSocialMedia.SocialMediaId.ToEnumFromDescription<SocialMediaType>()} account has been added." }, JsonRequestBehavior.AllowGet)); } return(Json(new { success = false, message = "<i class='fa fa-{editionSocialMedia.SocialMediaId}'></i> {editionSocialMedia.SocialMediaId.ToEnum<SocialMediaType>()} account could not be added!" }, JsonRequestBehavior.AllowGet)); }
public ActionResult Index(int?id = null) { var anyEventSelected = id.HasValue; if (id.HasValue) { if (!IsDirectorAuthorizedOnEvent(id.Value)) { return(View("Unauthorized")); } } var pastEvents = EventServices.GetPastEventsByDirector( CurrentCedUser.CurrentUser.Email, WebConfigHelper.MinFinancialYear, Constants.DefaultValidEditionStatusesForCed, Constants.ValidEventTypesForCed, 3, 20) .OrderBy(x => x.MasterName).ToList(); foreach (var @event in pastEvents) { @event.DisplayDate = DateHelper.GetDisplayDate(@event.StartDate, @event.EndDate); } if (!pastEvents.Any()) { var allEvents = EventServices.GetEventLightsByDirector( CurrentCedUser.CurrentUser.Email, Constants.ValidEventTypesForCed, WebConfigHelper.MinFinancialYear) .ToList(); if (allEvents.Any()) { id = allEvents.First().EventId; } else { return(View("Unauthorized")); } } if (id == null) { id = pastEvents.First().EventId; } var selectedEvent = EventServices.GetEventById(id.Value); if (selectedEvent == null) { return(View("NotFound")); } var lastEdition = EditionServices.GetLastFinishedEdition(selectedEvent.EventId); if (lastEdition == null) { var nextEdition = EditionServices.GetClosestEdition(selectedEvent.EventId, Constants.ValidEventTypesForCed); if (nextEdition == null) { return(View("Error", new ErrorModel { Message = $"Next edition not found for {selectedEvent.EventId} | {selectedEvent.MasterName}!" })); } return(View(new IndexModel { EventId = selectedEvent.EventId, EventName = selectedEvent.MasterName, EventType = selectedEvent.EventTypeCode.ToEnumFromDescription <EventType>(), EventDisplayDate = selectedEvent.DisplayDate, SelectedEditionId = nextEdition.EditionId, SelectedEditionName = nextEdition.EditionName, NextEditionStartDate = nextEdition.StartDate, EventEditionList = pastEvents })); } selectedEvent.DisplayDate = DateHelper.GetDisplayDate(lastEdition.StartDate, lastEdition.EndDate); var lastEditionTranslation = EditionTranslationServices.GetEditionTranslationLight(lastEdition.EditionId, LanguageHelper.GetBaseLanguageCultureName()); var internationalExhibitorPavilionCounts = StatisticServices.GetInternationalExhibitorPavilionCounts(selectedEvent.EventId, 3); var exhibitorCountryCounts = StatisticServices.GetExhibitorCountryCounts(selectedEvent.EventId, 3); var visitorCountryCounts = StatisticServices.GetVisitorCountryCounts(selectedEvent.EventId, 3); var localExhibitorRetentionRates = StatisticServices.GetExhibitorRetentionRatesLocal(selectedEvent.EventId, 3); var internationalExhibitorRetentionRates = StatisticServices.GetExhibitorRetentionRatesInternational(selectedEvent.EventId, 3); var editionCountriesExhibitor = EditionCountryServices.GetEditionCountriesByEdition(lastEdition.EditionId, EditionCountryRelationType.Exhibitor); var editionCountriesVisitor = EditionCountryServices.GetEditionCountriesByEdition(lastEdition.EditionId, EditionCountryRelationType.Visitor); var exhibitorCountryNames = Countries.Where(c => editionCountriesExhibitor.Any(ec => ec.CountryCode == c.CountryCode)) .Select(c => c.CountryName) .ToList(); var visitorCountryNames = Countries.Where(c => editionCountriesVisitor.Any(ec => ec.CountryCode == c.CountryCode)) .Select(c => c.CountryName) .ToList(); var delegateCountryNames = new List <string>(); var lastEditionEvent = lastEdition.Event ?? EventServices.GetEventById(lastEdition.EventId); if (Constants.ConferenceEventTypes.Contains(lastEditionEvent.EventTypeCode)) { var editionCountriesDelegate = EditionCountryServices.GetEditionCountriesByEdition(lastEdition.EditionId, EditionCountryRelationType.Delegate); delegateCountryNames = editionCountriesDelegate.Any() ? Countries.Where(c => editionCountriesExhibitor.Any(ec => ec.CountryCode == c.CountryCode)) .Select(c => c.CountryName) .ToList() : new List <string>(); } var model = new IndexModel { EventId = selectedEvent.EventId, EventName = selectedEvent.MasterName, EventType = selectedEvent.EventTypeCode.ToEnumFromDescription <EventType>(), EventDisplayDate = selectedEvent.DisplayDate, SelectedEditionId = lastEdition.EditionId, SelectedEditionName = lastEdition.EditionName, EventEditionList = pastEvents, EditionStatModel = new EditionStatModel { ExhibitorCountries = exhibitorCountryNames, VisitorCountries = visitorCountryNames, DelegateCountries = delegateCountryNames, LocalExhibitorRetentionRates = localExhibitorRetentionRates, InternationalExhibitorRetentionRates = internationalExhibitorRetentionRates, NumberOfInternationalPavilions = internationalExhibitorPavilionCounts, NumberOfExhibitorCountries = exhibitorCountryCounts, NumberOfVisitorCountries = visitorCountryCounts, BookAStandUrl = lastEditionTranslation.BookStandUrl, VisitorETicketUrl = lastEditionTranslation.OnlineInvitationUrl } }; // Additions to LOG object if (TempData["Log"] is LogEntity log) { if (log.EntityId == null || log.EntityId == 0) { log.EntityId = selectedEvent.EventId; log.EntityName = selectedEvent.MasterName; log.EventId = selectedEvent.EventId; log.EventName = selectedEvent.MasterName; } if (anyEventSelected) // If an event selected intentionally. { log.AdditionalInfo = "{ 'WebLogoFileName': '" + lastEditionTranslation.WebLogoFileName + "' }"; } } return(View(model)); }