Пример #1
0
 public static void SetFullUrlOfImages(this EditionTranslationEntity editionTranslation)
 {
     if (!string.IsNullOrWhiteSpace(editionTranslation.WebLogoFileName))
     {
         editionTranslation.WebLogoFileName = EditionImageType.WebLogo.BlobFullUrl(editionTranslation); //.WebLogoFileName);
     }
     if (!string.IsNullOrWhiteSpace(editionTranslation.PeopleImageFileName))
     {
         editionTranslation.PeopleImageFileName = EditionImageType.PeopleImage.BlobFullUrl(editionTranslation); //.PeopleImageFileName);
     }
     if (!string.IsNullOrWhiteSpace(editionTranslation.ProductImageFileName))
     {
         editionTranslation.ProductImageFileName = EditionImageType.ProductImage.BlobFullUrl(editionTranslation); //.ProductImageFileName);
     }
     if (!string.IsNullOrWhiteSpace(editionTranslation.MasterLogoFileName))
     {
         editionTranslation.MasterLogoFileName = EditionImageType.MasterLogo.BlobFullUrl(editionTranslation); //.MasterLogoFileName);
     }
     if (!string.IsNullOrWhiteSpace(editionTranslation.CrmLogoFileName))
     {
         editionTranslation.CrmLogoFileName = EditionImageType.CrmLogo.BlobFullUrl(editionTranslation); //.CrmLogoFileName);
     }
     if (!string.IsNullOrWhiteSpace(editionTranslation.IconFileName))
     {
         editionTranslation.IconFileName = EditionImageType.Icon.BlobFullUrl(editionTranslation); //.IconFileName);
     }
 }
Пример #2
0
        public bool UpdateEditionTranslation(EditionTranslationEntity editionTranslationEntity, int userId, bool?autoIntegration = false)
        {
            var success = false;

            if (editionTranslationEntity != null)
            {
                var editionTranslation = _unitOfWork.EditionTranslationRepository.GetById(editionTranslationEntity.EditionTranslationId);
                if (editionTranslation != null)
                {
                    // TODO: Mapping overrides the values of the properties which are unintended to be mapped.
                    Mapper.Map(editionTranslationEntity, editionTranslation);

                    if (autoIntegration == false)
                    {
                        editionTranslation.UpdateTime = DateTime.Now;
                        editionTranslation.UpdateUser = userId;
                    }
                    else
                    {
                        editionTranslation.UpdateTimeByAutoIntegration = DateTime.Now;
                    }

                    _unitOfWork.EditionTranslationRepository.Update(editionTranslation);
                    _unitOfWork.Save();

                    success = true;
                }
            }
            return(success);
        }
        public static EditionEditImagesModel ComposeEditionEditImagesModel(
            CedUser currentUser,
            EditionEntity edition,
            EditionTranslationEntity editionTranslation,
            bool isEditableForImages)
        {
            var model = new EditionEditImagesModel
            {
                EditionTranslationId = editionTranslation.EditionTranslationId,
                EditionId            = edition.EditionId,
                EditionName          = edition.EditionName,
                ProductImageFileName = editionTranslation.ProductImageFileName,
                MasterLogoFileName   = editionTranslation.MasterLogoFileName,
                CrmLogoFileName      = editionTranslation.CrmLogoFileName,
                IconFileName         = editionTranslation.IconFileName,
                PromotedLogoFileName = editionTranslation.PromotedLogoFileName,
                DetailsImageFileName = editionTranslation.DetailsImageFileName,
                LanguageCode         = editionTranslation.LanguageCode,
                IsAlive             = edition.IsAlive(),
                IsCancelled         = edition.IsCancelled(),
                IsEditableForImages = isEditableForImages,
                CurrentUser         = currentUser
            };

            return(model);
        }
