Esempio n. 1
0
 public Paper(int code, string title, int getFieldsCount, int getOptionsCount, PaperDirection getPaperDirection)
 {
     Code              = code;
     Title             = title;
     GetFieldsCount    = getFieldsCount;
     GetOptionsCount   = getOptionsCount;
     GetPaperDirection = getPaperDirection;
 }
        private async void finishPaperBtn_Click(object sender, EventArgs e)
        {
            int paperCode = (int)paperCodeField.IntegerValue;

            if (paperCodeField.Text == "")
            {
                Messages.ShowError("Paper code cannot be empty");
                return;
            }
            else if (!isEditingPaper && GeneralManager.GetExamPapers != null && GeneralManager.GetExamPapers.GetPapers.Exists(x => x.Code == paperCode))
            {
                Messages.ShowError("Paper code already exists");
                return;
            }
            string paperTitle = paperTitleField.Text;

            if (paperTitleField.Text == "")
            {
                Messages.ShowError("Paper title cannot be empty");
                return;
            }
            else if (!isEditingPaper && GeneralManager.GetExamPapers != null && GeneralManager.GetExamPapers.GetPapers.Exists(x => x.Title == paperTitle))
            {
                Messages.ShowError("Paper with that title already exists");
                return;
            }
            PaperDirection paperDirection = (PaperDirection)paperDirectionField.SelectedValue;
            int            totalFields    = (int)paperFieldsCountField.IntegerValue;
            int            totalOptions   = (int)paperOptionsCountField.IntegerValue;

            if (paperFieldsCountField.Text == "")
            {
                Messages.ShowError("Paper fields cannot be empty");
                return;
            }
            if (paperOptionsCountField.Text == "")
            {
                Messages.ShowError("Paper options cannot be empty");
                return;
            }
            else if (totalOptions < 2)
            {
                Messages.ShowError("There must atleast be more than one option per field.");
                return;
            }

            Paper newPaper = new Paper(paperCode, paperTitle, totalFields, totalOptions, paperDirection);

            if (!isEditingPaper)
            {
                GeneralManager.GetExamPapers.GetPapers.Add(newPaper);

                PaperDataListItem paperDataListItem = PaperDataListItem.Create(newPaper);
                containerFlowPanel.Controls.Add(paperDataListItem);
                emptyListLabel.Visible = false;
            }
            else
            {
                var oldCode = paperToEdit.Code;
                paperToEdit.Reset(newPaper);
                isEditingPaper = false;

                for (int i = 0; i < containerFlowPanel.Controls.Count; i++)
                {
                    PaperDataListItem paperDataListItem = (PaperDataListItem)containerFlowPanel.Controls[i];
                    if (paperDataListItem.PaperCode == oldCode)
                    {
                        paperDataListItem.PaperCode  = paperCode;
                        paperDataListItem.PaperTitle = paperTitle;
                    }
                }
            }

            papersListTable.Visible         = true;
            paperConfigurationPanel.Visible = false;
            papersListTable.Dock            = DockStyle.Fill;
            await LSTM.SavePapers(GeneralManager.GetExamPapers);
        }