public async Task <IActionResult> ViewPackingSlip(long id)
        {
            if (id == 0)
            {
                return(View("EnterPackingSlip"));
            }

            var summary = await _vendorCodeService.VerifyPackingSlipAsync(id);

            summary.CanViewDetails = UserHasPermission(Permission.ViewParticipantDetails);

            if (summary.VendorCodes.Count > 0 || summary.VendorCodePackingSlip != null)
            {
                if (summary.VendorCodePackingSlip != null)
                {
                    if (summary.CanViewDetails)
                    {
                        var enteredBy = await _userService
                                        .GetDetailsByPermission(summary.VendorCodePackingSlip.CreatedBy);

                        summary.ReceivedBy = enteredBy.FullName;
                    }
                }
                else
                {
                    var vendorCodeType = await _vendorCodeService
                                         .GetTypeById(summary.VendorCodes.First().VendorCodeTypeId);

                    summary.CanBeReceived = UserHasPermission(Permission.ReceivePackingSlips) ||
                                            UserHasPermission(Permission.ManageVendorCodes);
                    summary.SubmitText = vendorCodeType.AwardPrizeOnPackingSlip
                        ? "Mark as received and award prizes"
                        : "Mark as received";
                }

                var tracking = new HashSet <string>();
                foreach (var tns in summary.VendorCodes.Select(_ => _.TrackingNumber).Distinct())
                {
                    foreach (var tn in tns.Split(','))
                    {
                        tracking.Add(tn.Trim());
                    }
                }

                if (tracking.Count > 0)
                {
                    summary.TrackingNumbers = tracking;
                }

                return(View("ViewPackingSlip", summary));
            }

            ShowAlertDanger($"Could not find packing slip number {id}, please contact your administrator.");
            return(View("EnterPackingSlip", id));
        }
        public async Task <IActionResult> View(int id)
        {
            try
            {
                var storedReport = await _reportService.GetReportResultsAsync(id);

                PageTitle = storedReport.request.Name ?? "Report Results";

                var viewModel = new ReportResultsViewModel
                {
                    Title          = PageTitle,
                    ReportResultId = id
                };

                if (storedReport.criterion.StartDate.HasValue)
                {
                    viewModel.StartDate = storedReport.criterion.StartDate;
                }
                if (storedReport.criterion.EndDate.HasValue)
                {
                    viewModel.EndDate = storedReport.criterion.EndDate;
                }
                if (storedReport.criterion.SystemId.HasValue)
                {
                    viewModel.SystemName = (await _siteService
                                            .GetSystemByIdAsync(storedReport.criterion.SystemId.Value)).Name;
                }
                if (storedReport.criterion.BranchId.HasValue)
                {
                    viewModel.BranchName = await _siteService
                                           .GetBranchName(storedReport.criterion.BranchId.Value);
                }
                if (storedReport.criterion.ProgramId.HasValue)
                {
                    viewModel.ProgramName = (await _siteService
                                             .GetProgramByIdAsync(storedReport.criterion.ProgramId.Value)).Name;
                }
                if (storedReport.criterion.GroupInfoId.HasValue)
                {
                    viewModel.GroupName = (await _userService
                                           .GetGroupInfoByIdAsync(storedReport.criterion.GroupInfoId.Value)).Name;
                }
                if (storedReport.criterion.SchoolDistrictId.HasValue)
                {
                    viewModel.SchoolDistrictName = (await _schoolService
                                                    .GetDistrictByIdAsync(storedReport.criterion.SchoolDistrictId.Value)).Name;
                }
                if (storedReport.criterion.SchoolId.HasValue)
                {
                    viewModel.SchoolName = (await _schoolService
                                            .GetByIdAsync(storedReport.criterion.SchoolId.Value)).Name;
                }
                if (storedReport.criterion.VendorCodeTypeId.HasValue)
                {
                    viewModel.VendorCodeName = (await _vendorCodeService
                                                .GetTypeById(storedReport.criterion.VendorCodeTypeId.Value)).Description;
                }

                viewModel.ReportSet = JsonConvert
                                      .DeserializeObject <StoredReportSet>(storedReport.request.ResultJson);

                foreach (var report in viewModel.ReportSet.Reports)
                {
                    int count       = 0;
                    int totalRows   = report.Data.Count();
                    var displayRows = new List <List <string> >();

                    if (report.HeaderRow != null)
                    {
                        var display = new List <string>();
                        foreach (var dataItem in report.HeaderRow)
                        {
                            display.Add(FormatDataItem(dataItem));
                        }
                        report.HeaderRow = display;
                    }

                    foreach (var resultRow in report.Data)
                    {
                        var displayRow = new List <string>();

                        foreach (var resultItem in resultRow)
                        {
                            displayRow.Add(FormatDataItem(resultItem));
                        }
                        displayRows.Add(displayRow);
                        count++;
                    }
                    report.Data = displayRows;

                    if (report.FooterRow != null)
                    {
                        var display = new List <string>();
                        foreach (var dataItem in report.FooterRow)
                        {
                            display.Add(FormatDataItem(dataItem));
                        }
                        report.FooterRow = display;
                    }
                }

                return(View(viewModel));
            }
            catch (GraException gex)
            {
                AlertDanger = gex.Message;
                return(RedirectToAction("Index"));
            }
        }