Пример #4
0
        public static string GetFileName(this EditionTranslationEntity editionTranslation, EditionImageType imageType)
        {
            switch (imageType)
            {
            case EditionImageType.WebLogo:
                return(editionTranslation.WebLogoFileName);

            case EditionImageType.PeopleImage:
                return(editionTranslation.PeopleImageFileName);

            case EditionImageType.MasterLogo:
                return(editionTranslation.MasterLogoFileName);

            case EditionImageType.CrmLogo:
                return(editionTranslation.CrmLogoFileName);

            case EditionImageType.ProductImage:
                return(editionTranslation.ProductImageFileName);

            case EditionImageType.Icon:
                return(editionTranslation.IconFileName);

            case EditionImageType.PromotedLogo:
                return(editionTranslation.PromotedLogoFileName);

            case EditionImageType.DetailsImage:
                return(editionTranslation.DetailsImageFileName);

            default:
                throw new Exception("Unexpected edition image type!");
            }
        }
        public static string GetUpdatedContent(EditionTranslationEntity current, EditionTranslationEntity updated)
        {
            var diff = current.Compare(updated);

            diff = PrepareDiff(diff);
            var updateInfo     = new HtmlUpdateInfo("EditionTranslation", diff, true);
            var updatedContent = updateInfo.ComposeContent();

            return(updatedContent);
        }
Пример #6
0
        public static string BlobFullUrl(this EditionImageType editionImageType, EditionTranslationEntity editionTranslation)
        {
            var fileName = editionTranslation.GetFileName(editionImageType);

            if (string.IsNullOrWhiteSpace(fileName))
            {
                return(editionImageType.EditionDefaultImageUrl());
            }
            return(editionImageType.BlobSubDirectory() + fileName);
        }
        public static void CopyEditionImages(int editionId, string editionName, EditionTranslationEntity sourceEditionTranslation, EditionTranslationEntity targetEditionTranslation)
        {
            foreach (EditionImageType imageType in Enum.GetValues(typeof(EditionImageType)))
            {
                var sourceFileName = sourceEditionTranslation.GetFileName(imageType);
                var targetFileName = ComposeImageName(editionId, editionName, targetEditionTranslation.LanguageCode, Path.GetExtension(sourceFileName));

                var uploadedFileName = CopyImageOnAzure(sourceFileName, targetFileName, imageType);

                targetEditionTranslation.SetFileName(imageType, uploadedFileName);
            }
        }
Пример #8
0
        public int CreateEditionTranslation(EditionTranslationEntity editionTranslationEntity, int userId)
        {
            var editionTranslation = Mapper.Map <EditionTranslationEntity, EditionTranslation>(editionTranslationEntity);

            editionTranslation.CreateTime = DateTime.Now;
            editionTranslation.CreateUser = userId;

            _unitOfWork.EditionTranslationRepository.Insert(editionTranslation);
            _unitOfWork.Save();

            return(editionTranslation.EditionTranslationId);
        }
        public static void RenameEditionImages(int editionId, string newEditionName, EditionTranslationEntity editionTranslation)
        {
            var azureService = new Service();

            foreach (EditionImageType imageType in Enum.GetValues(typeof(EditionImageType)))
            {
                var oldFileName = editionTranslation.GetFileName(imageType);
                var newFileName = ComposeImageName(editionId, newEditionName, editionTranslation.LanguageCode, Path.GetExtension(oldFileName));

                var oldFileFullName = imageType.BlobFullName(oldFileName);
                var newFileFullName = imageType.BlobFullName(newFileName);

                azureService.RenameFile(oldFileFullName, newFileFullName);

                editionTranslation.SetFileName(imageType, newFileName);
            }
        }
        public static EditionTranslationEntity PrepareNewEditionTranslation(Edition newEdition, DWStaging.Edition stagingEdition, EditionTranslationEntity lastEditionTranslation)
        {
            if (lastEditionTranslation == null)
            {
                lastEditionTranslation = new EditionTranslationEntity
                {
                    LanguageCode = LanguageHelper.GetBaseLanguageCultureName()
                };
            }

            var venueName = lastEditionTranslation.LanguageCode == LanguageHelper.GetBaseLanguageCultureName()
                ? stagingEdition.EventVenue
                : lastEditionTranslation.VenueName;

            var newEditionTranslation = new EditionTranslationEntity
            {
                EditionId            = newEdition.EditionId,
                LanguageCode         = lastEditionTranslation.LanguageCode,
                Summary              = lastEditionTranslation.Summary,
                Description          = lastEditionTranslation.Description,
                ExhibitorProfile     = lastEditionTranslation.ExhibitorProfile,
                VisitorProfile       = lastEditionTranslation.VisitorProfile,
                VenueName            = venueName,
                MapVenueFullAddress  = lastEditionTranslation.MapVenueFullAddress,
                WebLogoFileName      = lastEditionTranslation.WebLogoFileName,
                PeopleImageFileName  = lastEditionTranslation.PeopleImageFileName,
                ProductImageFileName = lastEditionTranslation.ProductImageFileName,
                MasterLogoFileName   = lastEditionTranslation.MasterLogoFileName,
                CrmLogoFileName      = lastEditionTranslation.CrmLogoFileName,
                IconFileName         = lastEditionTranslation.IconFileName,
                BookStandUrl         = lastEditionTranslation.BookStandUrl,
                OnlineInvitationUrl  = lastEditionTranslation.OnlineInvitationUrl,
                CreateTime           = DateTime.Now,
                CreateUser           = Constants.AutoIntegrationUserId
            };

            //EditionName = stagingEdition.EventName,
            //ReportingName = !string.IsNullOrWhiteSpace(stagingEdition.EventNameReporting) ? stagingEdition.EventNameReporting : stagingEdition.EventName,
            //LocalName = !string.IsNullOrWhiteSpace(stagingEdition.EventLongNameLocal) ? stagingEdition.EventLongNameLocal : stagingEdition.EventName,
            //InternationalName = !string.IsNullOrWhiteSpace(stagingEdition.EventLongNameInternational) ? stagingEdition.EventLongNameInternational : stagingEdition.EventName,

            return(newEditionTranslation);
        }
