public static string GetSaveDetailView(long infoPageId, long pageNo, long itemsPerPage, long dataIndex, string templateSuffix) { string message = ""; string htmlSaveDetail = ""; bool firstRecord = true; bool showAdditional = (infoPageId != 0); long revisionNo = 0; string infoPageName = ""; string infoPageDescription = ""; long accessGroupId = 0; bool asyncLoading = false; bool commentable = false; string commentorRoleList = UtilsSecurity.AdminRole; bool isActive = true; DateTime expiryDate = DateTime.Now.AddYears(3); bool isPublic = false; bool isCommon = false; bool isDeleted = false; long sequence = 0; if ((UtilsSecurity.HaveAdminRole() == false) && (UtilsSecurity.HaveAuthorRoleEnabled() == false)) { TemplateInfoPageView templateView = new TemplateInfoPageView { DataIndex = dataIndex.ToString(), PageNo = pageNo.ToString(), ItemsPerPage = itemsPerPage.ToString(), TemplateSuffix = templateSuffix, AsyncLoading = asyncLoading.ToString().ToLower() }; htmlSaveDetail = templateView.GetFilled(templateSuffix, UtilsGeneric.Validate, UtilsGeneric.ThrowException, out message); } else { #region Get Page Details if (infoPageId > 0) { LTD_InfoPage ltdInfoPageExisting = DataInfoList.GetLtdInfoPage(infoPageId); if (ltdInfoPageExisting != null) { infoPageName = ltdInfoPageExisting.InfoPageName; infoPageDescription = ltdInfoPageExisting.InfoPageDescription; expiryDate = ltdInfoPageExisting.ExpiryDate; commentable = ltdInfoPageExisting.Commentable; commentorRoleList = ltdInfoPageExisting.CommentorRoleList; asyncLoading = ltdInfoPageExisting.AsyncLoading; isPublic = ltdInfoPageExisting.IsPublic; isCommon = ltdInfoPageExisting.IsCommon; isActive = ltdInfoPageExisting.IsActive; isDeleted = ltdInfoPageExisting.IsDeleted; sequence = ltdInfoPageExisting.Sequence; if (ltdInfoPageExisting.AccessGroupID.HasValue == true) { accessGroupId = ltdInfoPageExisting.AccessGroupID.Value; } revisionNo = ltdInfoPageExisting.RevisionNo; } } #endregion #region Get Category Option List List <LTD_InfoCategory> ltdInfoCategoryList = DataInfoList.GetAllActiveLtdInfoCategory(); long infoCategoryId = 0; if (infoPageId > 0) { LTD_InfoPage ltdInfoPage = DataInfoList.GetLtdInfoPage(infoPageId); if (ltdInfoPage != null) { infoCategoryId = ltdInfoPage.InfoCategoryID; } } firstRecord = true; List <TemplateInfoPageSaveDetail.InfoCategoryItem> infoCategoryItemList = new List <TemplateInfoPageSaveDetail.InfoCategoryItem>(); if (ltdInfoCategoryList.Count == 0) { infoCategoryItemList.Add(new TemplateInfoPageSaveDetail.InfoCategoryItem { InfoCategoryText = "Add Info Category", InfoCategoryValue = "0", InfoCategorySelected = true, InfoCategoryDisable = false, }); } if (infoCategoryId != 0) { LTD_InfoCategory ltdInfoCategory = DataInfoList.GetLtdInfoCategory(infoCategoryId); if (ltdInfoCategory != null) { infoCategoryItemList.Add(new TemplateInfoPageSaveDetail.InfoCategoryItem { InfoCategoryText = ltdInfoCategory.InfoCategoryName, InfoCategoryValue = ltdInfoCategory.InfoCategoryID.ToString(), InfoCategorySelected = true, InfoCategoryDisable = !ltdInfoCategory.IsActive }); firstRecord = false; } } foreach (LTD_InfoCategory ltdInfoCategory in ltdInfoCategoryList) { if (ltdInfoCategory.IsDefault == true) { infoCategoryItemList.Add(new TemplateInfoPageSaveDetail.InfoCategoryItem { InfoCategoryText = ltdInfoCategory.InfoCategoryName, InfoCategoryValue = ltdInfoCategory.InfoCategoryID.ToString(), InfoCategorySelected = firstRecord, InfoCategoryDisable = !ltdInfoCategory.IsActive }); firstRecord = false; break; } } foreach (LTD_InfoCategory ltdInfoCategory in ltdInfoCategoryList) { if (ltdInfoCategory.IsDefault == false) { if (ltdInfoCategory.InfoCategoryID != infoCategoryId) { if ((infoCategoryId == 0) && (firstRecord == true)) { infoCategoryItemList.Add(new TemplateInfoPageSaveDetail.InfoCategoryItem { InfoCategoryText = ltdInfoCategory.InfoCategoryName, InfoCategoryValue = ltdInfoCategory.InfoCategoryID.ToString(), InfoCategorySelected = true, InfoCategoryDisable = !ltdInfoCategory.IsActive }); } else { infoCategoryItemList.Add(new TemplateInfoPageSaveDetail.InfoCategoryItem { InfoCategoryText = ltdInfoCategory.InfoCategoryName, InfoCategoryValue = ltdInfoCategory.InfoCategoryID.ToString(), InfoCategorySelected = false, InfoCategoryDisable = !ltdInfoCategory.IsActive }); } } } firstRecord = false; } #endregion #region Get Add Info Category List List <TemplateInfoPageSaveDetail.AddInfoCategory> addInfoCategoryList = new List <TemplateInfoPageSaveDetail.AddInfoCategory>(); string htmlInfoCategorySaveDetail = ""; if (UtilsSecurity.HaveAdminRole() == true) { long infoCategoryDataIndex = dataIndex + 10; #region Add Info Category addInfoCategoryList.Add(new TemplateInfoPageSaveDetail.AddInfoCategory { DataIndex = infoCategoryDataIndex.ToString(), PageNo = pageNo.ToString(), ItemsPerPage = itemsPerPage.ToString(), TemplateSuffix = templateSuffix, }); #endregion #region Set Info Category Save Details string refreshCallback = "refreshInfoPageCategoryOptionList(" + infoPageId + ", '" + templateSuffix + "')"; htmlInfoCategorySaveDetail = InfoCategoryView.GetSaveView(infoCategoryId, pageNo, itemsPerPage, infoCategoryDataIndex, templateSuffix, true, refreshCallback); #endregion } #endregion #region Set Action bool showAdmin = false; bool showUserInfo = false; bool enableSave = true; bool enableDelete = true; if (UtilsSecurity.IsAuthenticated() == false) { showUserInfo = true; enableSave = false; enableDelete = false; } showAdmin = (UtilsSecurity.HaveAdminRole() && (infoPageId > 0)); #endregion #region Set Template #region More Details string saveDetailMore = ""; if (showAdditional == true) { #region Get Group Option List List <SCD_Group> scdGroupList = UtilsSecurity.GetAllUserActiveScdGroup(); firstRecord = true; List <TemplateInfoPageSaveDetailMore.AccessGroupItem> groupItemList = new List <TemplateInfoPageSaveDetailMore.AccessGroupItem>(); if (scdGroupList.Count == 0) { groupItemList.Add(new TemplateInfoPageSaveDetailMore.AccessGroupItem { AccessGroupText = "No Group Found", AccessGroupValue = "0", AccessGroupSelected = true }); } else { groupItemList.Add(new TemplateInfoPageSaveDetailMore.AccessGroupItem { AccessGroupText = "Select Access Group", AccessGroupValue = "0", AccessGroupSelected = (accessGroupId == 0) }); firstRecord = false; } foreach (SCD_Group scdGroup in scdGroupList) { if ((scdGroup.GroupID == accessGroupId) || ((accessGroupId == 0) && (firstRecord == true))) { groupItemList.Add(new TemplateInfoPageSaveDetailMore.AccessGroupItem { AccessGroupText = scdGroup.GroupName, AccessGroupValue = scdGroup.GroupID.ToString(CultureInfo.InvariantCulture), AccessGroupSelected = true }); } else { groupItemList.Add(new TemplateInfoPageSaveDetailMore.AccessGroupItem { AccessGroupText = scdGroup.GroupName, AccessGroupValue = scdGroup.GroupID.ToString(CultureInfo.InvariantCulture), AccessGroupSelected = false }); } firstRecord = false; } #endregion #region Get Role List string[] roleList = UtilsSecurity.GetAllRoleList(); if (string.IsNullOrEmpty(commentorRoleList) == true) { commentorRoleList = ""; } firstRecord = true; List <TemplateInfoPageSaveDetailMore.CommentorRoleItem> commentorlRoleItemList = new List <TemplateInfoPageSaveDetailMore.CommentorRoleItem>(); foreach (string role in roleList) { if ((commentorRoleList.Contains(role)) || ((commentorRoleList.Trim().Length == 0) && (firstRecord == true))) { commentorlRoleItemList.Add(new TemplateInfoPageSaveDetailMore.CommentorRoleItem { CommentorRoleText = role, CommentorRoleValue = role, CommentorRoleSelected = true }); } else { commentorlRoleItemList.Add(new TemplateInfoPageSaveDetailMore.CommentorRoleItem { CommentorRoleText = role, CommentorRoleValue = role, CommentorRoleSelected = false }); } firstRecord = false; } #endregion var templateSaveDetailMore = new TemplateInfoPageSaveDetailMore { AccessGroupItemList = groupItemList, AsyncLoading = asyncLoading, Commentable = commentable, CommentorRoleItemList = commentorlRoleItemList, IsActiveHidden = (infoPageId == 0), IsActive = isActive, ExpiryDate = expiryDate.ToString(UtilsGeneric.DefaultDateFormat), IsPublicHidden = !showAdmin, IsPublic = isPublic, IsCommonHidden = !showAdmin, IsCommon = isCommon, IsDeletedHidden = !showAdmin, IsDeleted = isDeleted, SequenceHidden = (infoPageId == 0), Sequence = sequence.ToString(), }; saveDetailMore = templateSaveDetailMore.GetFilled(templateSuffix, UtilsGeneric.Validate, UtilsGeneric.ThrowException, out message); } #endregion #region Action string addActionHtml = ""; string editActionHtml = ""; if (infoPageId == 0) { var templateSaveDetailAdd = new TemplateInfoPageSaveDetailAdd { AddActionDisabled = !enableSave, DataIndex = dataIndex.ToString("N0", CultureInfo.InvariantCulture), PageNo = pageNo.ToString("N0", CultureInfo.InvariantCulture), ItemsPerPage = itemsPerPage.ToString("N0", CultureInfo.InvariantCulture), TemplateSuffix = templateSuffix, AsyncLoading = asyncLoading.ToString().ToLower() }; addActionHtml = templateSaveDetailAdd.GetFilled(templateSuffix, UtilsGeneric.Validate, UtilsGeneric.ThrowException, out message); } else { var templateSaveDetailEdit = new TemplateInfoPageSaveDetailEdit { Id = infoPageId.ToString(), DataIndex = dataIndex.ToString("N0", CultureInfo.InvariantCulture), PageNo = pageNo.ToString("N0", CultureInfo.InvariantCulture), ItemsPerPage = itemsPerPage.ToString("N0", CultureInfo.InvariantCulture), TemplateSuffix = templateSuffix, AsyncLoading = asyncLoading.ToString().ToLower(), SaveActionDisabled = !enableSave, DeleteActionDisabled = !enableDelete, }; editActionHtml = templateSaveDetailEdit.GetFilled(templateSuffix, UtilsGeneric.Validate, UtilsGeneric.ThrowException, out message); } #endregion var templateSaveDetail = new TemplateInfoPageSaveDetail { AddInfoCategoryList = addInfoCategoryList, InfoCategorySaveDetail = htmlInfoCategorySaveDetail, //Id = infoPageId.ToString("N0", CultureInfo.InvariantCulture), RevisionNo = revisionNo.ToString(), InfoPageName = infoPageName, InfoPageDescription = infoPageDescription, InfoCategoryItemList = infoCategoryItemList, //InfoCategorySelectDisable = (infoPageId > 0), //AddMode = (infoPageId == 0) ? true : false, AddAction = addActionHtml, EditAction = editActionHtml, ShowUserInfo = showUserInfo, AdditionalActionVisible = showAdditional, MoreDetails = saveDetailMore, }; htmlSaveDetail = templateSaveDetail.GetFilled(templateSuffix, UtilsGeneric.Validate, UtilsGeneric.ThrowException, out message); #endregion } return(htmlSaveDetail); }