예제 #1
0
        public static bool IsClonable(this EditionEntityLight edition, CedUser user)
        {
            if (!WebConfigHelper.CloningAllowed)
            {
                return(false);
            }

            if (!Constants.ValidEventActivitiesToClone.Select(x => x.ToLower()).ToArray().Contains(edition.EventActivity.ToLower()))
            {
                return(false);
            }

            if (!Constants.ValidEditionStatusesToClone.Contains(edition.Status))
            {
                return(false);
            }

            if (user.IsSuperAdmin)
            {
                return(true);
            }

            if (edition.DirectorEmails.Contains(user.CurrentUser.Email.ToLower()))
            {
                return(true);
            }

            return(false);
        }
예제 #2
0
        public void TestInitialize()
        {
            _cedUser = new CedUser(new UserEntity {
                Email = "*****@*****.**"
            }, new List <RoleEntity>());

            _mockAuthUserServices    = new Mock <IUserServices>();
            _mockRoleServices        = new Mock <IRoleServices>();
            _mockApplicationServices = new Mock <IApplicationServices>();
            _mockIndustryServices    = new Mock <IIndustryServices>();
            _mockRegionServices      = new Mock <IRegionServices>();

            _mockCountryServices                       = new Mock <ICountryServices>();
            _mockEditionServices                       = new Mock <IEditionServices>();
            _mockEditionCoHostServices                 = new Mock <IEditionCohostServices>();
            _mockEditionCountryServices                = new Mock <IEditionCountryServices>();
            _mockEditionKeyVisitorServices             = new Mock <IEditionKeyVisitorServices>();
            _mockEditionTranslationServices            = new Mock <IEditionTranslationServices>();
            _mockEditionTranslationSocialMediaServices = new Mock <IEditionTranslationSocialMediaServices>();
            _mockEditionVisitorServices                = new Mock <IEditionVisitorServices>();
            _mockEventServices         = new Mock <IEventServices>();
            _mockEventDirectorServices = new Mock <IEventDirectorServices>();
            _mockFileServices          = new Mock <IFileServices>();
            _mockKeyVisitorServices    = new Mock <IKeyVisitorServices>();
            _mockLogServices           = new Mock <ILogServices>();
            _mockNotificationServices  = new Mock <INotificationServices>();
            _mockSubscriptionServices  = new Mock <ISubscriptionServices>();
            _mockUserServices          = new Mock <IUserServices>();
            _mockUserRoleServices      = new Mock <IUserRoleServices>();

            _sut = SetUpController();

            AutoMapperConfig.Register();
        }
        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);
        }
        public void TestInitialize()
        {
            _cedUser = new CedUser(new UserEntity {
                Email = "*****@*****.**",
            }, null);

            _mockAuthUserServices    = new Mock <IUserServices>();
            _mockRoleServices        = new Mock <IRoleServices>();
            _mockApplicationServices = new Mock <IApplicationServices>();
            _mockIndustryServices    = new Mock <IIndustryServices>();
            _mockRegionServices      = new Mock <IRegionServices>();

            _mockEventServices           = new Mock <IEventServices>();
            _mockEventDirectorServices   = new Mock <IEventDirectorServices>();
            _mockLogServices             = new Mock <ILogServices>();
            _mockNotificationServices    = new Mock <INotificationServices>();
            _mockUserServices            = new Mock <IUserServices>();
            _mockUserRoleServices        = new Mock <IUserRoleServices>();
            _mockInAppNotificationHelper = new Mock <IInAppNotificationHelper>();

            _mockHttpContextBase = new Mock <HttpContextBase>();

            _mockNotificationServices
            .Setup(x => x.GetNotifications(It.IsAny <string>(), It.IsAny <NotificationType[]>(), It.IsAny <int?>()))
            .Returns(new List <NotificationEntity>());

            _sut = SetUpController();

            AutoMapperConfig.Register();
        }
        public static bool Deletable(this FileEntity file, CedUser user)
        {
            if (user.IsViewer)
            {
                return(false);
            }

            switch (file.EditionFileType)
            {
            case EditionFileType.VisitorData:
                if (user.IsSuperAdmin)
                {
                    return(true);
                }
                return(false);

            case EditionFileType.PostShowReport:
                return(true);

            case EditionFileType.ExhibitionPhoto:
                return(true);

            case EditionFileType.PriceList:
                return(true);

            default:
                return(false);
            }
        }
예제 #6
0
        public static bool IsEditable(this EditionEntity edition, CedUser user)
        {
            if (!Constants.ValidEventActivitiesToEdit.Select(x => x.ToLower()).ToArray().Contains(edition.EventActivity.ToLower()))
            {
                return(false);
            }

            if (!Constants.ValidEditionStatusesToEdit.Contains(edition.Status.GetHashCode()))
            {
                return(false);
            }

            return(true);
        }
예제 #7
0
        public static bool ImagesEditable(this EditionEntity edition, CedUser user)
        {
            if (user.IsViewer)
            {
                return(false);
            }

            if (user.IsAdmin || user.IsSuperAdmin)
            {
                return(true);
            }

            if (edition.EventActivity == EventActivity.ShowCancelled.GetDescription())
            {
                return(false);
            }

            return(true);
        }