Пример #11
0
        private int SaveEditionTranslation(EditionTranslationEntity editionTranslation, DWStaging.Edition stagingEdition)
        {
            try
            {
                var et = Mapper.Map <EditionTranslationEntity, EditionTranslation>(editionTranslation);

                _unitOfWork.EditionTranslationRepository.Insert(et);
                _unitOfWork.Save();

                return(et.EditionTranslationId);
            }
            catch (Exception exc)
            {
                var extraInfo = "StagingEditionEventBEID=" + stagingEdition.EventBEID;
                var log       = CreateInternalLog(exc, extraInfo);
                ExternalLogHelper.Log(log, LoggingEventType.Error);

                return(-1);
            }
        }
Пример #12
0
 bool IsEditionTranslationInfoCompleted(EditionTranslationEntity editionTranslationEntity, EditionInfoType infoType)
 {
     return(EditionServiceHelper.IsEditionInfoCompleted(editionTranslationEntity, infoType));
 }
        public void CopySocialMediaAccounts(int sourceEditionId, string languageCode, EditionTranslationEntity targetEditionTranslation)
        {
            var socialMedias = _editionTranslationSocialMediaServices.GetByEdition(sourceEditionId, languageCode);

            foreach (var sm in socialMedias)
            {
                var clonedEntity = (EditionTranslationSocialMediaEntity)sm.Clone();
                clonedEntity.EditionId            = targetEditionTranslation.EditionId;
                clonedEntity.EditionTranslationId = targetEditionTranslation.EditionTranslationId;
                _editionTranslationSocialMediaServices.Create(clonedEntity, Constants.AutoIntegrationUserId);
            }
        }
        public static EditionEditGeneralInfoModel ComposeEditionEditGeneralInfoModel(
            CedUser currentUser,
            EditionEntity edition,
            EditionTranslationEntity editionTranslation,
            string lang, bool isEditableForImages)
        {
            var model = new EditionEditGeneralInfoModel
            {
                EditionTranslationId = editionTranslation.EditionTranslationId,
                EditionId            = edition.EditionId,
                EditionName          = edition.EditionName,
                EditionNo            = edition.EditionNo,
                EventId           = edition.EventId,
                Country           = edition.Country,
                City              = edition.City,
                CountryLocalName  = edition.CountryLocalName,
                CityLocalName     = edition.CityLocalName,
                ReportingName     = edition.ReportingName,
                LocalName         = edition.LocalName,
                InternationalName = edition.InternationalName,
                LanguageCode      = lang,
                EventType         = edition.Event.EventTypeCode.ToEnumFromDescription <EventType>(),

                StartDate                   = edition.StartDate,
                EndDate                     = edition.EndDate,
                VisitEndTime                = edition.VisitEndTime,
                VisitStartTime              = edition.VisitStartTime,
                CoolOffPeriodStartDate      = edition.CoolOffPeriodStartDate,
                CoolOffPeriodEndDate        = edition.CoolOffPeriodEndDate,
                InternationalDate           = edition.InternationalDate,
                LocalDate                   = edition.LocalDate,
                Summary                     = editionTranslation.Summary,
                Description                 = editionTranslation.Description,
                ExhibitorProfile            = editionTranslation.ExhibitorProfile,
                VisitorProfile              = editionTranslation.VisitorProfile,
                WebLogoFileName             = editionTranslation.WebLogoFileName,
                PeopleImageFileName         = editionTranslation.PeopleImageFileName,
                EventFlagPictureFileName    = edition.EventFlagPictureFileName,
                AllDayEvent                 = edition.AllDayEvent,
                Promoted                    = edition.Promoted,
                TradeShowConnectDisplay     = edition.TradeShowConnectDisplay,
                ManagingOfficeEmail         = edition.ManagingOfficeEmail,
                ManagingOfficePhone         = edition.ManagingOfficePhone,
                EventWebSite                = edition.EventWebSite,
                MarketoPreferenceCenterLink = edition.MarketoPreferenceCenterLink,
                VenueName                   = editionTranslation.VenueName,
                MapVenueFullAddress         = editionTranslation.MapVenueFullAddress,
                VenueCoordinates            = edition.VenueCoordinates,
                BookStandUrl                = editionTranslation.BookStandUrl,
                OnlineInvitationUrl         = editionTranslation.OnlineInvitationUrl,
                EventActivity               = edition.EventActivity,

                DisplayOnIteGermany               = edition.DisplayOnIteGermany,
                DisplayOnIteAsia                  = edition.DisplayOnIteAsia,
                DisplayOnIteI                     = edition.DisplayOnIteI,
                DisplayOnItePoland                = edition.DisplayOnItePoland,
                DisplayOnIteModa                  = edition.DisplayOnIteModa,
                DisplayOnIteTurkey                = edition.DisplayOnIteTurkey,
                DisplayOnIteRussia                = edition.DisplayOnIteRussia,
                DisplayOnIteEurasia               = edition.DisplayOnIteEurasia,
                DisplayOnTradeLink                = edition.DisplayOnTradeLink,
                DisplayOnIteUkraine               = edition.DisplayOnIteUkraine,
                DisplayOnIteBuildInteriors        = edition.DisplayOnIteBuildInteriors,
                DisplayOnIteFoodDrink             = edition.DisplayOnIteFoodDrink,
                DisplayOnIteOilGas                = edition.DisplayOnIteOilGas,
                DisplayOnIteTravelTourism         = edition.DisplayOnIteTravelTourism,
                DisplayOnIteTransportLogistics    = edition.DisplayOnIteTransportLogistics,
                DisplayOnIteFashion               = edition.DisplayOnIteFashion,
                DisplayOnIteSecurity              = edition.DisplayOnIteSecurity,
                DisplayOnIteBeauty                = edition.DisplayOnIteBeauty,
                DisplayOnIteHealthCare            = edition.DisplayOnIteHealthCare,
                DisplayOnIteMining                = edition.DisplayOnIteMining,
                DisplayOnIteEngineeringIndustrial = edition.DisplayOnIteEngineeringIndustrial,
                HiddenFromWebSites                = edition.HiddenFromWebSites,

                IsAlive             = edition.IsAlive(),
                IsCancelled         = edition.IsCancelled(),
                IsEditableForImages = isEditableForImages,
                CurrentUser         = currentUser
            };

            return(model);
        }