Пример #3
0
        public async Task <IActionResult> Edit(int id)
        {
            var trigger = await _triggerService.GetByIdAsync(id);

            if (trigger == null)
            {
                ShowAlertWarning($"Could not find trigger id {id}, possibly it has been deleted.");
                return(RedirectToAction("Index"));
            }
            var site = await GetCurrentSiteAsync();

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

            var badge = await _badgeService.GetByIdAsync(trigger.AwardBadgeId);

            var viewModel = new TriggersDetailViewModel
            {
                Trigger             = trigger,
                CreatedByName       = await _userService.GetUsersNameByIdAsync(trigger.CreatedBy),
                CanViewParticipants = UserHasPermission(Permission.ViewParticipantDetails),
                Action                = "Edit",
                IsSecretCode          = !string.IsNullOrWhiteSpace(trigger.SecretCode),
                BadgeMakerUrl         = GetBadgeMakerUrl(siteUrl, site.FromEmailAddress),
                UseBadgeMaker         = true,
                EditAvatarBundle      = UserHasPermission(Permission.ManageAvatars),
                EditMail              = UserHasPermission(Permission.ManageTriggerMail),
                EditVendorCode        = UserHasPermission(Permission.ManageVendorCodes),
                AwardsMail            = !string.IsNullOrWhiteSpace(trigger.AwardMailSubject),
                AwardsPrize           = !string.IsNullOrWhiteSpace(trigger.AwardPrizeName),
                DependentTriggers     = await _triggerService.GetDependentsAsync(trigger.AwardBadgeId),
                TriggerRequirements   = await _triggerService.GetTriggerRequirementsAsync(trigger),
                BadgeRequiredList     = string.Join(",", trigger.BadgeIds),
                ChallengeRequiredList = string.Join(",", trigger.ChallengeIds),
                SystemList            = new SelectList(await _siteService.GetSystemList(), "Id", "Name"),
                ProgramList           = new SelectList(await _siteService.GetProgramList(), "Id", "Name"),
                IgnorePointLimits     = UserHasPermission(Permission.IgnorePointLimits),
                MaxPointLimit         =
                    await _triggerService.GetMaximumAllowedPointsAsync(GetCurrentSiteId()),
                BadgeAltText = badge.AltText
            };

            if (viewModel?.MaxPointLimit != null)
            {
                viewModel.MaxPointsMessage = $"(Up to {viewModel.MaxPointLimit.Value} points)";
            }
            if (trigger.AwardPoints > viewModel.MaxPointLimit)
            {
                viewModel.MaxPointsWarningMessage = $"This Trigger exceeds the maximum of {viewModel.MaxPointLimit.Value} points per required task. Only Administrators can edit the points awarded.";
            }
            if (viewModel.EditVendorCode)
            {
                viewModel.VendorCodeTypeList = new SelectList(
                    await _vendorCodeService.GetTypeAllAsync(), "Id", "Description");
            }
            else if (viewModel.Trigger.AwardVendorCodeTypeId.HasValue)
            {
                viewModel.VendorCodeType = (await _vendorCodeService
                                            .GetTypeById(viewModel.Trigger.AwardVendorCodeTypeId.Value)).Description;
            }

            if (viewModel.EditAvatarBundle)
            {
                viewModel.UnlockableAvatarBundleList = new SelectList(
                    await _avatarService.GetAllBundlesAsync(true), "Id", "Name");
            }
            else if (viewModel.Trigger.AwardAvatarBundleId.HasValue)
            {
                viewModel.UnlockableAvatarBundle = (await _avatarService
                                                    .GetBundleByIdAsync(viewModel.Trigger.AwardAvatarBundleId.Value)).Name;
            }

            if (viewModel.Trigger.LimitToSystemId.HasValue)
            {
                viewModel.BranchList = new SelectList(
                    await _siteService.GetBranches(viewModel.Trigger.LimitToSystemId.Value), "Id", "Name");
            }
            else
            {
                viewModel.BranchList = new SelectList(await _siteService.GetAllBranches(), "Id", "Name");
            }
            foreach (var requirement in viewModel.TriggerRequirements)
            {
                if (!string.IsNullOrWhiteSpace(requirement.BadgePath))
                {
                    requirement.BadgePath = _pathResolver.ResolveContentPath(requirement.BadgePath);
                }
            }
            if (!string.IsNullOrWhiteSpace(viewModel.Trigger.AwardBadgeFilename))
            {
                viewModel.BadgePath = _pathResolver.ResolveContentPath(viewModel.Trigger.AwardBadgeFilename);
            }
            if (UserHasPermission(Permission.ManageEvents))
            {
                viewModel.RelatedEvents = await _eventService.GetRelatedEventsForTriggerAsync(id);
            }
            PageTitle = $"Edit Trigger - {viewModel.Trigger.Name}";
            return(View("Detail", viewModel));
        }