예제 #8
0
        public static bool IsEditable(this EditionEntityLight edition, CedUser user)
        {
            if (!Constants.ValidEventActivitiesToEdit.Select(x => x.ToLower()).ToArray().Contains(edition.EventActivity.ToLower()))
            {
                return(false);
            }

            if (edition.Status == EditionStatusType.WaitingForApproval.GetHashCode() && user.IsApprover)
            {
                return(true);
            }

            if (!Constants.ValidEditionStatusesToEdit.Contains(edition.Status))
            {
                return(false);
            }

            return(true);
        }
        public static EditionEditSalesMetricsModel ComposeEditionEditSalesMetricsModel(CedUser currentUser, EditionEntity edition)
        {
            var model = new EditionEditSalesMetricsModel
            {
                EditionId            = edition.EditionId,
                EventId              = edition.EventId,
                EventType            = edition.Event.EventTypeCode.ToEnumFromDescription <EventType>(),
                LocalSqmSold         = edition.LocalSqmSold,
                InternationalSqmSold = edition.InternationalSqmSold,
                SqmSold              = edition.SqmSold,
                SponsorCount         = edition.SponsorCount,
                EventActivity        = edition.EventActivity,
                IsAlive              = edition.IsAlive(),
                IsCancelled          = edition.IsCancelled(),
                CurrentUser          = currentUser
            };

            return(model);
        }
        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);
        }
예제 #11
0
        public static List <string> ReasonsForNotBeingClonable(this EditionEntityLight edition, CedUser user)
        {
            var reasons = new List <string>();

            if (!edition.IsClonable(user))
            {
                if (!WebConfigHelper.CloningAllowed)
                {
                    reasons.Add("Cloning not allowed.");
                    return(reasons);
                }

                if (!Constants.ValidEventActivitiesToClone.Select(x => x.ToLower()).ToArray().Contains(edition.EventActivity.ToLower()))
                {
                    reasons.Add(edition.EventActivity);
                }

                if (!Constants.ValidEditionStatusesToClone.Contains(edition.Status))
                {
                    reasons.Add(edition.Status.ToEnum <EditionStatusType>().GetDescription());
                }

                if (!edition.DirectorEmails.Contains(user.CurrentUser.Email.ToLower()))
                {
                    reasons.Add("You don't have permission.");
                }
            }

            return(reasons);
        }
예제 #12
0
        public static List <string> ReasonsForNotBeingEditable(this EditionEntityLight edition, CedUser user)
        {
            var reasons = new List <string>();

            if (!edition.IsEditable(user))
            {
                if (!Constants.ValidEventActivitiesToEdit.Select(x => x.ToLower()).ToArray().Contains(edition.EventActivity.ToLower()))
                {
                    reasons.Add(edition.EventActivity);
                }

                if (!Constants.ValidEditionStatusesToEdit.Contains(edition.Status))
                {
                    reasons.Add(edition.Status.ToEnum <EditionStatusType>().GetDescription());
                }
            }

            return(reasons);
        }
        internal bool SetUserSso()
        {
            if (!User.Identity.IsAuthenticated)
            {
                return(false);
            }

            string email = null;

            foreach (var claim in ((ClaimsPrincipal)User).Claims)
            {
                if (claim.Type == "preferred_username")
                {
                    email = claim.Value;
                    break;
                }
            }

            var user = UserServices.GetUser(email);

            if (user == null)
            {
                user = new UserEntity
                {
                    Email       = email,
                    Name        = email,
                    Surname     = email,
                    AdLogonName = email
                };
                user = UserServices.CreateUser(user);

                if (user != null)
                {
                    UserRoleServices.CreateUserRole(new UserRoleEntity
                    {
                        UserId = user.UserId,
                        RoleId = 3
                    });
                }
            }

            if (user == null)
            {
                return(false);
            }

            var userRoles = GetUserRoles(user.UserId);

            User.AddUpdateClaim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", user.Email.ToLower());
            User.AddUpdateClaim("sub", user.Email.ToLower());

            foreach (var userRole in userRoles)
            {
                User.AddClaim("http://schemas.microsoft.com/ws/2008/06/identity/claims/role", userRole.RoleName);
            }

            var list = ((ClaimsPrincipal)User).Claims.Where(claim => claim.Type.EndsWith("role")).Select(claim =>
            {
                var roleEntity = new RoleEntity
                {
                    RoleId          = 1,
                    Name            = claim.Value,
                    ApplicationId   = WebConfigHelper.ApplicationIdCed,
                    ApplicationName = "ITE.CED"
                };
                return(roleEntity);
            }).ToList();

            CurrentCedUser = new CedUser(user, list);
            CurrentCedUser.IsPrimaryDirector   = EventDirectorServices.IsPrimaryDirector(CurrentCedUser.CurrentUser.Email, null, WebConfigHelper.ApplicationIdCed);
            CurrentCedUser.IsAssistantDirector = EventDirectorServices.IsAssistantDirector(CurrentCedUser.CurrentUser.Email, null, WebConfigHelper.ApplicationIdCed);

            return(true);
        }