public void LoadRaceTime()
        {
            var controller = new RacingController();
            var raceID     = ScheduleGridView.SelectedValue;
            var results    = controller.Results_List(Convert.ToInt32(raceID));

            var penalties = controller.Penalties_List();

            UpdateResults.Visible = true;


            ResultsGridView.DataSource = results;
            ResultsGridView.DataBind();
            foreach (GridViewRow row in ResultsGridView.Rows)
            {
                DropDownList penaltiesDropDown = (DropDownList)row.FindControl("PenaltyDropDownList");
                HiddenField  penaltyID         = (HiddenField)row.FindControl("PenaltyID");
                Label        placeLabel        = (Label)row.FindControl("PlaceLabel");

                if (placeLabel.Text != "")
                {
                    string newLabel = ConvertIntsToStrings(int.Parse(placeLabel.Text));
                    placeLabel.Text = newLabel;
                }

                penaltiesDropDown.DataSource = penalties;

                if (penaltyID.Value != "")
                {
                    penaltiesDropDown.SelectedValue = penaltyID.Value;
                }
                penaltiesDropDown.DataBind();
            }
        }
        protected void CarClassesDropDown_SelectedIndexChanged(object sender, EventArgs e)
        {
            HiddenField raceId = null;

            foreach (GridViewRow row in GridView1.Rows)
            {
                raceId = (HiddenField)row.FindControl("RaceID");
            }

            DropDownList CarClassDropDown = sender as DropDownList;
            ListItem     select           = new ListItem("Select a car", "0");

            GridViewRow  gvr     = (GridViewRow)(((Control)sender).NamingContainer);
            DropDownList carList = (DropDownList)gvr.FindControl("CarDropDown");

            var controller = new RacingController();
            var cars       = controller.Cars_List(int.Parse(CarClassDropDown.SelectedValue), int.Parse(raceId.Value), 0);

            if (carList != null)
            {
                carList.Items.Clear();
                carList.DataSource = cars;
                carList.Items.Add(select);
                carList.DataBind();
            }
        }
        protected void InsertButton_Command(object sender, CommandEventArgs e)
        {
            var         controller = new RacingController();
            HiddenField raceId     = null;

            foreach (GridViewRow row in GridView1.Rows)
            {
                raceId = (HiddenField)row.FindControl("RaceID");
            }

            DropDownList memberDropDown = (DropDownList)GridView1.FooterRow.FindControl("MemberDropDown");
            DropDownList feeDropDown    = (DropDownList)GridView1.FooterRow.FindControl("FeeDropDown");
            DropDownList classDropDown  = (DropDownList)GridView1.FooterRow.FindControl("FooterClassDropDown");

            HideFooter();

            var classes = controller.CarClasses_List(int.Parse(raceId.Value));
            var members = controller.Members_List(int.Parse(raceId.Value));

            classDropDown.DataSource  = classes;
            memberDropDown.DataSource = members;

            feeDropDown.SelectedIndex = 0;

            memberDropDown.Visible = true;
            classDropDown.Visible  = true;
            feeDropDown.Visible    = true;

            Close_Results();

            classDropDown.DataBind();
            memberDropDown.DataBind();
            GridView1.EditIndex = -1;
        }
        protected void Calendar1_SelectionChanged(object sender, EventArgs e)
        {
            var controller = new RacingController();
            var schedule   = controller.Schedules_List(Calendar1.SelectedDate);

            ScheduleGridView.DataSource = schedule;
            ScheduleGridView.DataBind();

            Close_Results();

            RecordRaceTimes.Visible = false;
            GridView1.Visible       = false;
        }
        protected void UpdateResults_Command(object sender, CommandEventArgs e)
        {
            var    raceID = ScheduleGridView.SelectedValue;
            string error  = string.Empty;
            List <ResultsViewModel> results      = new List <ResultsViewModel>();
            ResultsViewModel        singleResult = null;

            foreach (GridViewRow row in ResultsGridView.Rows)
            {
                DropDownList penalties   = (DropDownList)row.FindControl("PenaltyDropDownList");
                TextBox      runTimeText = (TextBox)row.FindControl("RunTimeTextBox");
                Label        name        = (Label)row.FindControl("NameLabel");
                if (runTimeText.Text.Trim().Length < 1 && int.Parse(penalties.SelectedValue) != 4)
                {
                    error = error + $"Cannot enter null values for race times unless vehicle has been scratched - {name.Text}";
                }

                TimeSpan?runTime = null;
                if (runTimeText.Text == "")
                {
                    runTime = null;
                }
                else
                {
                    runTime = TimeSpan.Parse(runTimeText.Text);
                }

                HiddenField raceDetailID = (HiddenField)row.FindControl("RaceDetailID");
                singleResult = new ResultsViewModel()
                {
                    Name         = name.Text,
                    RaceDetailID = int.Parse(raceDetailID.Value),
                    RaceID       = Convert.ToInt32(raceID),
                    RunTime      = runTime,
                    PenaltyID    = int.Parse(penalties.SelectedValue)
                };
                results.Add(singleResult);
            }
            var controller = new RacingController();

            if (error.Trim().Length > 0)
            {
                MessageUserControl2.ShowInfo("Error", error);
            }
            else
            {
                controller.Edit_Results(results);
                LoadRaceTime();
            }
        }
        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "CustomUpdate")
            {
                string       error        = string.Empty;
                var          controller   = new RacingController();
                int          index        = Convert.ToInt32(e.CommandArgument);
                HiddenField  raceId       = (HiddenField)GridView1.Rows[index].FindControl("RaceID");
                TextBox      comment      = (TextBox)GridView1.Rows[index].FindControl("RaceDetailComment");
                DropDownList car          = (DropDownList)GridView1.Rows[index].FindControl("CarDropDown");
                HiddenField  raceDetailID = (HiddenField)GridView1.Rows[index].FindControl("RaceDetailID");
                CheckBox     refund       = (CheckBox)GridView1.Rows[index].FindControl("RefundCheckBox");
                TextBox      refundReason = (TextBox)GridView1.Rows[index].FindControl("RefundTextBox");

                RosterViewModel roster = new RosterViewModel()
                {
                    CarID             = int.Parse(car.SelectedValue),
                    RaceDetailComment = comment.Text,
                    RefundReason      = refundReason.Text,
                    Refund            = refund.Checked,
                    RaceDetailID      = int.Parse(raceDetailID.Value)
                };

                if (refund.Checked && refundReason.Text.Trim().Length == 0)
                {
                    error = error + " A reason must be provided for all refunds";
                }

                if (error.Trim().Length == 0)
                {
                    try
                    {
                        controller.Edit_Roster(roster);
                    } catch (Exception ex)
                    {
                        MessageUserControl1.ShowInfo(ex.Message, "Failed to update details");
                    }
                    MessageUserControl1.ShowInfo("Success", "RaceDetails Updated");
                    GridView1.EditIndex = -1;
                    GridView1.DataBind();
                }
                else
                {
                    MessageUserControl1.ShowInfo("Error", error);
                }
            }
        }
        protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
        {
            var             controller = new RacingController();
            List <DateTime> dates      = controller.DateList();

            foreach (DateTime date in dates)
            {
                if (e.Day.Date == date.Date)
                {
                    e.Cell.BorderWidth = 2;
                    e.Cell.Font.Size   = 14;
                    e.Cell.Font.Bold   = true;
                    e.Cell.BorderColor = System.Drawing.Color.RoyalBlue;
                    e.Cell.BackColor   = System.Drawing.Color.LightGreen;
                }
            }
        }
        protected void FooterClassDropDown_SelectedIndexChanged(object sender, EventArgs e)
        {
            HiddenField raceId = null;

            foreach (GridViewRow row in GridView1.Rows)
            {
                raceId = (HiddenField)row.FindControl("RaceID");
            }

            DropDownList CarClassDropDown = sender as DropDownList;
            var          controller       = new RacingController();
            var          cars             = controller.Cars_List(int.Parse(CarClassDropDown.SelectedValue), int.Parse(raceId.Value), 0);

            DropDownList carDropDown = (DropDownList)GridView1.FooterRow.FindControl("SerialDropDown");

            carDropDown.DataSource = cars;
            carDropDown.Visible    = true;
            carDropDown.DataBind();
        }
        protected void ScheduleGridView_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Select")
            {
                int index = Convert.ToInt32(e.CommandArgument);

                var controller = new RacingController();
                var schedule   = controller.Schedules_List(Calendar1.SelectedDate);

                var roster = controller.Roster_List(schedule[index].RaceID);
                var raceId = roster[0].RaceID.ToString();

                RosterDataSource.SelectParameters.Clear();
                RosterDataSource.SelectParameters.Add(new Parameter("raceId", TypeCode.Int32, raceId));
                RosterDataSource.DataBind();

                Close_Results();

                RecordRaceTimes.Visible = true;
                GridView1.EditIndex     = -1;
                GridView1.Visible       = true;
            }
        }