Пример #4
0
        public async Task <IActionResult> Edit(int id)
        {
            var trigger = await _triggerService.GetByIdAsync(id);

            var site = await GetCurrentSiteAsync();

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

            var viewModel = new TriggersDetailViewModel
            {
                Trigger               = trigger,
                Action                = "Edit",
                IsSecretCode          = !string.IsNullOrWhiteSpace(trigger.SecretCode),
                BadgeMakerUrl         = GetBadgeMakerUrl(siteUrl, site.FromEmailAddress),
                UseBadgeMaker         = true,
                EditAvatarBundle      = UserHasPermission(Permission.ManageAvatars),
                EditMail              = UserHasPermission(Permission.ManageTriggerMail),
                EditVendorCode        = UserHasPermission(Permission.ManageVendorCodes),
                AwardsMail            = !string.IsNullOrWhiteSpace(trigger.AwardMailSubject),
                AwardsPrize           = !string.IsNullOrWhiteSpace(trigger.AwardPrizeName),
                DependentTriggers     = await _triggerService.GetDependentsAsync(trigger.AwardBadgeId),
                TriggerRequirements   = await _triggerService.GetTriggerRequirementsAsync(trigger),
                BadgeRequiredList     = string.Join(",", trigger.BadgeIds),
                ChallengeRequiredList = string.Join(",", trigger.ChallengeIds),
                SystemList            = new SelectList((await _siteService.GetSystemList()), "Id", "Name"),
                ProgramList           = new SelectList((await _siteService.GetProgramList()), "Id", "Name")
            };

            if (viewModel.EditVendorCode)
            {
                viewModel.VendorCodeTypeList = new SelectList(
                    (await _vendorCodeService.GetTypeAllAsync()), "Id", "Description");
            }
            else if (viewModel.Trigger.AwardVendorCodeTypeId.HasValue)
            {
                viewModel.VendorCodeType = (await _vendorCodeService
                                            .GetTypeById(viewModel.Trigger.AwardVendorCodeTypeId.Value)).Description;
            }

            if (viewModel.EditAvatarBundle)
            {
                viewModel.UnlockableAvatarBundleList = new SelectList(
                    await _dynamicAvatarService.GetAllBundlesAsync(true), "Id", "Name");
            }
            else if (viewModel.Trigger.AwardAvatarBundleId.HasValue)
            {
                viewModel.UnlockableAvatarBundle = (await _dynamicAvatarService
                                                    .GetBundleByIdAsync(viewModel.Trigger.AwardAvatarBundleId.Value)).Name;
            }

            if (viewModel.Trigger.LimitToSystemId.HasValue)
            {
                viewModel.BranchList = new SelectList(
                    (await _siteService.GetBranches(viewModel.Trigger.LimitToSystemId.Value)), "Id", "Name");
            }
            else
            {
                viewModel.BranchList = new SelectList((await _siteService.GetAllBranches()), "Id", "Name");
            }
            foreach (var requirement in viewModel.TriggerRequirements)
            {
                if (!string.IsNullOrWhiteSpace(requirement.BadgePath))
                {
                    requirement.BadgePath = _pathResolver.ResolveContentPath(requirement.BadgePath);
                }
            }
            if (!string.IsNullOrWhiteSpace(viewModel.Trigger.AwardBadgeFilename))
            {
                viewModel.BadgePath = _pathResolver.ResolveContentPath(viewModel.Trigger.AwardBadgeFilename);
            }

            if (UserHasPermission(Permission.ManageEvents))
            {
                viewModel.RelatedEvents = await _eventService.GetRelatedEventsForTriggerAsync(id);
            }
            PageTitle = $"Edit Trigger - {viewModel.Trigger.Name}";
            return(View("Detail", viewModel));
        }