Exemple #1
0
        protected void AuditAssetHistoryRepeater_OnItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            switch (e.Item.ItemType)
            {
            case (ListItemType.Item):
            case (ListItemType.AlternatingItem):

                // Get data item
                AuditAssetHistory auditAssetHistory = (AuditAssetHistory)e.Item.DataItem;

                // Get controls
                HyperLink      AssetHyperlink        = (HyperLink)e.Item.FindControl("AssetHyperlink");
                EmailHyperLink UserEmailHyperLink    = (EmailHyperLink)e.Item.FindControl("UserEmailHyperLink");
                Label          EventDescriptionLabel = (Label)e.Item.FindControl("EventDescriptionLabel");
                Label          IpAddressLabel        = (Label)e.Item.FindControl("IpAddressLabel");
                Label          DateTimeLabel         = (Label)e.Item.FindControl("DateTimeLabel");
                Label          NotesLabel            = (Label)e.Item.FindControl("NotesLabel");

                // Populate them
                AssetHyperlink.Text             = auditAssetHistory.AssetId.ToString();
                AssetHyperlink.NavigateUrl      = string.Format("~/Admin/Assets/AssetForm.aspx?AssetId={0}", auditAssetHistory.AssetId);
                UserEmailHyperLink.EmailAddress = auditAssetHistory.UserEmail;
                EventDescriptionLabel.Text      = auditAssetHistory.Description;
                IpAddressLabel.Text             = auditAssetHistory.IpAddress;
                DateTimeLabel.Text = auditAssetHistory.Date.ToString(Global.DateTimeFormat);
                NotesLabel.Text    = auditAssetHistory.Notes;

                // Populate blank
                SiteUtils.PopulateBlankControl(NotesLabel);

                break;
            }
        }
