Пример #1
0
        /// <summary>
        ///     Count Student's point by question and answer
        /// </summary>
        /// <param name="candidate">Question</param>
        /// <param name="answer">Student's answer</param>
        /// <param name="questionOrder"></param>
        /// <returns>
        ///     True if correct
        ///     False if incorrect.
        /// </returns>
        /// <exception>
        ///     if exception was found, throw it for GetPoint function to handle
        ///     <cref>SQLException</cref>
        /// </exception>
        private Dictionary <string, string> GradeAnswer(Candidate candidate, string answer, int questionOrder)
        {
            // await TaskEx.Delay(100);
            if (string.IsNullOrEmpty(answer.Trim()))
            {
                throw new Exception("Empty.");
            }
            // Process by Question Type
            switch (candidate.QuestionType)
            {
            case Candidate.QuestionTypes.Schema:
                // Schema Question
                return(PaperUtils.SchemaType(candidate, StudentID, answer, questionOrder));

            case Candidate.QuestionTypes.Select:
                //Select Question
                return(PaperUtils.SelectType(candidate, StudentID, answer, questionOrder));

            case Candidate.QuestionTypes.DML:
                // DML: Insert/Delete/Update Question
                return(PaperUtils.TriggerProcedureType(candidate, StudentID, answer, questionOrder));

            case Candidate.QuestionTypes.Procedure:
                // Procedure Question
                return(PaperUtils.TriggerProcedureType(candidate, StudentID, answer, questionOrder));

            case Candidate.QuestionTypes.Trigger:
                // Trigger Question
                return(PaperUtils.TriggerProcedureType(candidate, StudentID, answer, questionOrder));

            default:
                // Not supported yet
                throw new Exception("This question type has not been supported yet.");
            }
        }
Пример #2
0
    public override void Draw()
    {
        if (brightness <= 0.05f)
        {
            return;
        }

        for (int i = 0; i < stars.Length; i++)
        {
            Raylib.DrawTexture(stars[i].GetTexture(), (int)stars[i].literalPosition.X, (int)stars[i].literalPosition.Y, starColors[i]);
        }

        PaperUtils.DrawCenteredObject(symbol);

        Raylib.DrawRectangle((int)header.literalPosition.X, (int)header.literalPosition.Y, (int)header.size.X, (int)header.size.Y, new Color(25, 25, 25, 255));

        // sliders
        Raylib.DrawRectangle((int)volumeSlider.literalPosition.X, (int)volumeSlider.literalPosition.Y, (int)volumeSlider.size.X, (int)volumeSlider.size.Y, Color.GRAY);
        Raylib.DrawRectangle((int)brightnessSlider.literalPosition.X, (int)brightnessSlider.literalPosition.Y, (int)brightnessSlider.size.X, (int)brightnessSlider.size.Y, Color.GRAY);

        // handles
        PaperUtils.DrawCircle(volumeHandle, Color.DARKGRAY);
        PaperUtils.DrawCircle(brightnessHandle, Color.DARKGRAY);

        Raylib.DrawRectangle((int)mainPanel.literalPosition.X, (int)mainPanel.literalPosition.Y, (int)mainPanel.size.X, (int)mainPanel.size.Y, new Color(0, 0, 0, 140));

        timeText.Draw();

        for (int i = 0; i < consoleText.Length; i++)
        {
            consoleText[i].Draw();
        }

        Raylib.DrawRectangle((int)brightnessPanel.literalPosition.X, (int)brightnessPanel.literalPosition.Y, (int)brightnessPanel.size.X, (int)brightnessPanel.size.Y, new Color(0, 0, 0, (int)(255 - (brightness * 255))));
    }
Пример #3
0
    public override void Update()
    {
        timeText.SetText(DateTime.Now.ToString("MM-dd").Replace("-", "/") + "  |  " + Pluto.GetTime().ToUpper());

        if (Raylib.IsKeyPressed(KeyboardKey.KEY_R))
        {
            GenerateStars();
        }

        if (PaperUtils.RectClick(volumeSlider.GetRectangle()))
        {
            volumeHandle.position = new Vector2(Raylib.GetMouseX(), volumeHandle.position.Y);
            float newVolume = GetRelativePercentage(volumeSlider.literalPosition.X, volumeSlider.literalPosition.X + volumeSlider.size.X, Raylib.GetMouseX());
            // Console.WriteLine(newVolume);
            pluto.musicSystem.SetVolume(newVolume);
        }

        if (PaperUtils.RectClick(brightnessSlider.GetRectangle()))
        {
            brightnessHandle.position = new Vector2(Raylib.GetMouseX(), brightnessHandle.position.Y);
            brightness = GetRelativePercentage(brightnessSlider.literalPosition.X, brightnessSlider.literalPosition.X + brightnessSlider.size.X, Raylib.GetMouseX());

            // Console.WriteLine(brightness);
        }
    }
Пример #4
0
    public CenteredRectangle(Vector2 pos, Vector2 size) : base(pos)
    {
        this.size       = size;
        literalPosition = PaperUtils.CenterRectToPoint(pos, size);

        Center();
    }
Пример #5
0
 public override void Update()
 {
     if (PaperUtils.RectClicked(rect.GetRectangle(), MouseButton.MOUSE_LEFT_BUTTON))
     {
         col = (col.Equals(Color.GREEN)) ? Color.RED : Color.GREEN;
         centeredText.SetText(centeredText.text.Equals("PaperSDL") ? "Built on Raylib" : "PaperSDL");
     }
 }
Пример #6
0
 public override void Center()
 {
     literalPosition = PaperUtils.CenterRectToPoint(position, size);
     rectangle       = new Rectangle(literalPosition.X, literalPosition.Y, size.X, size.Y);
 }
Пример #7
0
 public override void Center()
 {
     literalPosition = PaperUtils.CenterTextureToPoint(position, currentFrame);
 }
Пример #8
0
 public override void Center()
 {
     literalPosition = PaperUtils.CenterTextToPoint(position, fontData, text);
 }
Пример #9
0
 public override void Draw()
 {
     PaperUtils.DrawText(fontData, text, literalPosition, color);
 }