partial void InsertGrucoxCustomProgramSession(GrucoxCustomProgramSession instance);
 partial void DeleteGrucoxCustomProgramSession(GrucoxCustomProgramSession instance);
        private static bool StoreData_RemoteDB1(DataClasses.CustomProgram customProgram, int UserID)
        {
            GrucoxCustomProgramSession CustomProgramSession = new GrucoxCustomProgramSession();
            CustomProgramSession.DeviceUID = (new Grucox.DataManager(CalibrationSettings.Default.DataManagerConnectionString)).GetDeviceMacAddress();
            CustomProgramSession.LiveUserID = UserID;
            CustomProgramSession.SessionDate = DateTime.Now.Subtract(TimeSpan.FromMinutes(10));
            CustomProgramSession.SessionDuration = TimeSpan.FromSeconds(customProgram.SessionDuration.Value);
            CustomProgramSession.LeftMaxConcP = Convert.ToDecimal(customProgram.LeftMaxConcP);
            CustomProgramSession.LeftMaxEcceP = Convert.ToDecimal(customProgram.LeftMaxEcceP);
            CustomProgramSession.RightMaxConcP = Convert.ToDecimal(customProgram.RightMaxConcP);
            CustomProgramSession.RightMaxEcceP = Convert.ToDecimal(customProgram.RightMaxEcceP);
            CustomProgramSession.LeftAvgConcP = Convert.ToDecimal(customProgram.LeftAvgConcP);
            CustomProgramSession.LeftAvgEcceP = Convert.ToDecimal(customProgram.LeftAvgEcceP);
            CustomProgramSession.RightAvgConcP = Convert.ToDecimal(customProgram.RightAvgConcP);
            CustomProgramSession.RightAvgEcceP = Convert.ToDecimal(customProgram.RightAvgEcceP);
            CustomProgramSession.LeftStrengthIndex = Convert.ToDecimal(customProgram.LeftStrengthIndex);
            CustomProgramSession.LeftEnduranceIndex = Convert.ToDecimal(customProgram.LeftEnduranceIndex);
            CustomProgramSession.RightStrengthIndex = Convert.ToDecimal(customProgram.RightStrengthIndex);
            CustomProgramSession.RightEnduranceIndex = Convert.ToDecimal(customProgram.RightEnduranceIndex);
            CustomProgramSession.DistConc = Convert.ToDecimal(customProgram.DistConc);
            CustomProgramSession.DistEcce = Convert.ToDecimal(customProgram.DistEcce);
            CustomProgramSession.EnergyBurned = Convert.ToDecimal(customProgram.EnergyBurned);
            CustomProgramSession.SessionDescription = "Custom Program";

            DataClasses.GrucoxDataClassesRemoteDBDataContext dc = new DataClasses.GrucoxDataClassesRemoteDBDataContext();

            try
            {
                var matchedItem = (from sessions in dc.GetTable<DataClasses.GrucoxCustomProgramSession>()           //**************************************
                                   where sessions.ItemID == CustomProgramSession.ItemID                               //******Check if customer already exists
                                   select sessions).SingleOrDefault();                                 //**************************************

                if (matchedItem == null)                                                //If customer does not exist
                {
                    dc.GrucoxCustomProgramSessions.InsertOnSubmit(CustomProgramSession);
                    dc.GrucoxCustomProgramSessions.Context.SubmitChanges();                      //Add the new customer to the Customers Table
                    return true;
                }
                else                                                                    //Customer already exists
                {
                    dc.SubmitChanges();
                    return true;
                }
            }
            catch (Exception)
            {
                //For Diagnostics - Should be removed
                DataComms.CreateThreadInstance("DB Access / Upload Error for Custom Program");
                return false;
            }
        }