示例#10
0
 private void Awake()
 {
     Instance = this;
 }
        protected void SaveButton_Command(object sender, CommandEventArgs e)
        {
            string      error      = string.Empty;
            var         controller = new RacingController();
            HiddenField raceId     = null;

            foreach (GridViewRow row in GridView1.Rows)
            {
                raceId = (HiddenField)row.FindControl("RaceID");
            }
            DropDownList memberDropDown = (DropDownList)GridView1.FooterRow.FindControl("MemberDropDown");
            DropDownList feeDropDown    = (DropDownList)GridView1.FooterRow.FindControl("FeeDropDown");
            DropDownList carDropDown    = (DropDownList)GridView1.FooterRow.FindControl("SerialDropDown");

            decimal raceFee;

            if (feeDropDown.SelectedIndex == 1)
            {
                TextBox feeTextBox = (TextBox)GridView1.FooterRow.FindControl("FeeTextBox");
                raceFee = int.Parse(feeTextBox.Text);
            }
            else if (feeDropDown.SelectedIndex == 0)
            {
                raceFee = 0;
            }
            else
            {
                raceFee = decimal.Parse(feeDropDown.SelectedItem.Text);
            }

            RosterViewModel roster = new RosterViewModel()
            {
                MemberID = int.Parse(memberDropDown.SelectedValue),
                CarID    = int.Parse(carDropDown.SelectedValue),
                RaceID   = int.Parse(raceId.Value),
                RaceFee  = raceFee
            };
            var racerCount           = controller.Racer_Count(roster);
            InvoiceViewModel invoice = null;

            if (memberDropDown.SelectedIndex == 0)
            {
                error = error + " You must select a member when adding a new racer.";
            }

            if (raceFee == 0)
            {
                error = error + " You must enter a race fee in order to add a new racer.";
            }

            if (racerCount.Current > racerCount.Max)
            {
                error = error + " Race is already full.  Cannot register additional racers.";
            }

            if (error.Trim().Length == 0)
            {
                try
                {
                    invoice = controller.Add_Racer(roster, User.Identity.Name);
                } catch (Exception ex)
                {
                    MessageUserControl1.ShowInfo(ex.Message, "Unable to save racer");
                }

                var updateSchedule = controller.Schedules_List(Calendar1.SelectedDate);

                RosterDataSource.SelectParameters.Clear();
                RosterDataSource.SelectParameters.Add(new Parameter("raceId", TypeCode.Int32, raceId.Value));
                RosterDataSource.DataBind();

                ScheduleGridView.DataSource = updateSchedule;
                ScheduleGridView.DataBind();

                MessageUserControl1.ShowInfo("Success", ($"Racer Added to roster.  Invoice #{invoice.InvoiceID} created by {User.Identity.Name}.  Subtotal - {invoice.Subtotal:C2}, GST - {invoice.GST:C2}, Total - {invoice.Total:C2}"));
            }
            else
            {
                MessageUserControl1.ShowInfo("Failure", error);
            }
            CloseFooter();
        }
        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            RosterViewModel raceData   = (RosterViewModel)e.Row.DataItem;
            var             controller = new RacingController();

            if (raceData != null)
            {
                if (raceData.RaceDetailID == 0)
                {
                    LinkButton editButton = (LinkButton)e.Row.FindControl("LinkButton1");
                    CheckBox   refund     = (CheckBox)e.Row.FindControl("CheckBox1");
                    Label      raceFee    = (Label)e.Row.FindControl("RaceFeeLabel");
                    Label      rentalFee  = (Label)e.Row.FindControl("RentalFeeLabel");
                    refund.Visible     = false;
                    raceFee.Visible    = false;
                    rentalFee.Visible  = false;
                    editButton.Visible = false;
                }
            }

            #region RowDataBound Edit
            if (!IsPostBack)
            {
                GridView1.Visible = false;
            }
            if ((e.Row.RowState & DataControlRowState.Edit) > 0)
            {
                var classes = controller.CarClasses_List(raceData.RaceID);

                DropDownList carClassesDropDown = (DropDownList)e.Row.FindControl("CarClassesDropDown");
                carClassesDropDown.DataSource = classes;
                if (raceData.CarID != null)
                {
                    carClassesDropDown.SelectedValue = raceData.CarClassID.ToString();
                }
                else
                {
                    string select = "Select a car class";
                    carClassesDropDown.Items.Insert(0, select);
                }
                try
                {
                    carClassesDropDown.DataBind();
                }
                catch (Exception ex)
                {
                    string output = string.Empty;
                    foreach (var singleClass in classes)
                    {
                        output = output + singleClass.CarClassName;
                    }

                    MessageUserControl1.ShowInfo(ex.Message,
                                                 ($"Currently Registered vehicle - '{raceData.CarClassName}' does not meet the class requirements of this race - '{output}'"));
                }

                if (raceData.CarID != null)
                {
                    List <CarViewModel> cars        = new List <CarViewModel>();
                    DropDownList        carDropDown = (DropDownList)e.Row.FindControl("CarDropDown");
                    cars = controller.Cars_List(int.Parse(carClassesDropDown.SelectedValue), raceData.RaceID, (int)raceData.CarID);
                    carDropDown.DataSource = cars;
                    if (raceData.CarID != null)
                    {
                        carDropDown.SelectedValue = raceData.CarID.ToString();
                    }
                    carDropDown.DataBind();
                }

                TextBox refundReason = (TextBox)e.Row.FindControl("RefundTextBox") as TextBox;
                if (refundReason.Text.Trim().Length > 0)
                {
                    refundReason.Visible = true;
                }
                Close_Results();
            }
            #endregion
        }