private String GetNextPageNumber(IndicatedPageStyle style, String start, int increment) { int pageNumber; String nextPageNumber = start; switch (style) { case IndicatedPageStyle.Integer: pageNumber = int.Parse(start); pageNumber += increment; nextPageNumber = pageNumber.ToString(); break; case IndicatedPageStyle.LowerRomanIV: pageNumber = RomanNumerals.FromRomanNumeral(start); pageNumber += increment; nextPageNumber = RomanNumerals.ToRomanNumeral(pageNumber, true).ToLower(); break; case IndicatedPageStyle.UpperRomanIV: pageNumber = RomanNumerals.FromRomanNumeral(start); pageNumber += increment; nextPageNumber = RomanNumerals.ToRomanNumeral(pageNumber, true); break; case IndicatedPageStyle.LowerRomanIIII: pageNumber = RomanNumerals.FromRomanNumeral(start); pageNumber += increment; nextPageNumber = RomanNumerals.ToRomanNumeral(pageNumber, false).ToLower(); break; case IndicatedPageStyle.UpperRomanIIII: pageNumber = RomanNumerals.FromRomanNumeral(start); pageNumber += increment; nextPageNumber = RomanNumerals.ToRomanNumeral(pageNumber, false); break; } return(nextPageNumber); }
private void AssignOrReplaceIndicatedPages(bool replace) { bool flag = false; List <int> pages = getSelectedPageIds(); if (pages.Count == 0) { flag = true; errorControl.AddErrorText("You must select at least one page to update."); } else { IndicatedPageStyle style = (IndicatedPageStyle)int.Parse(styleDropDownList.SelectedValue); int i = 0; string start = startValueTextBox.Text.Trim(); if (numStyleRadio.Checked) { if (style == IndicatedPageStyle.Integer) { if (int.TryParse(incrementTextBox.Text, out i)) { int s; if (int.TryParse(startValueTextBox.Text, out s) == false) { flag = true; errorControl.AddErrorText("The start value must be an integer."); } } else { flag = true; errorControl.AddErrorText("The increment value must be an integer."); } } else if (style != IndicatedPageStyle.FreeForm) { if (int.TryParse(incrementTextBox.Text, out i)) { try { RomanNumerals.FromRomanNumeral(startValueTextBox.Text.Trim()); } catch { flag = true; errorControl.AddErrorText("The start value must be a Roman numeral."); } } } else { flag = true; errorControl.AddErrorText("The increment value must be an integer."); } } else { start = freeTextBox.Text.Trim(); style = IndicatedPageStyle.FreeForm; } if (!flag) { SecUser secUser = getSecUser(); int[] arrPages = new int[pages.Count]; pages.CopyTo(arrPages); if (replace) { bp.IndicatedPageDeleteAllForPage(arrPages, secUser.UserID); } bp.IndicatedPageSave(arrPages, prefixTextBox.Text.Trim(), style, start, i, impliedCheckBox.Checked, secUser.UserID); int itemId = int.Parse(itemDropDownList.SelectedValue); //fillPageList(itemId); // By manually filling the cells in the datagrid (instead of just // refreshing/refilling the dataset, we are able to preserve the // checked fields and the scroll position of the grid. foreach (GridViewRow gvr in detailGridView.Rows) { CheckBox cb = (CheckBox)gvr.FindControl("pageCheckBox"); if (cb.Checked) { String existingValue = gvr.Cells[6].Text.Trim(); gvr.Cells[6].Text = prefixTextBox.Text.Trim() + " " + (impliedCheckBox.Checked ? "[" + start + "]" : start); if (!replace && (existingValue != String.Empty)) { gvr.Cells[6].Text += ", " + existingValue; } start = this.GetNextPageNumber(style, start, i); } } clearInputs(); } } errorControl.Visible = flag; // Reset the indicated page fields to the initial values prefixTextBox.Text = "Page"; freeTextStyleRadio.Checked = false; numStyleRadio.Checked = true; styleDropDownList.SelectedIndex = 0; startValueTextBox.Text = "1"; incrementTextBox.Text = "1"; impliedCheckBox.Checked = false; freeTextBox.Text = ""; }