public ActionResult SaveHeatSheetEvent(ViewHeatSheetEvent vsme)
        {
            Swimomatic.Entity.HeatSheetEvent heatSheetEvent = null;
            try
            {
                bool isValid = true;
                heatSheetEvent = GetHeatSheetEventFromVSME(vsme);
                if (!vsme.ValidateHeatSheetEvent(ModelState))
                {
                    isValid = false;
                }
                if (isValid && BizMgr.HeatSheetEventExists(vsme.Distance, heatSheetEvent.SwimEventID, vsme.HeatSheetID))
                {
                    ModelState.AddModelError("Event", "This event already exists.");
                    isValid = false;
                }

                if (!isValid)
                {
                    ViewBag.HeatSheetEvent = GetHeatSheetEvent(vsme.HeatSheetID);
                    return PartialView("_HeatSheetEvent");
                }
                else
                {
                    heatSheetEvent.HeatSheetEventID = BizMgr.SaveHeatSheetEvent(heatSheetEvent);

                    //Clear the cached so new event will be included in response
                    DataCache.Remove("HeatSheetEvents" + heatSheetEvent.HeatSheetID.ToString());
                }
            }
            catch (Exception ex)
            {
                LogController.LogError(ex, LogEntryType.NormalError, "", "", "SystemUserID=" + base.CurrentUser.SystemUserID.ToString(), "HeatSheetID=" + vsme.HeatSheetEventID.ToString());
            }
            return GetEligibleSwimmers(heatSheetEvent.HeatSheetEventID);
        }