Пример #15
0
        internal EmailResult SendNotificationEmailForEditionCreation(EditionEntity edition, EditionTranslationEntity editionTranslation, EditionMailTemplate emailTemplate)
        {
            if (!string.IsNullOrWhiteSpace(emailTemplate.Recipients))
            {
                const NotificationType notificationType = NotificationType.EditionCreated;

                var recipientFullName = emailTemplate.RecipientFullName;
                var body = "Hello," +
                           "<br/><br/>" +
                           $"This is to inform you that a new event has been created with a name {edition.EditionName}." +
                           @"<br/><br/>
                Please click the button below to go to event's page.";

                var buttonUrl = _editionHelper.GetEditionUrl(edition);

                return(_emailNotificationHelper.Send(edition, editionTranslation, notificationType, recipientFullName, body, emailTemplate.Recipients,
                                                     buttonUrl, emailTemplate.UnsubscriptionUrl));
            }

            return(new EmailResult {
                Sent = false, ErrorMessage = "Event doesn't fit the necessary criteria for emailing."
            });
        }
Пример #16
0
        private EmailResult SendNotificationEmailForEditionLocationUpdate(EditionEntity edition, EditionTranslationEntity editionTranslation, EditionMailTemplate emailTemplate)
        {
            if (!WebConfigHelper.TrackEditionLocationUpdate)
            {
                return new EmailResult {
                           Sent = false, ErrorMessage = "Tracking disabled."
                }
            }
            ;

            // IF EDITION START DATE IS LATER THAN NOW
            if (edition.HasNotStartedYet() && edition.HasCityOrCountry())
            {
                // SEND NOTIFICATION EMAIL
                var recipients = emailTemplate.Recipients;

                if (!string.IsNullOrWhiteSpace(recipients))
                {
                    const NotificationType notificationType = NotificationType.EditionLocationUpdated;

                    var recipientFullName = emailTemplate.RecipientFullName;
                    var body = $"Dear {recipientFullName} ," +
                               "<br/><br/>" +
                               $"This is to inform you that there have been some changes to the city and/or country information for {edition.EditionName}." +
                               @"<br/><br/>
                    You may want to log in and double check whether this information affects the address / map location of the existing Venue location information.
                    <br/><br/>
                    To do so please click the button below to go to event edition's page and make the changes in Event Venue section of General Info tab shown below if needed.
                    <br/><br/>" +
                               $"<img src='{AzureStorageHelper.AzureStorageContainerUri}event-venue-map.png' />";

                    var buttonUrl = _editionHelper.GetEditionUrl(edition);

                    return(_emailNotificationHelper.Send(edition, editionTranslation, notificationType, recipientFullName, body, recipients,
                                                         buttonUrl, emailTemplate.UnsubscriptionUrl));
                }
            }

            return(new EmailResult {
                Sent = false, ErrorMessage = "Event doesn't fit the necessary criteria for emailing."
            });
        }
