Exemplo n.º 1
0
        public async Task <IActionResult> Create()
        {
            var site = await GetCurrentSiteAsync();

            var siteUrl = await _siteService.GetBaseUrl(Request.Scheme, Request.Host.Value);

            var viewModel = new TriggersDetailViewModel
            {
                Action            = "Create",
                IsSecretCode      = true,
                BadgeMakerUrl     = GetBadgeMakerUrl(siteUrl, site.FromEmailAddress),
                UseBadgeMaker     = true,
                EditAvatarBundle  = UserHasPermission(Permission.ManageAvatars),
                EditMail          = UserHasPermission(Permission.ManageTriggerMail),
                EditVendorCode    = UserHasPermission(Permission.ManageVendorCodes),
                SystemList        = new SelectList(await _siteService.GetSystemList(), "Id", "Name"),
                BranchList        = new SelectList(await _siteService.GetAllBranches(), "Id", "Name"),
                ProgramList       = new SelectList(await _siteService.GetProgramList(), "Id", "Name"),
                IgnorePointLimits = UserHasPermission(Permission.IgnorePointLimits),
                MaxPointLimit     = await _triggerService.GetMaximumAllowedPointsAsync(GetCurrentSiteId())
            };

            if (viewModel.MaxPointLimit.HasValue)
            {
                viewModel.MaxPointsMessage = $"(Up to {viewModel.MaxPointLimit.Value} points)";
            }

            if (viewModel.EditVendorCode)
            {
                viewModel.VendorCodeTypeList = new SelectList(
                    await _vendorCodeService.GetTypeAllAsync(), "Id", "Description");
            }
            if (viewModel.EditAvatarBundle)
            {
                viewModel.UnlockableAvatarBundleList = new SelectList(
                    await _avatarService.GetAllBundlesAsync(true), "Id", "Name");
            }

            PageTitle = "Create Trigger";
            return(View("Detail", viewModel));
        }