Exemple #2
0
        protected void LastUsersToDownloadRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            switch (e.Item.ItemType)
            {
            case (ListItemType.Item):
            case (ListItemType.AlternatingItem):

                DataRowView row = (DataRowView)e.Item.DataItem;

                EmailHyperLink EmailHyperLink1 = (EmailHyperLink)e.Item.FindControl("EmailHyperLink1");
                Label          DateLabel       = (Label)e.Item.FindControl("DateLabel");

                EmailHyperLink1.EmailAddress = row["Email"].ToString();
                DateLabel.Text = Convert.ToDateTime(row["Date"]).ToString(Global.DateTimeFormat);

                break;
            }
        }
        protected void CartRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            switch (e.Item.ItemType)
            {
            case (ListItemType.Item):
            case (ListItemType.AlternatingItem):

                Cart  cart  = (Cart)e.Item.DataItem;
                Asset asset = cart.Asset;

                HiddenField AssetIdHiddenField = (HiddenField)e.Item.FindControl("AssetIdHiddenField");
                HiddenField CartIdHiddenField  = (HiddenField)e.Item.FindControl("CartIdHiddenField");

                AssetIdHiddenField.Value = asset.AssetId.ToString();
                CartIdHiddenField.Value  = cart.CartId.ToString();

                AssetThumbnail AssetThumbnail1 = (AssetThumbnail)e.Item.FindControl("AssetThumbnail1");
                AssetButtons   AssetButtons1   = (AssetButtons)e.Item.FindControl("AssetButtons1");

                AssetThumbnail1.Initialise(asset);
                AssetButtons1.Initialise(asset);

                HtmlTableCell  AssetIdCell = (HtmlTableCell)e.Item.FindControl("AssetIdCell");
                HtmlTableCell  AssetShortDescriptionCell  = (HtmlTableCell)e.Item.FindControl("AssetShortDescriptionCell");
                HtmlTableCell  AssetBrandNameCell         = (HtmlTableCell)e.Item.FindControl("AssetBrandNameCell");
                HtmlTableCell  AssetTypeCell              = (HtmlTableCell)e.Item.FindControl("AssetTypeCell");
                HtmlTableCell  UsageRestrictionsCell      = (HtmlTableCell)e.Item.FindControl("UsageRestrictionsCell");
                EmailHyperLink AssetContactEmailHyperLink = (EmailHyperLink)e.Item.FindControl("AssetContactEmailHyperLink");
                DatePicker     DateRequiredPicker         = (DatePicker)e.Item.FindControl("DateRequiredPicker");
                TextBox        NotesTextBox               = (TextBox)e.Item.FindControl("NotesTextBox");
                CheckBox       SelectAssetCheckBox        = (CheckBox)e.Item.FindControl("SelectAssetCheckBox");
                FeedbackLabel  CartItemMessageLabel       = (FeedbackLabel)e.Item.FindControl("CartItemMessageLabel");
                HtmlTableRow   IntendedUseRow             = (HtmlTableRow)e.Item.FindControl("IntendedUseRow");
                PlaceHolder    SaveNotesButtonPlaceHolder = (PlaceHolder)e.Item.FindControl("SaveNotesButtonPlaceHolder");

                AssetIdCell.InnerText = asset.AssetId.ToString();
                AssetShortDescriptionCell.InnerHtml     = SiteUtils.ConvertTextToHtml(asset.Description);
                AssetBrandNameCell.InnerText            = asset.Brand.Name;
                AssetTypeCell.InnerText                 = asset.AssetType.Name;
                UsageRestrictionsCell.InnerHtml         = asset.UsageRestrictions;
                AssetContactEmailHyperLink.EmailAddress = asset.ContactEmail;
                DateRequiredPicker.SelectedDate         = cart.RequiredByDate;
                NotesTextBox.Text           = cart.Notes;
                SelectAssetCheckBox.Checked = IsCartItemSelected(cart.CartId.GetValueOrDefault());

                // Ensure blank cells have content
                SiteUtils.PopulateBlankControl(AssetShortDescriptionCell);
                SiteUtils.PopulateBlankControl(UsageRestrictionsCell);

                AssetStatus assetStatus  = AssetManager.GetAssetStatusForUser(asset, CurrentUser);
                bool        isRestricted = EntitySecurityManager.IsAssetRestricted(CurrentUser, asset);

                switch (assetStatus)
                {
                case AssetStatus.Withdrawn:

                    CartItemMessageLabel.MessageType   = BaseMessageLabel.MessageTypes.Withdrawn;
                    CartItemMessageLabel.Header        = "this asset is not available for ordering";
                    IntendedUseRow.Visible             = false;
                    SaveNotesButtonPlaceHolder.Visible = false;
                    break;

                case AssetStatus.Expired:

                    CartItemMessageLabel.MessageType   = BaseMessageLabel.MessageTypes.Withdrawn;
                    CartItemMessageLabel.Header        = "this asset is not available for ordering";
                    IntendedUseRow.Visible             = false;
                    SaveNotesButtonPlaceHolder.Visible = false;
                    break;

                case AssetStatus.Available:

                    if (isRestricted)
                    {
                        CartItemMessageLabel.MessageType   = BaseMessageLabel.MessageTypes.Negative;
                        CartItemMessageLabel.Header        = "approval required";
                        CartItemMessageLabel.Text          = "Approval is required to use this asset. State intended usage in the notes (you may be asked for further information).";
                        IntendedUseRow.Visible             = true;
                        SaveNotesButtonPlaceHolder.Visible = true;
                    }
                    else
                    {
                        CartItemMessageLabel.MessageType   = BaseMessageLabel.MessageTypes.Positive;
                        CartItemMessageLabel.Header        = "no approval required";
                        CartItemMessageLabel.Text          = "Approval is not required to download and use this asset.";
                        IntendedUseRow.Visible             = false;
                        SaveNotesButtonPlaceHolder.Visible = false;
                    }

                    break;
                }

                // Only show the date required selector if the asset is available but restricted
                HtmlTableRow DateRequiredRow = (HtmlTableRow)e.Item.FindControl("DateRequiredRow");
                DateRequiredRow.Visible = (assetStatus == AssetStatus.Available && isRestricted);

                break;
            }
        }
        protected void OrderItemsRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            switch (e.Item.ItemType)
            {
            case (ListItemType.Item):
            case (ListItemType.AlternatingItem):

                // Get the order item and its corresponding asset
                OrderItem orderItem = (OrderItem)e.Item.DataItem;
                Asset     asset     = orderItem.Asset;

                // Get all controls we'll be using
                HiddenField                OrderItemIdHiddenField      = (HiddenField)e.Item.FindControl("OrderItemIdHiddenField");
                HiddenField                AssetIdHiddenField          = (HiddenField)e.Item.FindControl("AssetIdHiddenField");
                AssetThumbnail             AssetThumbnail1             = (AssetThumbnail)e.Item.FindControl("AssetThumbnail1");
                AssetButtons               AssetButtons1               = (AssetButtons)e.Item.FindControl("AssetButtons1");
                FileSizeMessageLabel       FileSizeLabel               = (FileSizeMessageLabel)e.Item.FindControl("FileSizeLabel");
                EmailHyperLink             AssetContactHyperlink       = (EmailHyperLink)e.Item.FindControl("AssetContactHyperlink");
                HyperLink                  DownloadHyperlink           = (HyperLink)e.Item.FindControl("DownloadHyperlink");
                CheckBox                   SelectAssetCheckBox         = (CheckBox)e.Item.FindControl("SelectAssetCheckBox");
                DownloadFormatDropDownList DownloadFormatDropDownList1 = (DownloadFormatDropDownList)e.Item.FindControl("DownloadFormatDropDownList1");
                AssetImageSizeDropDownList AssetImageSizeDropDownList1 = (AssetImageSizeDropDownList)e.Item.FindControl("AssetImageSizeDropDownList1");
                FeedbackLabel              OrderItemMessageLabel       = (FeedbackLabel)e.Item.FindControl("OrderItemMessageLabel");
                PlaceHolder                ImageOptionsPlaceHolder     = (PlaceHolder)e.Item.FindControl("ImageOptionsPlaceHolder");
                HtmlTableRow               FileSizeRow               = (HtmlTableRow)e.Item.FindControl("FileSizeRow");
                HtmlGenericControl         SelectorContainer         = (HtmlGenericControl)e.Item.FindControl("SelectorContainer");
                HtmlGenericControl         LinkButtonWrapper         = (HtmlGenericControl)e.Item.FindControl("LinkButtonWrapper");
                FileSizeMessageLabel       ImageFileSizeMessageLabel = (FileSizeMessageLabel)e.Item.FindControl("ImageFileSizeMessageLabel");

                // Populate table cells with basic information about the asset
                SetTableCellText(e.Item, "AssetReferenceCell", asset.AssetId.ToString());
                SetTableCellHtml(e.Item, "DescriptionCell", SiteUtils.ConvertTextToHtml(asset.Description));
                SetTableCellText(e.Item, "BrandCell", asset.Brand.Name);
                SetTableCellText(e.Item, "AssetTypeCell", asset.AssetType.Name);
                SetTableCellHtml(e.Item, "UsageRestrictionsCell", asset.UsageRestrictions);
                SetTableCellText(e.Item, "DateRequestedByCell", orderItem.RequiredByDate.HasValue ? orderItem.RequiredByDate.Value.ToString(Global.DateFormat) : "None");
                SetTableCellText(e.Item, "DateOfDecisionCell", orderItem.OrderItemStatusDate.HasValue ? orderItem.OrderItemStatusDate.Value.ToString(Global.DateFormat) : "None");
                SetTableCellText(e.Item, "NotesCell", orderItem.Notes);

                // Populate hidden fields as we'll need these for other stuff
                OrderItemIdHiddenField.Value = orderItem.OrderItemId.ToString();
                AssetIdHiddenField.Value     = asset.AssetId.ToString();

                // Get/Initialise other objects we'll need here
                AssetStatus       assetStatus = AssetManager.GetAssetStatusForUser(asset, CurrentUser);
                SelectedOrderItem soi         = SelectedOrderItems.Get(orderItem.OrderItemId.GetValueOrDefault());

                // Check if user can download this asset
                bool canDownload = CanDownload(orderItem);

                // Initialise the thumbnail and buttons
                AssetThumbnail1.Initialise(asset);
                AssetButtons1.Initialise(asset);

                // Populate other controls which are not dependent on the asset type
                AssetContactHyperlink.SetNameEmail(asset.UploadedByUser.FullName, asset.UploadedByUser.Email);
                SelectorContainer.Visible     = canDownload;
                SelectAssetCheckBox.Checked   = IsOrderItemSelected(orderItem.OrderItemId.GetValueOrDefault());
                DownloadHyperlink.NavigateUrl = string.Format("javascript:downloadAsset('{0}','{1}','{2}', '{3}', '{4}')", orderItem.AssetId, orderItem.OrderId, orderItem.OrderItemId, DownloadFormatDropDownList1.ClientID, AssetImageSizeDropDownList1.ClientID);

                // Do processing dependent on asset type
                if (AssetTypeChecker.IsImage(asset.FileExtension))
                {
                    // Only show download resolution row if user can download
                    ImageOptionsPlaceHolder.Visible = canDownload;

                    // Only do the image size stuff if the download resolution row is visible
                    if (ImageOptionsPlaceHolder.Visible)
                    {
                        // Populate the download format dropdown with the previously selected value (if any)
                        DownloadFormatDropDownList1.SafeSelectValue(soi.DownloadFormat);

                        // Populate the asset image size dropdown with the previously selected value (if any)
                        AssetImageSizeDropDownList1.SafeSelectValue(soi.AssetImageSizeId);

                        // Get the filename to the image *if it exists already*
                        string filename = AssetImageManager.GetResizedAssetImage(asset, AssetImageSizeDropDownList1.SelectedId, DownloadFormatDropDownList1.SelectedDownloadFormat, false);

                        // Only set the filesize if the scaled image already exists, as it will be too heavy to create a scaled image
                        // of each asset as the page loads. Maybe we should do this when assets are uploaded...
                        if (filename != string.Empty)
                        {
                            ImageFileSizeMessageLabel.SetFileSize(FileUtils.GetFileSize(filename));
                        }
                    }
                }

                // Only show file size row if download resolution row is hidden and user can download this asset
                // (No point showing them the filesize for an asset they can't download)
                if (ImageOptionsPlaceHolder.Visible)
                {
                    FileSizeRow.Visible = false;
                }
                else
                {
                    FileSizeRow.Visible = canDownload;
                    FileSizeLabel.SetFileSize(asset.FileSize);
                }

                // Only show the conversation row if we have a conversation
                HtmlTableRow ConversationRow = (HtmlTableRow)e.Item.FindControl("ConversationRow");
                ConversationRow.Visible = (orderItem.OrderItemCommentList.Count > 0);

                // Bind conversation
                Repeater ConversationRepeater = (Repeater)e.Item.FindControl("ConversationRepeater");
                ConversationRepeater.DataSource = orderItem.OrderItemCommentList;
                ConversationRepeater.DataBind();

                // Hide the row to add notes, as this is only visible whilst an order item is awaiting approval
                HtmlTableRow AddNotesRow = (HtmlTableRow)e.Item.FindControl("AddNotesRow");
                AddNotesRow.Visible = false;

                if (assetStatus == AssetStatus.Available)
                {
                    switch (orderItem.OrderItemStatus)
                    {
                    case (OrderItemStatus.Preapproved):

                        OrderItemMessageLabel.SetSuccessMessage("no approval required", "Approval is not required to download and use this asset.");
                        LinkButtonWrapper.Visible = false;

                        break;

                    case (OrderItemStatus.Approved):

                        OrderItemMessageLabel.SetSuccessMessage("approved", "Approval to use this asset has been granted. Refer to the response given in the approval details for any further information.");
                        LinkButtonWrapper.Visible = true;

                        break;

                    case (OrderItemStatus.AwaitingApproval):

                        OrderItemMessageLabel.MessageType = BaseMessageLabel.MessageTypes.Pending;
                        OrderItemMessageLabel.Header      = "approval pending";
                        OrderItemMessageLabel.Text        = "Approval to use this asset is pending a decision. An email will be sent to you when a decision is made.";
                        LinkButtonWrapper.Visible         = true;
                        AddNotesRow.Visible = true;

                        break;

                    case (OrderItemStatus.Rejected):

                        OrderItemMessageLabel.SetErrorMessage("approval rejected", "Approval to use this asset has been rejected. Refer to the response given in the approval notes for further information.");
                        LinkButtonWrapper.Visible = true;

                        break;
                    }
                }
                else
                {
                    OrderItemMessageLabel.MessageType = BaseMessageLabel.MessageTypes.Withdrawn;
                    OrderItemMessageLabel.Header      = "asset withdrawn";
                    OrderItemMessageLabel.Text        = "This asset has been withdrawn from the system and is no longer available to download.";
                    LinkButtonWrapper.Visible         = false;
                }

                if (WebUtils.GetIntRequestParam("OrderItemId", 0) == orderItem.OrderItemId)
                {
                    Panel ApprovalDetailsPanel = (Panel)e.Item.FindControl("ApprovalDetailsPanel");
                    ApprovalDetailsPanel.Visible = true;

                    LinkButton ToggleApprovalDetailsLinkButton = (LinkButton)e.Item.FindControl("ToggleApprovalDetailsLinkButton");
                    ToggleApprovalDetailsLinkButton.Text = "hide approval details [-]";
                }

                break;
            }
        }