Пример #17
0
        private EmailResult SendNotificationEmailForEditionNameUpdate(EditionEntity edition, EditionTranslationEntity editionTranslation, EditionMailTemplate emailTemplate)
        {
            if (!WebConfigHelper.TrackEditionNameUpdate)
            {
                return new EmailResult {
                           Sent = false, ErrorMessage = "Tracking disabled."
                }
            }
            ;

            // ADDITIONAL RECIPIENTS
            if (!WebConfigHelper.IsLocal && !WebConfigHelper.IsTest)
            {
                emailTemplate.Recipients += "," + WebConfigHelper.TrackEditionNameUpdateAdditionalRecipients;
            }

            if (!string.IsNullOrWhiteSpace(emailTemplate.Recipients))
            {
                const NotificationType notificationType = NotificationType.EditionNameUpdated;

                var recipientFullName = emailTemplate.RecipientFullName;
                var body = $"Dear {recipientFullName} ," +
                           "<br/><br/>" +
                           $"This is to inform you that there have been some changes to the event name information for {edition.EditionName}." +
                           @"<br/><br/>
                You may want to log in and double check whether this change causes inconsistency on any information. 
                <br/><br/>
                To do so please click the button below to go to event's page.";

                var buttonUrl = _editionHelper.GetEditionUrl(edition);

                return(_emailNotificationHelper.Send(edition, editionTranslation, notificationType, recipientFullName, body, emailTemplate.Recipients,
                                                     buttonUrl, emailTemplate.UnsubscriptionUrl));
            }

            return(new EmailResult {
                Sent = false, ErrorMessage = "Event doesn't fit the necessary criteria for emailing."
            });
        }
