示例#1
0
        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);
        }