Пример #18
0
 private void StartNotificationProcessForEditionLocationUpdate(EditionEntity edition, EditionTranslationEntity editionTranslation, List <Variance> diffOnEdition)
 {
     if (IsLocationChanged(diffOnEdition))
     {
         if (WebConfigHelper.TrackEditionLocationUpdate)
         {
             var emailTemplate = GetEmailTemplateForEditionUpdateNotification(edition);
             SendNotificationEmailForEditionLocationUpdate(edition, editionTranslation, emailTemplate);
         }
     }
 }
Пример #19
0
        private void StartNotificationProcessForEditionNameUpdate(EditionEntity edition, EditionTranslationEntity editionTranslation, List <Variance> diffOnEdition)
        {
            if (IsEditionNameChanged(diffOnEdition))
            {
                if (WebConfigHelper.TrackEditionNameUpdate)
                {
                    var emailTemplate = GetEmailTemplateForEditionUpdateNotification(edition);

                    var recipients = WebConfigHelper.PrimaryDirectorNotificationsUseMockRecipients
                            ? WebConfigHelper.AdminEmails
                            : _eventDirectorServices.GetRecipientEmails(edition);

                    emailTemplate.Recipients = recipients;

                    SendNotificationEmailForEditionNameUpdate(edition, editionTranslation, emailTemplate);
                }
            }
        }
Пример #20
0
        public void CreateEventEditionFromStagingDb(DWStaging.Edition stagingEdition, DateTime eventStartDate, DateTime eventEndDate)
        {
            using (var scope = new TransactionScope())
            {
                var existingEvent = _unitOfWork.EventRepository.Get(x => x.MasterCode == stagingEdition.EventMasterCode);
                int eventId;

                if (existingEvent == null)
                {
                    var newEvent = EditionServiceHelper.PrepareNewEvent(stagingEdition);

                    if (!SaveNewEvent(newEvent, stagingEdition))
                    {
                        return;
                    }

                    eventId = newEvent.EventId;
                }
                else
                {
                    eventId = existingEvent.EventId;
                }

                var axId = Convert.ToInt32(stagingEdition.EventBEID);

                // TODO: Make it faster
                var lastEdition = _editionServices.GetLastEdition(eventId, Utility.Constants.DefaultValidEditionStatusesForCed, Utility.Constants.ValidEventTypesForCed);

                var newEdition = EditionServiceHelper.PrepareNewEdition(axId, eventId, stagingEdition, eventStartDate, eventEndDate, lastEdition);

                EditionTranslationEntity newEditionTranslation = null;

                if (!SaveNewEdition(newEdition, stagingEdition))
                {
                    return;
                }

                UpdateStartDateDiffFieldsOfNewEdition(newEdition.EditionId);

                if (lastEdition != null)
                {
                    foreach (var editionTranslation in lastEdition.EditionTranslations)
                    {
                        newEditionTranslation = EditionServiceHelper.PrepareNewEditionTranslation(newEdition, stagingEdition, editionTranslation);

                        EditionServiceHelper.CopyEditionImages(newEdition.EditionId, newEdition.EditionName, editionTranslation, newEditionTranslation);

                        var newEditionTranslationId = SaveEditionTranslation(newEditionTranslation, stagingEdition);

                        if (!(newEditionTranslationId > 0))
                        {
                            continue;
                        }

                        newEditionTranslation.EditionTranslationId = newEditionTranslationId;

                        _editionServiceHelper.CopySocialMediaAccounts(lastEdition.EditionId, editionTranslation.LanguageCode, newEditionTranslation);
                    }
                }
                else
                {
                    // Add a new EditionTranslation (en-gb)
                    newEditionTranslation = EditionServiceHelper.PrepareNewEditionTranslation(newEdition, stagingEdition, null);

                    var newEditionTranslationId = SaveEditionTranslation(newEditionTranslation, stagingEdition);
                }

                scope.Complete();

                if (Utility.Constants.ValidEventTypesForCed.Contains(newEdition.EventTypeCode))
                {
                    var newEditionEntity = Mapper.Map <Edition, EditionEntity>(newEdition);
                    SendNotificationEmailForEditionCreation(newEditionEntity, newEditionTranslation, GetEmailTemplateForEditionCreation(newEditionEntity));
                }
            }
        }
 public static EditionTranslationEntity PreUpdateExistingEditionTranslation(EditionTranslationEntity existingEditionTranslation, DWStaging.Edition stagingEdition)
 {
     existingEditionTranslation.LanguageCode = LanguageHelper.GetBaseLanguageCultureName();
     existingEditionTranslation.VenueName    = stagingEdition.EventVenue;
     return(existingEditionTranslation);
 }
        protected void UpdateLogInMemory(EditionEntity currentEdition, EditionEntity edition, EditionTranslationEntity currentEditionTranslation, EditionTranslationEntity editionTranslation)
        {
            var updatedFields = LogControllerHelper.GetUpdatedFields(currentEdition, edition, currentEditionTranslation, editionTranslation, UpdateDisplayType.Json);

            if (string.IsNullOrWhiteSpace(updatedFields))
            {
                return;
            }

            UpdateLogInMemory(edition, updatedFields);
        }
Пример #23
0
        public EmailResult Send(EditionEntity edition, EditionTranslationEntity editionTranslation, NotificationType notificationType,
                                string recipientFullName, string body, string recipients, string buttonUrl, string unsubscriptionUrl)
        {
            if (string.IsNullOrWhiteSpace(recipients))
            {
                var message = $"{notificationType} type of notification email could not be sent since edition {edition.EditionId} - {edition.EditionName} has no recipients.";
                return(new EmailResult {
                    Sent = false, ErrorMessage = message
                });
            }

            var sendEmail = notificationType.GetAttribute <NotificationAttribute>().SendEmail;

            if (sendEmail)
            {
                MvcMailMessage mailMessage = null;
                var            webLogoUrl  = EditionImageType.WebLogo.BlobFullUrl(editionTranslation);
                var            displayDate = DateHelper.GetDisplayDate(edition.StartDate, edition.EndDate);
                var            subject     = GetSubject(edition, notificationType);

                subject += WebConfigHelper.IsLocal ? " " + _emailSubjectMarkForLocal : (WebConfigHelper.IsTest ? " " + _emailSubjectMarkForTest : null);

                var notfAttr = notificationType.GetAttribute <NotificationAttribute>();

                if (notfAttr == null)
                {
                    throw new Exception("Notification Attribute not found!");
                }

                var editionMailTemplate = new EditionMailTemplate
                {
                    EditionId         = edition.EditionId,
                    EventId           = edition.EventId,
                    AxEventId         = edition.AxEventId,
                    EditionName       = edition.EditionName,
                    EventName         = edition.Event.MasterName,
                    WebLogoUrl        = webLogoUrl,
                    Recipients        = recipients,
                    RecipientFullName = recipientFullName,
                    DisplayDate       = displayDate,
                    VenueName         = editionTranslation.VenueName,
                    Subject           = subject,
                    Body              = body,
                    ButtonText        = notfAttr.ButtonText,
                    ButtonUrl         = buttonUrl,
                    UnsubscriptionUrl = unsubscriptionUrl,
                    GuideUrl          = WebConfigHelper.CedLogoUrl,
                    PartialViewName   = notfAttr.ViewName
                };

                var mailer = new UserMailer.UserMailer();
                mailMessage = mailer.Send(editionMailTemplate, notfAttr.PrivateEmail);
                return(new EmailResult {
                    Sent = true, ErrorMessage = ""
                });
            }

            return(new EmailResult {
                Sent = false, ErrorMessage = "Unknown error"
            });
        }