chronojump r450 - in trunk: . build/data chronojump_server chronojump_server/bin glade src src/gui src/sqlite



Author: xaviblas
Date: Tue Feb  3 21:36:15 2009
New Revision: 450
URL: http://svn.gnome.org/viewvc/chronojump?rev=450&view=rev

Log:
0.8.1.7
Web service compiles again: see new howto_server_2009.txt
	
At web service now we dont pass objects like Event expecting it will
be serialized (inherited) to jump. Noew we pass Jump directly.

uploadTests done!
uploadTestTypes done!
uploaded sports done!

distancesString at runInterval
-gui more now shows distancesString
-treeview shows correct length of track and calculates speed ok

fixed IsPredefined at jumpType, now works better


Added:
   trunk/chronojump_server/howto_server_2009.txt
Modified:
   trunk/build/data/chronojump.prg
   trunk/build/data/chronojump_mini.prg
   trunk/build/data/version.txt
   trunk/changelog.txt
   trunk/chronojump_server/ChronojumpServer.cs
   trunk/chronojump_server/bin/chronojumpServer.dll
   trunk/chronojump_server/chronojumpServer.asmx
   trunk/chronojump_server/chronojumpServerCSharp.cs
   trunk/glade/chronojump.glade
   trunk/src/chronojump.cs
   trunk/src/event.cs
   trunk/src/eventType.cs
   trunk/src/gui/chronojump.cs
   trunk/src/gui/run.cs
   trunk/src/gui/server.cs
   trunk/src/jump.cs
   trunk/src/jumpType.cs
   trunk/src/person.cs
   trunk/src/run.cs
   trunk/src/runType.cs
   trunk/src/server.cs
   trunk/src/serverEvaluator.cs
   trunk/src/serverPing.cs
   trunk/src/session.cs
   trunk/src/sport.cs
   trunk/src/sqlite/jumpType.cs
   trunk/src/sqlite/runType.cs
   trunk/src/sqlite/server.cs
   trunk/src/sqlite/session.cs
   trunk/src/treeViewRun.cs
   trunk/version.txt

Modified: trunk/build/data/chronojump.prg
==============================================================================
Binary files. No diff available.

Modified: trunk/build/data/chronojump_mini.prg
==============================================================================
Binary files. No diff available.

Modified: trunk/build/data/version.txt
==============================================================================
--- trunk/build/data/version.txt	(original)
+++ trunk/build/data/version.txt	Tue Feb  3 21:36:15 2009
@@ -1 +1 @@
-0.8.1.6
+0.8.1.7

Modified: trunk/changelog.txt
==============================================================================
--- trunk/changelog.txt	(original)
+++ trunk/changelog.txt	Tue Feb  3 21:36:15 2009
@@ -8,24 +8,38 @@
 "questionnaire acabar
 cercar abstract google
 
-
-5.- do something with user created:
--sports DONE!
--testsTypes DONE but not tested... not working yet!
-+...
-
 Add Cabedo's tests
+Add Margaria
 
-add "chronopic3" to ping. maybe need to ask to user
+add "chronopic3" to ping. maybe need to ask user
 
 add a link to the server page
 
 develop web stats and survey on web site
 
-maybe server URL can be selected by client on preferences
-
 all this will be release as 0.8.2 or 0.9
 
+distancesString:
+-eventExecute speed
+-stats (graphs)
+
+
+3 feb 2009
+	0.8.1.7
+	Web service compiles again: see new howto_server_2009.txt
+	
+	At web service now we dont pass objects like Event expecting it will
+	be serialized (inherited) to jump. Noew we pass Jump directly.
+
+	uploadTests done!
+	uploadTestTypes done!
+	uploaded sports done!
+
+	distancesString at runInterval
+	-gui more now shows distancesString
+	-treeview shows correct length of track and calculates speed ok
+
+	fixed IsPredefined at jumpType, now works better
 
 30 jan 2009
 	0.8.1.6

Modified: trunk/chronojump_server/ChronojumpServer.cs
==============================================================================
--- trunk/chronojump_server/ChronojumpServer.cs	(original)
+++ trunk/chronojump_server/ChronojumpServer.cs	Tue Feb  3 21:36:15 2009
@@ -1,19 +1,14 @@
 // ------------------------------------------------------------------------------
 //  <autogenerated>
 //      This code was generated by a tool.
-//      Mono Runtime Version: 1.1.4322.2032
+//      Mono Runtime Version: 2.0.50727.42
 // 
 //      Changes to this file may cause incorrect behavior and will be lost if 
 //      the code is regenerated.
 //  </autogenerated>
 // ------------------------------------------------------------------------------
 
-// 
-// This source code was auto-generated by Mono Web Services Description Language Utility
-//
-
 
-using System.Collections; //ArrayList
 
 /// <remarks/>
 /// <remarks>
@@ -22,12 +17,99 @@
 [System.Web.Services.WebServiceBinding(Name="ChronojumpServerSoap", Namespace="http://localhost:8080/";)]
 [System.Diagnostics.DebuggerStepThroughAttribute()]
 [System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlIncludeAttribute(typeof(Session))]
+[System.Xml.Serialization.XmlIncludeAttribute(typeof(EventType))]
+[System.Xml.Serialization.XmlIncludeAttribute(typeof(Event))]
 public class ChronojumpServer : System.Web.Services.Protocols.SoapHttpClientProtocol {
     
+    private System.Threading.SendOrPostCallback ConnectDatabaseOperationCompleted;
+    
+    private System.Threading.SendOrPostCallback DisConnectDatabaseOperationCompleted;
+    
+    private System.Threading.SendOrPostCallback StatsOperationCompleted;
+    
+    private System.Threading.SendOrPostCallback UploadSessionOperationCompleted;
+    
+    private System.Threading.SendOrPostCallback UpdateSessionOperationCompleted;
+    
+    private System.Threading.SendOrPostCallback UploadSportOperationCompleted;
+    
+    private System.Threading.SendOrPostCallback UploadJumpTypeOperationCompleted;
+    
+    private System.Threading.SendOrPostCallback UploadJumpRjTypeOperationCompleted;
+    
+    private System.Threading.SendOrPostCallback UploadRunTypeOperationCompleted;
+    
+    private System.Threading.SendOrPostCallback UploadRunIntervalTypeOperationCompleted;
+    
+    private System.Threading.SendOrPostCallback UploadPersonOperationCompleted;
+    
+    private System.Threading.SendOrPostCallback UploadPersonSessionIfNeededOperationCompleted;
+    
+    private System.Threading.SendOrPostCallback UploadPingOperationCompleted;
+    
+    private System.Threading.SendOrPostCallback UploadEvaluatorOperationCompleted;
+    
+    private System.Threading.SendOrPostCallback UploadJumpOperationCompleted;
+    
+    private System.Threading.SendOrPostCallback UploadJumpRjOperationCompleted;
+    
+    private System.Threading.SendOrPostCallback UploadRunOperationCompleted;
+    
+    private System.Threading.SendOrPostCallback UploadRunIOperationCompleted;
+    
+    private System.Threading.SendOrPostCallback UploadRTOperationCompleted;
+    
+    private System.Threading.SendOrPostCallback UploadPulseOperationCompleted;
+    
+    private System.Threading.SendOrPostCallback ListDirectoryOperationCompleted;
+    
     public ChronojumpServer() {
         this.Url = "http://localhost:8080/chronojumpServer.asmx";;
     }
     
+    private event ConnectDatabaseCompletedEventHandler ConnectDatabaseCompleted;
+    
+    private event DisConnectDatabaseCompletedEventHandler DisConnectDatabaseCompleted;
+    
+    private event StatsCompletedEventHandler StatsCompleted;
+    
+    private event UploadSessionCompletedEventHandler UploadSessionCompleted;
+    
+    private event UpdateSessionCompletedEventHandler UpdateSessionCompleted;
+    
+    private event UploadSportCompletedEventHandler UploadSportCompleted;
+    
+    private event UploadJumpTypeCompletedEventHandler UploadJumpTypeCompleted;
+    
+    private event UploadJumpRjTypeCompletedEventHandler UploadJumpRjTypeCompleted;
+    
+    private event UploadRunTypeCompletedEventHandler UploadRunTypeCompleted;
+    
+    private event UploadRunIntervalTypeCompletedEventHandler UploadRunIntervalTypeCompleted;
+    
+    private event UploadPersonCompletedEventHandler UploadPersonCompleted;
+    
+    private event UploadPersonSessionIfNeededCompletedEventHandler UploadPersonSessionIfNeededCompleted;
+    
+    private event UploadPingCompletedEventHandler UploadPingCompleted;
+    
+    private event UploadEvaluatorCompletedEventHandler UploadEvaluatorCompleted;
+    
+    private event UploadJumpCompletedEventHandler UploadJumpCompleted;
+    
+    private event UploadJumpRjCompletedEventHandler UploadJumpRjCompleted;
+    
+    private event UploadRunCompletedEventHandler UploadRunCompleted;
+    
+    private event UploadRunICompletedEventHandler UploadRunICompleted;
+    
+    private event UploadRTCompletedEventHandler UploadRTCompleted;
+    
+    private event UploadPulseCompletedEventHandler UploadPulseCompleted;
+    
+    private event ListDirectoryCompletedEventHandler ListDirectoryCompleted;
+    
     /// <remarks>
 ///Conecta BBDD
 ///</remarks>
@@ -46,8 +128,26 @@
         return ((string)(results[0]));
     }
     
+    public void ConnectDatabaseAsync() {
+        this.ConnectDatabaseAsync(null);
+    }
+    
+    public void ConnectDatabaseAsync(object userState) {
+        if ((this.ConnectDatabaseOperationCompleted == null)) {
+            this.ConnectDatabaseOperationCompleted = new System.Threading.SendOrPostCallback(this.OnConnectDatabaseCompleted);
+        }
+        this.InvokeAsync("ConnectDatabase", new object[0], this.ConnectDatabaseOperationCompleted, userState);
+    }
+    
+    private void OnConnectDatabaseCompleted(object arg) {
+        if ((this.ConnectDatabaseCompleted != null)) {
+            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+            this.ConnectDatabaseCompleted(this, new ConnectDatabaseCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+        }
+    }
+    
     /// <remarks>
-///DisConecta BBDD
+///Desconecta BBDD
 ///</remarks>
     [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/DisConnectDatabase";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
     public string DisConnectDatabase() {
@@ -63,552 +163,1596 @@
         object[] results = this.EndInvoke(asyncResult);
         return ((string)(results[0]));
     }
-   
+    
+    public void DisConnectDatabaseAsync() {
+        this.DisConnectDatabaseAsync(null);
+    }
+    
+    public void DisConnectDatabaseAsync(object userState) {
+        if ((this.DisConnectDatabaseOperationCompleted == null)) {
+            this.DisConnectDatabaseOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDisConnectDatabaseCompleted);
+        }
+        this.InvokeAsync("DisConnectDatabase", new object[0], this.DisConnectDatabaseOperationCompleted, userState);
+    }
+    
+    private void OnDisConnectDatabaseCompleted(object arg) {
+        if ((this.DisConnectDatabaseCompleted != null)) {
+            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+            this.DisConnectDatabaseCompleted(this, new DisConnectDatabaseCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+        }
+    }
+    
     /// <remarks>
 ///Stats
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
 ///</remarks>
     [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/Stats";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
-    public ArrayList Stats() {
+    public string Stats() {
         object[] results = this.Invoke("Stats", new object[0]);
-        return ((ArrayList)(results[0]));
+        return ((string)(results[0]));
     }
     
     public System.IAsyncResult BeginStats(System.AsyncCallback callback, object asyncState) {
         return this.BeginInvoke("Stats", new object[0], callback, asyncState);
     }
     
-    public ArrayList EndStats(System.IAsyncResult asyncResult) {
+    public string EndStats(System.IAsyncResult asyncResult) {
         object[] results = this.EndInvoke(asyncResult);
-        return ((ArrayList)(results[0]));
+        return ((string)(results[0]));
     }
-
+    
+    public void StatsAsync() {
+        this.StatsAsync(null);
+    }
+    
+    public void StatsAsync(object userState) {
+        if ((this.StatsOperationCompleted == null)) {
+            this.StatsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnStatsCompleted);
+        }
+        this.InvokeAsync("Stats", new object[0], this.StatsOperationCompleted, userState);
+    }
+    
+    private void OnStatsCompleted(object arg) {
+        if ((this.StatsCompleted != null)) {
+            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+            this.StatsCompleted(this, new StatsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+        }
+    }
+    
     /// <remarks>
-///Upload session
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
+///Upload a session
 ///</remarks>
     [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/UploadSession";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
     public int UploadSession(ServerSession mySession) {
         object[] results = this.Invoke("UploadSession", new object[] {
-            mySession});
+                    mySession});
         return ((int)(results[0]));
     }
     
     public System.IAsyncResult BeginUploadSession(ServerSession mySession, System.AsyncCallback callback, object asyncState) {
         return this.BeginInvoke("UploadSession", new object[] {
-            mySession}, callback, asyncState);
+                    mySession}, callback, asyncState);
     }
     
     public int EndUploadSession(System.IAsyncResult asyncResult) {
         object[] results = this.EndInvoke(asyncResult);
         return ((int)(results[0]));
     }
-
+    
+    public void UploadSessionAsync(ServerSession mySession) {
+        this.UploadSessionAsync(mySession, null);
+    }
+    
+    public void UploadSessionAsync(ServerSession mySession, object userState) {
+        if ((this.UploadSessionOperationCompleted == null)) {
+            this.UploadSessionOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUploadSessionCompleted);
+        }
+        this.InvokeAsync("UploadSession", new object[] {
+                    mySession}, this.UploadSessionOperationCompleted, userState);
+    }
+    
+    private void OnUploadSessionCompleted(object arg) {
+        if ((this.UploadSessionCompleted != null)) {
+            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+            this.UploadSessionCompleted(this, new UploadSessionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+        }
+    }
+    
     /// <remarks>
-///Update session
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
+///Update session uploadingState
 ///</remarks>
     [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/UpdateSession";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
-    public int UpdateSession(int sessionID, Constants.ServerSessionStates state) {
+    public int UpdateSession(int sessionID, int state) {
         object[] results = this.Invoke("UpdateSession", new object[] {
-            sessionID, state});
+                    sessionID,
+                    state});
         return ((int)(results[0]));
     }
     
-    public System.IAsyncResult BeginUpdateSession(int sessionID, Constants.ServerSessionStates state, System.AsyncCallback callback, object asyncState) {
+    public System.IAsyncResult BeginUpdateSession(int sessionID, int state, System.AsyncCallback callback, object asyncState) {
         return this.BeginInvoke("UpdateSession", new object[] {
-            sessionID, state}, callback, asyncState);
+                    sessionID,
+                    state}, callback, asyncState);
     }
     
     public int EndUpdateSession(System.IAsyncResult asyncResult) {
         object[] results = this.EndInvoke(asyncResult);
         return ((int)(results[0]));
     }
-
+    
+    public void UpdateSessionAsync(int sessionID, int state) {
+        this.UpdateSessionAsync(sessionID, state, null);
+    }
+    
+    public void UpdateSessionAsync(int sessionID, int state, object userState) {
+        if ((this.UpdateSessionOperationCompleted == null)) {
+            this.UpdateSessionOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateSessionCompleted);
+        }
+        this.InvokeAsync("UpdateSession", new object[] {
+                    sessionID,
+                    state}, this.UpdateSessionOperationCompleted, userState);
+    }
+    
+    private void OnUpdateSessionCompleted(object arg) {
+        if ((this.UpdateSessionCompleted != null)) {
+            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+            this.UpdateSessionCompleted(this, new UpdateSessionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+        }
+    }
+    
     /// <remarks>
 ///Upload an sport (user defined)
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
 ///</remarks>
     [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/UploadSport";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
     public int UploadSport(Sport mySport) {
         object[] results = this.Invoke("UploadSport", new object[] {
-            mySport});
+                    mySport});
         return ((int)(results[0]));
     }
     
     public System.IAsyncResult BeginUploadSport(Sport mySport, System.AsyncCallback callback, object asyncState) {
         return this.BeginInvoke("UploadSport", new object[] {
-            mySport}, callback, asyncState);
+                    mySport}, callback, asyncState);
     }
     
     public int EndUploadSport(System.IAsyncResult asyncResult) {
         object[] results = this.EndInvoke(asyncResult);
         return ((int)(results[0]));
     }
-
+    
+    public void UploadSportAsync(Sport mySport) {
+        this.UploadSportAsync(mySport, null);
+    }
+    
+    public void UploadSportAsync(Sport mySport, object userState) {
+        if ((this.UploadSportOperationCompleted == null)) {
+            this.UploadSportOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUploadSportCompleted);
+        }
+        this.InvokeAsync("UploadSport", new object[] {
+                    mySport}, this.UploadSportOperationCompleted, userState);
+    }
+    
+    private void OnUploadSportCompleted(object arg) {
+        if ((this.UploadSportCompleted != null)) {
+            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+            this.UploadSportCompleted(this, new UploadSportCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+        }
+    }
+    
     /// <remarks>
-///Upload a test type (user defined)
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
+///Upload a jump type (user defined)
 ///</remarks>
-    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/UploadTestType";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
-    public string UploadTestType(Constants.TestTypes testType, EventType type, int evalSID) {
-        object[] results = this.Invoke("UploadTestType", new object[] {
-            testType, type, evalSID});
+    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/UploadJumpType";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
+    public string UploadJumpType(JumpType type, int evalSID) {
+        object[] results = this.Invoke("UploadJumpType", new object[] {
+                    type,
+                    evalSID});
         return ((string)(results[0]));
     }
     
-    public System.IAsyncResult BeginUploadTestType(Constants.TestTypes testType, EventType type, int evalSID, System.AsyncCallback callback, object asyncState) {
-        return this.BeginInvoke("UploadTestType", new object[] {
-            testType, type, evalSID}, callback, asyncState);
+    public System.IAsyncResult BeginUploadJumpType(JumpType type, int evalSID, System.AsyncCallback callback, object asyncState) {
+        return this.BeginInvoke("UploadJumpType", new object[] {
+                    type,
+                    evalSID}, callback, asyncState);
     }
     
-    public string EndUploadTestType(System.IAsyncResult asyncResult) {
+    public string EndUploadJumpType(System.IAsyncResult asyncResult) {
         object[] results = this.EndInvoke(asyncResult);
         return ((string)(results[0]));
     }
-
+    
+    public void UploadJumpTypeAsync(JumpType type, int evalSID) {
+        this.UploadJumpTypeAsync(type, evalSID, null);
+    }
+    
+    public void UploadJumpTypeAsync(JumpType type, int evalSID, object userState) {
+        if ((this.UploadJumpTypeOperationCompleted == null)) {
+            this.UploadJumpTypeOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUploadJumpTypeCompleted);
+        }
+        this.InvokeAsync("UploadJumpType", new object[] {
+                    type,
+                    evalSID}, this.UploadJumpTypeOperationCompleted, userState);
+    }
+    
+    private void OnUploadJumpTypeCompleted(object arg) {
+        if ((this.UploadJumpTypeCompleted != null)) {
+            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+            this.UploadJumpTypeCompleted(this, new UploadJumpTypeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+        }
+    }
+    
+    /// <remarks>
+///Upload a jumpRj type (user defined)
+///</remarks>
+    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/UploadJumpRjType";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
+    public string UploadJumpRjType(JumpType type, int evalSID) {
+        object[] results = this.Invoke("UploadJumpRjType", new object[] {
+                    type,
+                    evalSID});
+        return ((string)(results[0]));
+    }
+    
+    public System.IAsyncResult BeginUploadJumpRjType(JumpType type, int evalSID, System.AsyncCallback callback, object asyncState) {
+        return this.BeginInvoke("UploadJumpRjType", new object[] {
+                    type,
+                    evalSID}, callback, asyncState);
+    }
+    
+    public string EndUploadJumpRjType(System.IAsyncResult asyncResult) {
+        object[] results = this.EndInvoke(asyncResult);
+        return ((string)(results[0]));
+    }
+    
+    public void UploadJumpRjTypeAsync(JumpType type, int evalSID) {
+        this.UploadJumpRjTypeAsync(type, evalSID, null);
+    }
+    
+    public void UploadJumpRjTypeAsync(JumpType type, int evalSID, object userState) {
+        if ((this.UploadJumpRjTypeOperationCompleted == null)) {
+            this.UploadJumpRjTypeOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUploadJumpRjTypeCompleted);
+        }
+        this.InvokeAsync("UploadJumpRjType", new object[] {
+                    type,
+                    evalSID}, this.UploadJumpRjTypeOperationCompleted, userState);
+    }
+    
+    private void OnUploadJumpRjTypeCompleted(object arg) {
+        if ((this.UploadJumpRjTypeCompleted != null)) {
+            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+            this.UploadJumpRjTypeCompleted(this, new UploadJumpRjTypeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+        }
+    }
+    
+    /// <remarks>
+///Upload a run type (user defined)
+///</remarks>
+    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/UploadRunType";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
+    public string UploadRunType(RunType type, int evalSID) {
+        object[] results = this.Invoke("UploadRunType", new object[] {
+                    type,
+                    evalSID});
+        return ((string)(results[0]));
+    }
+    
+    public System.IAsyncResult BeginUploadRunType(RunType type, int evalSID, System.AsyncCallback callback, object asyncState) {
+        return this.BeginInvoke("UploadRunType", new object[] {
+                    type,
+                    evalSID}, callback, asyncState);
+    }
+    
+    public string EndUploadRunType(System.IAsyncResult asyncResult) {
+        object[] results = this.EndInvoke(asyncResult);
+        return ((string)(results[0]));
+    }
+    
+    public void UploadRunTypeAsync(RunType type, int evalSID) {
+        this.UploadRunTypeAsync(type, evalSID, null);
+    }
+    
+    public void UploadRunTypeAsync(RunType type, int evalSID, object userState) {
+        if ((this.UploadRunTypeOperationCompleted == null)) {
+            this.UploadRunTypeOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUploadRunTypeCompleted);
+        }
+        this.InvokeAsync("UploadRunType", new object[] {
+                    type,
+                    evalSID}, this.UploadRunTypeOperationCompleted, userState);
+    }
+    
+    private void OnUploadRunTypeCompleted(object arg) {
+        if ((this.UploadRunTypeCompleted != null)) {
+            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+            this.UploadRunTypeCompleted(this, new UploadRunTypeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+        }
+    }
+    
+    /// <remarks>
+///Upload a run interval type (user defined)
+///</remarks>
+    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/UploadRunIntervalType";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
+    public string UploadRunIntervalType(RunType type, int evalSID) {
+        object[] results = this.Invoke("UploadRunIntervalType", new object[] {
+                    type,
+                    evalSID});
+        return ((string)(results[0]));
+    }
+    
+    public System.IAsyncResult BeginUploadRunIntervalType(RunType type, int evalSID, System.AsyncCallback callback, object asyncState) {
+        return this.BeginInvoke("UploadRunIntervalType", new object[] {
+                    type,
+                    evalSID}, callback, asyncState);
+    }
+    
+    public string EndUploadRunIntervalType(System.IAsyncResult asyncResult) {
+        object[] results = this.EndInvoke(asyncResult);
+        return ((string)(results[0]));
+    }
+    
+    public void UploadRunIntervalTypeAsync(RunType type, int evalSID) {
+        this.UploadRunIntervalTypeAsync(type, evalSID, null);
+    }
+    
+    public void UploadRunIntervalTypeAsync(RunType type, int evalSID, object userState) {
+        if ((this.UploadRunIntervalTypeOperationCompleted == null)) {
+            this.UploadRunIntervalTypeOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUploadRunIntervalTypeCompleted);
+        }
+        this.InvokeAsync("UploadRunIntervalType", new object[] {
+                    type,
+                    evalSID}, this.UploadRunIntervalTypeOperationCompleted, userState);
+    }
+    
+    private void OnUploadRunIntervalTypeCompleted(object arg) {
+        if ((this.UploadRunIntervalTypeCompleted != null)) {
+            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+            this.UploadRunIntervalTypeCompleted(this, new UploadRunIntervalTypeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+        }
+    }
+    
     /// <remarks>
-///Upload person
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
+///Upload a person
 ///</remarks>
     [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/UploadPerson";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
     public int UploadPerson(Person myPerson, int sessionID) {
         object[] results = this.Invoke("UploadPerson", new object[] {
-            myPerson, sessionID});
+                    myPerson,
+                    sessionID});
         return ((int)(results[0]));
     }
     
     public System.IAsyncResult BeginUploadPerson(Person myPerson, int sessionID, System.AsyncCallback callback, object asyncState) {
         return this.BeginInvoke("UploadPerson", new object[] {
-            myPerson, sessionID}, callback, asyncState);
+                    myPerson,
+                    sessionID}, callback, asyncState);
     }
     
     public int EndUploadPerson(System.IAsyncResult asyncResult) {
         object[] results = this.EndInvoke(asyncResult);
         return ((int)(results[0]));
     }
-
+    
+    public void UploadPersonAsync(Person myPerson, int sessionID) {
+        this.UploadPersonAsync(myPerson, sessionID, null);
+    }
+    
+    public void UploadPersonAsync(Person myPerson, int sessionID, object userState) {
+        if ((this.UploadPersonOperationCompleted == null)) {
+            this.UploadPersonOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUploadPersonCompleted);
+        }
+        this.InvokeAsync("UploadPerson", new object[] {
+                    myPerson,
+                    sessionID}, this.UploadPersonOperationCompleted, userState);
+    }
+    
+    private void OnUploadPersonCompleted(object arg) {
+        if ((this.UploadPersonCompleted != null)) {
+            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+            this.UploadPersonCompleted(this, new UploadPersonCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+        }
+    }
+    
     /// <remarks>
 ///Upload person session if needed
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
 ///</remarks>
     [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/UploadPersonSessionIfNeeded";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
     public int UploadPersonSessionIfNeeded(int personServerID, int sessionServerID, int weight) {
         object[] results = this.Invoke("UploadPersonSessionIfNeeded", new object[] {
-            personServerID, sessionServerID, weight});
+                    personServerID,
+                    sessionServerID,
+                    weight});
         return ((int)(results[0]));
     }
     
     public System.IAsyncResult BeginUploadPersonSessionIfNeeded(int personServerID, int sessionServerID, int weight, System.AsyncCallback callback, object asyncState) {
         return this.BeginInvoke("UploadPersonSessionIfNeeded", new object[] {
-            personServerID, sessionServerID, weight}, callback, asyncState);
+                    personServerID,
+                    sessionServerID,
+                    weight}, callback, asyncState);
     }
     
     public int EndUploadPersonSessionIfNeeded(System.IAsyncResult asyncResult) {
         object[] results = this.EndInvoke(asyncResult);
         return ((int)(results[0]));
     }
-
-
+    
+    public void UploadPersonSessionIfNeededAsync(int personServerID, int sessionServerID, int weight) {
+        this.UploadPersonSessionIfNeededAsync(personServerID, sessionServerID, weight, null);
+    }
+    
+    public void UploadPersonSessionIfNeededAsync(int personServerID, int sessionServerID, int weight, object userState) {
+        if ((this.UploadPersonSessionIfNeededOperationCompleted == null)) {
+            this.UploadPersonSessionIfNeededOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUploadPersonSessionIfNeededCompleted);
+        }
+        this.InvokeAsync("UploadPersonSessionIfNeeded", new object[] {
+                    personServerID,
+                    sessionServerID,
+                    weight}, this.UploadPersonSessionIfNeededOperationCompleted, userState);
+    }
+    
+    private void OnUploadPersonSessionIfNeededCompleted(object arg) {
+        if ((this.UploadPersonSessionIfNeededCompleted != null)) {
+            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+            this.UploadPersonSessionIfNeededCompleted(this, new UploadPersonSessionIfNeededCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+        }
+    }
+    
     /// <remarks>
-///Upload ping
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
+///Upload a ping
 ///</remarks>
     [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/UploadPing";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
     public int UploadPing(ServerPing myPing, bool doInsertion) {
         object[] results = this.Invoke("UploadPing", new object[] {
-            myPing, doInsertion});
+                    myPing,
+                    doInsertion});
         return ((int)(results[0]));
     }
     
     public System.IAsyncResult BeginUploadPing(ServerPing myPing, bool doInsertion, System.AsyncCallback callback, object asyncState) {
         return this.BeginInvoke("UploadPing", new object[] {
-            myPing, doInsertion}, callback, asyncState);
+                    myPing,
+                    doInsertion}, callback, asyncState);
     }
     
     public int EndUploadPing(System.IAsyncResult asyncResult) {
         object[] results = this.EndInvoke(asyncResult);
         return ((int)(results[0]));
     }
-
+    
+    public void UploadPingAsync(ServerPing myPing, bool doInsertion) {
+        this.UploadPingAsync(myPing, doInsertion, null);
+    }
+    
+    public void UploadPingAsync(ServerPing myPing, bool doInsertion, object userState) {
+        if ((this.UploadPingOperationCompleted == null)) {
+            this.UploadPingOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUploadPingCompleted);
+        }
+        this.InvokeAsync("UploadPing", new object[] {
+                    myPing,
+                    doInsertion}, this.UploadPingOperationCompleted, userState);
+    }
+    
+    private void OnUploadPingCompleted(object arg) {
+        if ((this.UploadPingCompleted != null)) {
+            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+            this.UploadPingCompleted(this, new UploadPingCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+        }
+    }
+    
     /// <remarks>
-///Upload evaluator
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
+///Upload a evaluator
 ///</remarks>
     [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/UploadEvaluator";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
     public int UploadEvaluator(ServerEvaluator myEval) {
         object[] results = this.Invoke("UploadEvaluator", new object[] {
-            myEval});
+                    myEval});
         return ((int)(results[0]));
     }
     
     public System.IAsyncResult BeginUploadEvaluator(ServerEvaluator myEval, System.AsyncCallback callback, object asyncState) {
         return this.BeginInvoke("UploadEvaluator", new object[] {
-            myEval}, callback, asyncState);
+                    myEval}, callback, asyncState);
     }
     
     public int EndUploadEvaluator(System.IAsyncResult asyncResult) {
         object[] results = this.EndInvoke(asyncResult);
         return ((int)(results[0]));
     }
-
-    /// <remarks>
-///Upload a test
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
-///also don't pass a Event expecting that server can use polymorphism like if it's jump
-///</remarks>
-    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/UploadTest";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
-    public int UploadTest(Event myTest, Constants.TestTypes type, string tableName) {
-        object[] results = this.Invoke("UploadTest", new object[] {
-            myTest, type, tableName});
-        return ((int)(results[0]));
-    }
     
-    public System.IAsyncResult BeginUploadTest(Event myTest, Constants.TestTypes type, string tableName, System.AsyncCallback callback, object asyncState) {
-        return this.BeginInvoke("UploadTest", new object[] {
-            myTest, type, tableName}, callback, asyncState);
+    public void UploadEvaluatorAsync(ServerEvaluator myEval) {
+        this.UploadEvaluatorAsync(myEval, null);
     }
     
-    public int EndUploadTest(System.IAsyncResult asyncResult) {
-        object[] results = this.EndInvoke(asyncResult);
-        return ((int)(results[0]));
+    public void UploadEvaluatorAsync(ServerEvaluator myEval, object userState) {
+        if ((this.UploadEvaluatorOperationCompleted == null)) {
+            this.UploadEvaluatorOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUploadEvaluatorCompleted);
+        }
+        this.InvokeAsync("UploadEvaluator", new object[] {
+                    myEval}, this.UploadEvaluatorOperationCompleted, userState);
+    }
+    
+    private void OnUploadEvaluatorCompleted(object arg) {
+        if ((this.UploadEvaluatorCompleted != null)) {
+            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+            this.UploadEvaluatorCompleted(this, new UploadEvaluatorCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+        }
     }
-
-    /*
+    
     /// <remarks>
 ///Upload a jump
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
-///also don't pass a Event expecting that server can use polymorphism like if it's jump
 ///</remarks>
     [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/UploadJump";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
     public int UploadJump(Jump myTest) {
         object[] results = this.Invoke("UploadJump", new object[] {
-            myTest});
+                    myTest});
         return ((int)(results[0]));
     }
     
     public System.IAsyncResult BeginUploadJump(Jump myTest, System.AsyncCallback callback, object asyncState) {
         return this.BeginInvoke("UploadJump", new object[] {
-            myTest}, callback, asyncState);
+                    myTest}, callback, asyncState);
     }
     
     public int EndUploadJump(System.IAsyncResult asyncResult) {
         object[] results = this.EndInvoke(asyncResult);
         return ((int)(results[0]));
     }
-    */
-
+    
+    public void UploadJumpAsync(Jump myTest) {
+        this.UploadJumpAsync(myTest, null);
+    }
+    
+    public void UploadJumpAsync(Jump myTest, object userState) {
+        if ((this.UploadJumpOperationCompleted == null)) {
+            this.UploadJumpOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUploadJumpCompleted);
+        }
+        this.InvokeAsync("UploadJump", new object[] {
+                    myTest}, this.UploadJumpOperationCompleted, userState);
+    }
+    
+    private void OnUploadJumpCompleted(object arg) {
+        if ((this.UploadJumpCompleted != null)) {
+            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+            this.UploadJumpCompleted(this, new UploadJumpCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+        }
+    }
+    
     /// <remarks>
 ///Upload a jumpRj
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
-///also don't pass a Event expecting that server can use polymorphism like if it's jump
 ///</remarks>
     [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/UploadJumpRj";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
     public int UploadJumpRj(JumpRj myTest) {
         object[] results = this.Invoke("UploadJumpRj", new object[] {
-            myTest});
+                    myTest});
         return ((int)(results[0]));
     }
     
     public System.IAsyncResult BeginUploadJumpRj(JumpRj myTest, System.AsyncCallback callback, object asyncState) {
         return this.BeginInvoke("UploadJumpRj", new object[] {
-            myTest}, callback, asyncState);
+                    myTest}, callback, asyncState);
     }
     
     public int EndUploadJumpRj(System.IAsyncResult asyncResult) {
         object[] results = this.EndInvoke(asyncResult);
         return ((int)(results[0]));
     }
-
+    
+    public void UploadJumpRjAsync(JumpRj myTest) {
+        this.UploadJumpRjAsync(myTest, null);
+    }
+    
+    public void UploadJumpRjAsync(JumpRj myTest, object userState) {
+        if ((this.UploadJumpRjOperationCompleted == null)) {
+            this.UploadJumpRjOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUploadJumpRjCompleted);
+        }
+        this.InvokeAsync("UploadJumpRj", new object[] {
+                    myTest}, this.UploadJumpRjOperationCompleted, userState);
+    }
+    
+    private void OnUploadJumpRjCompleted(object arg) {
+        if ((this.UploadJumpRjCompleted != null)) {
+            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+            this.UploadJumpRjCompleted(this, new UploadJumpRjCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+        }
+    }
+    
     /// <remarks>
 ///Upload a run
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
-///also don't pass a Event expecting that server can use polymorphism like if it's jump
 ///</remarks>
     [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/UploadRun";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
     public int UploadRun(Run myTest) {
         object[] results = this.Invoke("UploadRun", new object[] {
-            myTest});
+                    myTest});
         return ((int)(results[0]));
     }
     
     public System.IAsyncResult BeginUploadRun(Run myTest, System.AsyncCallback callback, object asyncState) {
         return this.BeginInvoke("UploadRun", new object[] {
-            myTest}, callback, asyncState);
+                    myTest}, callback, asyncState);
     }
     
     public int EndUploadRun(System.IAsyncResult asyncResult) {
         object[] results = this.EndInvoke(asyncResult);
         return ((int)(results[0]));
     }
-
+    
+    public void UploadRunAsync(Run myTest) {
+        this.UploadRunAsync(myTest, null);
+    }
+    
+    public void UploadRunAsync(Run myTest, object userState) {
+        if ((this.UploadRunOperationCompleted == null)) {
+            this.UploadRunOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUploadRunCompleted);
+        }
+        this.InvokeAsync("UploadRun", new object[] {
+                    myTest}, this.UploadRunOperationCompleted, userState);
+    }
+    
+    private void OnUploadRunCompleted(object arg) {
+        if ((this.UploadRunCompleted != null)) {
+            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+            this.UploadRunCompleted(this, new UploadRunCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+        }
+    }
+    
     /// <remarks>
 ///Upload a run interval
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
-///also don't pass a Event expecting that server can use polymorphism like if it's jump
 ///</remarks>
     [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/UploadRunI";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
     public int UploadRunI(RunInterval myTest) {
         object[] results = this.Invoke("UploadRunI", new object[] {
-            myTest});
+                    myTest});
         return ((int)(results[0]));
     }
     
     public System.IAsyncResult BeginUploadRunI(RunInterval myTest, System.AsyncCallback callback, object asyncState) {
         return this.BeginInvoke("UploadRunI", new object[] {
-            myTest}, callback, asyncState);
+                    myTest}, callback, asyncState);
     }
     
     public int EndUploadRunI(System.IAsyncResult asyncResult) {
         object[] results = this.EndInvoke(asyncResult);
         return ((int)(results[0]));
     }
-
-    /*
+    
+    public void UploadRunIAsync(RunInterval myTest) {
+        this.UploadRunIAsync(myTest, null);
+    }
+    
+    public void UploadRunIAsync(RunInterval myTest, object userState) {
+        if ((this.UploadRunIOperationCompleted == null)) {
+            this.UploadRunIOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUploadRunICompleted);
+        }
+        this.InvokeAsync("UploadRunI", new object[] {
+                    myTest}, this.UploadRunIOperationCompleted, userState);
+    }
+    
+    private void OnUploadRunICompleted(object arg) {
+        if ((this.UploadRunICompleted != null)) {
+            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+            this.UploadRunICompleted(this, new UploadRunICompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+        }
+    }
+    
     /// <remarks>
 ///Upload a reaction time
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
-///also don't pass a Event expecting that server can use polymorphism like if it's jump
 ///</remarks>
     [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/UploadRT";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
     public int UploadRT(ReactionTime myTest) {
         object[] results = this.Invoke("UploadRT", new object[] {
-            myTest});
+                    myTest});
         return ((int)(results[0]));
     }
     
     public System.IAsyncResult BeginUploadRT(ReactionTime myTest, System.AsyncCallback callback, object asyncState) {
         return this.BeginInvoke("UploadRT", new object[] {
-            myTest}, callback, asyncState);
+                    myTest}, callback, asyncState);
     }
     
     public int EndUploadRT(System.IAsyncResult asyncResult) {
         object[] results = this.EndInvoke(asyncResult);
         return ((int)(results[0]));
     }
-
+    
+    public void UploadRTAsync(ReactionTime myTest) {
+        this.UploadRTAsync(myTest, null);
+    }
+    
+    public void UploadRTAsync(ReactionTime myTest, object userState) {
+        if ((this.UploadRTOperationCompleted == null)) {
+            this.UploadRTOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUploadRTCompleted);
+        }
+        this.InvokeAsync("UploadRT", new object[] {
+                    myTest}, this.UploadRTOperationCompleted, userState);
+    }
+    
+    private void OnUploadRTCompleted(object arg) {
+        if ((this.UploadRTCompleted != null)) {
+            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+            this.UploadRTCompleted(this, new UploadRTCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+        }
+    }
+    
     /// <remarks>
 ///Upload a pulse
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
-///also don't pass a Event expecting that server can use polymorphism like if it's jump
 ///</remarks>
     [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/UploadPulse";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
     public int UploadPulse(Pulse myTest) {
         object[] results = this.Invoke("UploadPulse", new object[] {
-            myTest});
+                    myTest});
         return ((int)(results[0]));
     }
     
     public System.IAsyncResult BeginUploadPulse(Pulse myTest, System.AsyncCallback callback, object asyncState) {
         return this.BeginInvoke("UploadPulse", new object[] {
-            myTest}, callback, asyncState);
+                    myTest}, callback, asyncState);
     }
     
     public int EndUploadPulse(System.IAsyncResult asyncResult) {
         object[] results = this.EndInvoke(asyncResult);
         return ((int)(results[0]));
     }
-    */
-
+    
+    public void UploadPulseAsync(Pulse myTest) {
+        this.UploadPulseAsync(myTest, null);
+    }
+    
+    public void UploadPulseAsync(Pulse myTest, object userState) {
+        if ((this.UploadPulseOperationCompleted == null)) {
+            this.UploadPulseOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUploadPulseCompleted);
+        }
+        this.InvokeAsync("UploadPulse", new object[] {
+                    myTest}, this.UploadPulseOperationCompleted, userState);
+    }
+    
+    private void OnUploadPulseCompleted(object arg) {
+        if ((this.UploadPulseCompleted != null)) {
+            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+            this.UploadPulseCompleted(this, new UploadPulseCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+        }
+    }
+    
     /// <remarks>
 ///List directory files (only as a sample)
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
 ///</remarks>
     [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/ListDirectory";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
     public string[] ListDirectory(string path) {
         object[] results = this.Invoke("ListDirectory", new object[] {
-            path});
+                    path});
         return ((string[])(results[0]));
     }
     
     public System.IAsyncResult BeginListDirectory(string path, System.AsyncCallback callback, object asyncState) {
         return this.BeginInvoke("ListDirectory", new object[] {
-            path}, callback, asyncState);
+                    path}, callback, asyncState);
     }
     
     public string[] EndListDirectory(System.IAsyncResult asyncResult) {
         object[] results = this.EndInvoke(asyncResult);
         return ((string[])(results[0]));
     }
-   
-
-    /// <remarks>
-///hola
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
-///</remarks>
-    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/Hola";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
-    public int Hola(string text, int id) {
-        object[] results = this.Invoke("Hola", new object[] {
-            text, id});
-        return ((int)(results[0]));
-    }
     
-    public System.IAsyncResult BeginHola(string text, int id, System.AsyncCallback callback, object asyncState) {
-        return this.BeginInvoke("Hola", new object[] {
-            text, id}, callback, asyncState);
+    public void ListDirectoryAsync(string path) {
+        this.ListDirectoryAsync(path, null);
     }
     
-    public int EndHola(System.IAsyncResult asyncResult) {
-        object[] results = this.EndInvoke(asyncResult);
-        return ((int)(results[0]));
-    }
-   
-    /*
-    /// <remarks>
-///hola2
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
-///</remarks>
-    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/Hola2";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
-    public int Hola2(string text, Jump jump) {
-        object[] results = this.Invoke("Hola2", new object[] {
-            text, jump});
-        return ((int)(results[0]));
+    public void ListDirectoryAsync(string path, object userState) {
+        if ((this.ListDirectoryOperationCompleted == null)) {
+            this.ListDirectoryOperationCompleted = new System.Threading.SendOrPostCallback(this.OnListDirectoryCompleted);
+        }
+        this.InvokeAsync("ListDirectory", new object[] {
+                    path}, this.ListDirectoryOperationCompleted, userState);
+    }
+    
+    private void OnListDirectoryCompleted(object arg) {
+        if ((this.ListDirectoryCompleted != null)) {
+            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+            this.ListDirectoryCompleted(this, new ListDirectoryCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+        }
     }
+}
+
+/*
+/// <remarks/>
+[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://localhost:8080/";)]
+public partial class ServerSession : Session {
     
-    public System.IAsyncResult BeginHola2(string text, Jump jump, System.AsyncCallback callback, object asyncState) {
-        return this.BeginInvoke("Hola2", new object[] {
-            text, jump}, callback, asyncState);
-    }
+    /// <remarks/>
+    public int EvaluatorID;
     
-    public int EndHola2(System.IAsyncResult asyncResult) {
-        object[] results = this.EndInvoke(asyncResult);
-        return ((int)(results[0]));
-    }
-  */ 
-   
-   /* 
-    /// <remarks>
-///hola3
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
-///</remarks>
-    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/Hola3";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
-    public int Hola3(string text, Event jumpi) {
-        object[] results = this.Invoke("Hola3", new object[] {
-            text, jumpi});
-        return ((int)(results[0]));
-    }
+    /// <remarks/>
+    public string EvaluatorCJVersion;
     
-    public System.IAsyncResult BeginHola3(string text, Event jumpi, System.AsyncCallback callback, object asyncState) {
-        return this.BeginInvoke("Hola3", new object[] {
-            text, jumpi}, callback, asyncState);
-    }
+    /// <remarks/>
+    public string EvaluatorOS;
     
-    public int EndHola3(System.IAsyncResult asyncResult) {
-        object[] results = this.EndInvoke(asyncResult);
-        return ((int)(results[0]));
-    }
-    */
+    /// <remarks/>
+    public string UploadedDate;
+    
+    /// <remarks/>
+    public int UploadingState;
+}
 
-   /*
-    /// <remarks>
-///hola4
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
-///</remarks>
-    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/Hola4";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
-    public int Hola4(string text, Event jump) {
-        object[] results = this.Invoke("Hola4", new object[] {
-            text, jump});
-        return ((int)(results[0]));
-    }
+/// <remarks/>
+[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://localhost:8080/";)]
+[System.Xml.Serialization.XmlIncludeAttribute(typeof(ServerSession))]
+public partial class Session {
     
-    public System.IAsyncResult BeginHola4(string text, Event jump, System.AsyncCallback callback, object asyncState) {
-        return this.BeginInvoke("Hola4", new object[] {
-            text, jump}, callback, asyncState);
-    }
+    /// <remarks/>
+    public string Name;
     
-    public int EndHola4(System.IAsyncResult asyncResult) {
-        object[] results = this.EndInvoke(asyncResult);
-        return ((int)(results[0]));
-    }
-    */
-
-   
-    /// <remarks>
-///hola5
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
-///</remarks>
-    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/Hola5";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
-    public int Hola5(string text, Event myTest, Constants.TestTypes type) {
-        object[] results = this.Invoke("Hola5", new object[] {
-            text, myTest, type});
-        return ((int)(results[0]));
+    /// <remarks/>
+    public string Place;
+    
+    /// <remarks/>
+    public string Date;
+    
+    /// <remarks/>
+    public string Comments;
+    
+    /// <remarks/>
+    public int ServerUniqueID;
+    
+    /// <remarks/>
+    public int UniqueID;
+    
+    /// <remarks/>
+    public int PersonsSportID;
+    
+    /// <remarks/>
+    public int PersonsSpeciallityID;
+    
+    /// <remarks/>
+    public int PersonsPractice;
+}
+
+/// <remarks/>
+[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://localhost:8080/";)]
+public partial class Sport {
+    
+    /// <remarks/>
+    public int UniqueID;
+    
+    /// <remarks/>
+    public string Name;
+    
+    /// <remarks/>
+    public bool UserDefined;
+    
+    /// <remarks/>
+    public string GraphLink;
+    
+    /// <remarks/>
+    public bool HasSpeciallities;
+}
+
+/// <remarks/>
+[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://localhost:8080/";)]
+public partial class JumpType : EventType {
+    
+    /// <remarks/>
+    public bool StartIn;
+    
+    /// <remarks/>
+    public bool HasWeight;
+    
+    /// <remarks/>
+    public bool IsRepetitive;
+    
+    /// <remarks/>
+    public bool JumpsLimited;
+    
+    /// <remarks/>
+    public double FixedValue;
+}
+
+/// <remarks/>
+[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://localhost:8080/";)]
+[System.Xml.Serialization.XmlIncludeAttribute(typeof(JumpType))]
+[System.Xml.Serialization.XmlIncludeAttribute(typeof(RunType))]
+public partial class EventType {
+    
+    /// <remarks/>
+    public string Name;
+    
+    /// <remarks/>
+    public string Description;
+    
+    /// <remarks/>
+    public bool IsPredefined;
+}
+
+/// <remarks/>
+[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://localhost:8080/";)]
+public partial class RunType : EventType {
+    
+    /// <remarks/>
+    public double Distance;
+    
+    /// <remarks/>
+    public bool HasIntervals;
+    
+    /// <remarks/>
+    public bool TracksLimited;
+    
+    /// <remarks/>
+    public int FixedValue;
+    
+    /// <remarks/>
+    public bool Unlimited;
+    
+    /// <remarks/>
+    public string DistancesString;
+}
+
+/// <remarks/>
+[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://localhost:8080/";)]
+public partial class Person {
+    
+    /// <remarks/>
+    public string Name;
+    
+    /// <remarks/>
+    public string Sex;
+    
+    /// <remarks/>
+    public string DateBorn;
+    
+    /// <remarks/>
+    public int Height;
+    
+    /// <remarks/>
+    public int Weight;
+    
+    /// <remarks/>
+    public int SportID;
+    
+    /// <remarks/>
+    public int SpeciallityID;
+    
+    /// <remarks/>
+    public int Practice;
+    
+    /// <remarks/>
+    public string Description;
+    
+    /// <remarks/>
+    public int Race;
+    
+    /// <remarks/>
+    public int CountryID;
+    
+    /// <remarks/>
+    public int ServerUniqueID;
+    
+    /// <remarks/>
+    public int UniqueID;
+}
+
+/// <remarks/>
+[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://localhost:8080/";)]
+public partial class ServerPing {
+    
+    /// <remarks/>
+    public int UniqueID;
+    
+    /// <remarks/>
+    public int EvaluatorID;
+    
+    /// <remarks/>
+    public string CJVersion;
+    
+    /// <remarks/>
+    public string OSVersion;
+    
+    /// <remarks/>
+    public string IP;
+    
+    /// <remarks/>
+    public string Date;
+}
+
+/// <remarks/>
+[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://localhost:8080/";)]
+public partial class ServerEvaluator {
+    
+    /// <remarks/>
+    public int UniqueID;
+    
+    /// <remarks/>
+    public string Name;
+    
+    /// <remarks/>
+    public string Email;
+    
+    /// <remarks/>
+    public string DateBorn;
+    
+    /// <remarks/>
+    public int CountryID;
+    
+    /// <remarks/>
+    public bool Confiable;
+}
+
+/// <remarks/>
+[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://localhost:8080/";)]
+[System.Xml.Serialization.XmlIncludeAttribute(typeof(JumpRj))]
+public partial class Jump : Event {
+    
+    /// <remarks/>
+    public double Tv;
+    
+    /// <remarks/>
+    public double Tc;
+    
+    /// <remarks/>
+    public int Fall;
+    
+    /// <remarks/>
+    public double Weight;
+    
+    /// <remarks/>
+    public double Angle;
+}
+
+/// <remarks/>
+[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://localhost:8080/";)]
+[System.Xml.Serialization.XmlIncludeAttribute(typeof(Jump))]
+[System.Xml.Serialization.XmlIncludeAttribute(typeof(JumpRj))]
+[System.Xml.Serialization.XmlIncludeAttribute(typeof(Run))]
+[System.Xml.Serialization.XmlIncludeAttribute(typeof(RunInterval))]
+[System.Xml.Serialization.XmlIncludeAttribute(typeof(ReactionTime))]
+[System.Xml.Serialization.XmlIncludeAttribute(typeof(Pulse))]
+public partial class Event {
+    
+    /// <remarks/>
+    public string Type;
+    
+    /// <remarks/>
+    public string Description;
+    
+    /// <remarks/>
+    public int UniqueID;
+    
+    /// <remarks/>
+    public int SessionID;
+    
+    /// <remarks/>
+    public int PersonID;
+    
+    /// <remarks/>
+    public int Simulated;
+}
+
+/// <remarks/>
+[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://localhost:8080/";)]
+public partial class JumpRj : Jump {
+    
+    /// <remarks/>
+    public string Limited;
+    
+    /// <remarks/>
+    public string TvString;
+    
+    /// <remarks/>
+    public string TcString;
+    
+    /// <remarks/>
+    public int Jumps;
+}
+
+/// <remarks/>
+[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://localhost:8080/";)]
+[System.Xml.Serialization.XmlIncludeAttribute(typeof(RunInterval))]
+public partial class Run : Event {
+    
+    /// <remarks/>
+    public double Distance;
+    
+    /// <remarks/>
+    public double Time;
+}
+
+/// <remarks/>
+[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://localhost:8080/";)]
+public partial class RunInterval : Run {
+    
+    /// <remarks/>
+    public string IntervalTimesString;
+    
+    /// <remarks/>
+    public double DistanceInterval;
+    
+    /// <remarks/>
+    public double DistanceTotal;
+    
+    /// <remarks/>
+    public double TimeTotal;
+    
+    /// <remarks/>
+    public double Tracks;
+    
+    /// <remarks/>
+    public string Limited;
+}
+
+/// <remarks/>
+[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://localhost:8080/";)]
+public partial class ReactionTime : Event {
+    
+    /// <remarks/>
+    public double Time;
+}
+
+/// <remarks/>
+[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")]
+[System.SerializableAttribute()]
+[System.Diagnostics.DebuggerStepThroughAttribute()]
+[System.ComponentModel.DesignerCategoryAttribute("code")]
+[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://localhost:8080/";)]
+public partial class Pulse : Event {
+    
+    /// <remarks/>
+    public double FixedPulse;
+    
+    /// <remarks/>
+    public string TimesString;
+}
+*/
+
+public class ConnectDatabaseCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+    
+    private object[] results;
+    
+    internal ConnectDatabaseCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+            base(exception, cancelled, userState) {
+        this.results = results;
+    }
+    
+    public string Result {
+        get {
+            this.RaiseExceptionIfNecessary();
+            return ((string)(this.results[0]));
+        }
     }
+}
+
+public delegate void ConnectDatabaseCompletedEventHandler(object sender, ConnectDatabaseCompletedEventArgs args);
+
+public class DisConnectDatabaseCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
     
-    public System.IAsyncResult BeginHola5(string text, Event myTest, Constants.TestTypes type, System.AsyncCallback callback, object asyncState) {
-        return this.BeginInvoke("Hola5", new object[] {
-            text, myTest, type}, callback, asyncState);
+    private object[] results;
+    
+    internal DisConnectDatabaseCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+            base(exception, cancelled, userState) {
+        this.results = results;
     }
     
-    public int EndHola5(System.IAsyncResult asyncResult) {
-        object[] results = this.EndInvoke(asyncResult);
-        return ((int)(results[0]));
+    public string Result {
+        get {
+            this.RaiseExceptionIfNecessary();
+            return ((string)(this.results[0]));
+        }
     }
-   
-    /* 
-    /// <remarks>
-///Select person name
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
-///</remarks>
-    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/SelectPersonName";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
-    public string SelectPersonName(int personID) {
-        object[] results = this.Invoke("SelectPersonName", new object[] {
-            personID});
-        return ((string)(results[0]));
+}
+
+public delegate void DisConnectDatabaseCompletedEventHandler(object sender, DisConnectDatabaseCompletedEventArgs args);
+
+public class StatsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+    
+    private object[] results;
+    
+    internal StatsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+            base(exception, cancelled, userState) {
+        this.results = results;
     }
     
-    public System.IAsyncResult BeginSelectPersonName(int personID, System.AsyncCallback callback, object asyncState) {
-        return this.BeginInvoke("SelectPersonName", new object[] {
-            personID}, callback, asyncState);
+    public string Result {
+        get {
+            this.RaiseExceptionIfNecessary();
+            return ((string)(this.results[0]));
+        }
     }
+}
+
+public delegate void StatsCompletedEventHandler(object sender, StatsCompletedEventArgs args);
+
+public class UploadSessionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
     
-    public string EndSelectPersonName(System.IAsyncResult asyncResult) {
-        object[] results = this.EndInvoke(asyncResult);
-        return ((string)(results[0]));
+    private object[] results;
+    
+    internal UploadSessionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+            base(exception, cancelled, userState) {
+        this.results = results;
     }
     
-    /// <remarks>
-///See all persons
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
-///</remarks>
-    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/SelectAllPersons";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
-    public ArrayList SelectAllPersons() {
-        object[] results = this.Invoke("SelectAllPersons", new object[0]);
-        return ((ArrayList)(results[0]));
+    public int Result {
+        get {
+            this.RaiseExceptionIfNecessary();
+            return ((int)(this.results[0]));
+        }
     }
+}
+
+public delegate void UploadSessionCompletedEventHandler(object sender, UploadSessionCompletedEventArgs args);
+
+public class UpdateSessionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
     
-    public System.IAsyncResult BeginSelectAllPersons(System.AsyncCallback callback, object asyncState) {
-        return this.BeginInvoke("SelectAllPersons", new object[0], callback, asyncState);
+    private object[] results;
+    
+    internal UpdateSessionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+            base(exception, cancelled, userState) {
+        this.results = results;
     }
     
-//public string[] EndSelectAllPersons(System.IAsyncResult asyncResult) {
-    public ArrayList EndSelectAllPersons(System.IAsyncResult asyncResult) {
-        object[] results = this.EndInvoke(asyncResult);
-//return ((string[])(results[0]));
-        return ((ArrayList)(results[0]));
+    public int Result {
+        get {
+            this.RaiseExceptionIfNecessary();
+            return ((int)(this.results[0]));
+        }
     }
-    */
+}
 
-/*    
-    /// <remarks>
-///Select events from all persons
-///important: variable names here have to be the same than in ChronojumpServerCSharp.cs
-///</remarks>
-    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://localhost:8080/SelectAllPersonEvents";, RequestNamespace="http://localhost:8080/";, ResponseNamespace="http://localhost:8080/";, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
-    public object[] SelectAllPersonEvents(int personID) {
-        object[] results = this.Invoke("SelectAllPersonEvents", new object[] {
-            personID});
-        return ((object[])(results[0]));
+public delegate void UpdateSessionCompletedEventHandler(object sender, UpdateSessionCompletedEventArgs args);
+
+public class UploadSportCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+    
+    private object[] results;
+    
+    internal UploadSportCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+            base(exception, cancelled, userState) {
+        this.results = results;
     }
     
-    public System.IAsyncResult BeginSelectAllPersonEvents(int personID, System.AsyncCallback callback, object asyncState) {
-        return this.BeginInvoke("SelectAllPersonEvents", new object[] {
-            personID}, callback, asyncState);
+    public int Result {
+        get {
+            this.RaiseExceptionIfNecessary();
+            return ((int)(this.results[0]));
+        }
     }
+}
+
+public delegate void UploadSportCompletedEventHandler(object sender, UploadSportCompletedEventArgs args);
+
+public class UploadJumpTypeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
     
-    public object[] EndSelectAllPersonEvents(System.IAsyncResult asyncResult) {
-        object[] results = this.EndInvoke(asyncResult);
-        return ((object[])(results[0]));
+    private object[] results;
+    
+    internal UploadJumpTypeCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+            base(exception, cancelled, userState) {
+        this.results = results;
     }
-  */
+    
+    public string Result {
+        get {
+            this.RaiseExceptionIfNecessary();
+            return ((string)(this.results[0]));
+        }
+    }
+}
+
+public delegate void UploadJumpTypeCompletedEventHandler(object sender, UploadJumpTypeCompletedEventArgs args);
+
+public class UploadJumpRjTypeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+    
+    private object[] results;
+    
+    internal UploadJumpRjTypeCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+            base(exception, cancelled, userState) {
+        this.results = results;
+    }
+    
+    public string Result {
+        get {
+            this.RaiseExceptionIfNecessary();
+            return ((string)(this.results[0]));
+        }
+    }
+}
+
+public delegate void UploadJumpRjTypeCompletedEventHandler(object sender, UploadJumpRjTypeCompletedEventArgs args);
+
+public class UploadRunTypeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+    
+    private object[] results;
+    
+    internal UploadRunTypeCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+            base(exception, cancelled, userState) {
+        this.results = results;
+    }
+    
+    public string Result {
+        get {
+            this.RaiseExceptionIfNecessary();
+            return ((string)(this.results[0]));
+        }
+    }
+}
+
+public delegate void UploadRunTypeCompletedEventHandler(object sender, UploadRunTypeCompletedEventArgs args);
 
+public class UploadRunIntervalTypeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+    
+    private object[] results;
+    
+    internal UploadRunIntervalTypeCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+            base(exception, cancelled, userState) {
+        this.results = results;
+    }
+    
+    public string Result {
+        get {
+            this.RaiseExceptionIfNecessary();
+            return ((string)(this.results[0]));
+        }
+    }
 }
+
+public delegate void UploadRunIntervalTypeCompletedEventHandler(object sender, UploadRunIntervalTypeCompletedEventArgs args);
+
+public class UploadPersonCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+    
+    private object[] results;
+    
+    internal UploadPersonCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+            base(exception, cancelled, userState) {
+        this.results = results;
+    }
+    
+    public int Result {
+        get {
+            this.RaiseExceptionIfNecessary();
+            return ((int)(this.results[0]));
+        }
+    }
+}
+
+public delegate void UploadPersonCompletedEventHandler(object sender, UploadPersonCompletedEventArgs args);
+
+public class UploadPersonSessionIfNeededCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+    
+    private object[] results;
+    
+    internal UploadPersonSessionIfNeededCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+            base(exception, cancelled, userState) {
+        this.results = results;
+    }
+    
+    public int Result {
+        get {
+            this.RaiseExceptionIfNecessary();
+            return ((int)(this.results[0]));
+        }
+    }
+}
+
+public delegate void UploadPersonSessionIfNeededCompletedEventHandler(object sender, UploadPersonSessionIfNeededCompletedEventArgs args);
+
+public class UploadPingCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+    
+    private object[] results;
+    
+    internal UploadPingCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+            base(exception, cancelled, userState) {
+        this.results = results;
+    }
+    
+    public int Result {
+        get {
+            this.RaiseExceptionIfNecessary();
+            return ((int)(this.results[0]));
+        }
+    }
+}
+
+public delegate void UploadPingCompletedEventHandler(object sender, UploadPingCompletedEventArgs args);
+
+public class UploadEvaluatorCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+    
+    private object[] results;
+    
+    internal UploadEvaluatorCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+            base(exception, cancelled, userState) {
+        this.results = results;
+    }
+    
+    public int Result {
+        get {
+            this.RaiseExceptionIfNecessary();
+            return ((int)(this.results[0]));
+        }
+    }
+}
+
+public delegate void UploadEvaluatorCompletedEventHandler(object sender, UploadEvaluatorCompletedEventArgs args);
+
+public class UploadJumpCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+    
+    private object[] results;
+    
+    internal UploadJumpCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+            base(exception, cancelled, userState) {
+        this.results = results;
+    }
+    
+    public int Result {
+        get {
+            this.RaiseExceptionIfNecessary();
+            return ((int)(this.results[0]));
+        }
+    }
+}
+
+public delegate void UploadJumpCompletedEventHandler(object sender, UploadJumpCompletedEventArgs args);
+
+public class UploadJumpRjCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+    
+    private object[] results;
+    
+    internal UploadJumpRjCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+            base(exception, cancelled, userState) {
+        this.results = results;
+    }
+    
+    public int Result {
+        get {
+            this.RaiseExceptionIfNecessary();
+            return ((int)(this.results[0]));
+        }
+    }
+}
+
+public delegate void UploadJumpRjCompletedEventHandler(object sender, UploadJumpRjCompletedEventArgs args);
+
+public class UploadRunCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+    
+    private object[] results;
+    
+    internal UploadRunCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+            base(exception, cancelled, userState) {
+        this.results = results;
+    }
+    
+    public int Result {
+        get {
+            this.RaiseExceptionIfNecessary();
+            return ((int)(this.results[0]));
+        }
+    }
+}
+
+public delegate void UploadRunCompletedEventHandler(object sender, UploadRunCompletedEventArgs args);
+
+public class UploadRunICompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+    
+    private object[] results;
+    
+    internal UploadRunICompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+            base(exception, cancelled, userState) {
+        this.results = results;
+    }
+    
+    public int Result {
+        get {
+            this.RaiseExceptionIfNecessary();
+            return ((int)(this.results[0]));
+        }
+    }
+}
+
+public delegate void UploadRunICompletedEventHandler(object sender, UploadRunICompletedEventArgs args);
+
+public class UploadRTCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+    
+    private object[] results;
+    
+    internal UploadRTCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+            base(exception, cancelled, userState) {
+        this.results = results;
+    }
+    
+    public int Result {
+        get {
+            this.RaiseExceptionIfNecessary();
+            return ((int)(this.results[0]));
+        }
+    }
+}
+
+public delegate void UploadRTCompletedEventHandler(object sender, UploadRTCompletedEventArgs args);
+
+public class UploadPulseCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+    
+    private object[] results;
+    
+    internal UploadPulseCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+            base(exception, cancelled, userState) {
+        this.results = results;
+    }
+    
+    public int Result {
+        get {
+            this.RaiseExceptionIfNecessary();
+            return ((int)(this.results[0]));
+        }
+    }
+}
+
+public delegate void UploadPulseCompletedEventHandler(object sender, UploadPulseCompletedEventArgs args);
+
+public class ListDirectoryCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+    
+    private object[] results;
+    
+    internal ListDirectoryCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+            base(exception, cancelled, userState) {
+        this.results = results;
+    }
+    
+    public string[] Result {
+        get {
+            this.RaiseExceptionIfNecessary();
+            return ((string[])(this.results[0]));
+        }
+    }
+}
+
+public delegate void ListDirectoryCompletedEventHandler(object sender, ListDirectoryCompletedEventArgs args);
+

Modified: trunk/chronojump_server/bin/chronojumpServer.dll
==============================================================================
Binary files. No diff available.

Modified: trunk/chronojump_server/chronojumpServer.asmx
==============================================================================
--- trunk/chronojump_server/chronojumpServer.asmx	(original)
+++ trunk/chronojump_server/chronojumpServer.asmx	Tue Feb  3 21:36:15 2009
@@ -1 +1 @@
-<%@ WebService Language="C#" Class="ChronojumpServer" %>
+<%@ WebService Language="C#" Class="ChronojumpServer" %> 

Modified: trunk/chronojump_server/chronojumpServerCSharp.cs
==============================================================================
--- trunk/chronojump_server/chronojumpServerCSharp.cs	(original)
+++ trunk/chronojump_server/chronojumpServerCSharp.cs	Tue Feb  3 21:36:15 2009
@@ -5,11 +5,11 @@
 using System.Web.Services;
 //using System.Web;
 
-using System.Collections; //ArrayList
 
 //[WebService(Namespace="http://80.32.81.197:8080/";, //works to connect with pinux xen from client (from browser don't works)
 [WebService(Namespace="http://localhost:8080/";, //work to connect to corall development from client (from browser works only when online)
 	Description="ChronojumpServer")]
+[Serializable]
 public class ChronojumpServer {
 	
 	[WebMethod(Description="Conecta BBDD")]
@@ -35,9 +35,9 @@
 	}
 
 	[WebMethod(Description="Stats")]
-	public ArrayList Stats()
+	public string Stats()
 	{
-		ArrayList stats = SqliteServer.Stats();
+		string stats = SqliteServer.Stats();
 
 		return stats;	
 	}
@@ -53,7 +53,7 @@
 	}
 	
 	[WebMethod(Description="Update session uploadingState")]
-	public int UpdateSession(int sessionID, Constants.ServerSessionStates state)
+	public int UpdateSession(int sessionID, int  state)
 	{
 		SqliteServerSession.UpdateUploadingState(sessionID, state);
 		
@@ -70,27 +70,18 @@
 		
 		return id; //uniqueID of sport at server
 	}
-	
+
+/*	
 	[WebMethod(Description="Upload a test type (user defined)")]
-	public string UploadTestType(Constants.TestTypes testType, EventType type, int evalSID)
+	//public string UploadTestType(Constants.TestTypes testType, EventType type, int evalSID)
+	public string UploadTestType(int testType, EventType type, int evalSID)
 	{
 		string typeServer = type.Name + "-" + evalSID.ToString();
 
-		/*
-		//upload if doesn't exists (uploaded before by this evaluator)
-		//Console.WriteLine(typeServer + ":" + type.StartIn + ":" + type.HasWeight + ":" + type.Description);
-		if(! Sqlite.Exists(Constants.JumpTypeTable, typeServer)) {
-			//Console.WriteLine("Jump type doesn't exists");
-			SqliteJumpType.JumpTypeInsert(
-					typeServer + ":" + Util.BoolToInt(type.StartIn).ToString() + ":" + 
-					Util.BoolToInt(type.HasWeight).ToString() + ":" + type.Description,
-					false);
-		}
-		*/
 		Console.WriteLine("XXXXXXXXXXXXXXXX");
 		bool inserted = false;
 		switch (testType) {
-			case Constants.TestTypes.JUMP :
+			case (int) Constants.TestTypes.JUMP :
 				JumpType jumpType = (JumpType)type;
 				Console.WriteLine("JUMP" + typeServer + ":" + jumpType.StartIn + ":" + jumpType.HasWeight + ":" + jumpType.Description);
 				if(! Sqlite.Exists(Constants.JumpTypeTable, typeServer)) {
@@ -103,7 +94,7 @@
 					inserted = true;
 				}
 				break;
-			case Constants.TestTypes.JUMP_RJ :
+			case (int) Constants.TestTypes.JUMP_RJ :
 				JumpType jumpTypeRj = (JumpType)type;
 				Console.WriteLine("JUMP_RJ" + typeServer + ":" + jumpTypeRj.Description);
 				if(! Sqlite.Exists(Constants.JumpRjTypeTable, typeServer)) {
@@ -127,6 +118,70 @@
 		else
 			return "-1";
 	}
+	*/
+
+	[WebMethod(Description="Upload a jump type (user defined)")]
+	public string UploadJumpType(JumpType type, int evalSID)
+	{
+		string typeServer = type.Name + "-" + evalSID.ToString();
+				
+		Console.WriteLine("JUMP" + typeServer + ":" + type.StartIn + ":" + type.HasWeight + ":" + type.Description);
+		if(! Sqlite.Exists(Constants.JumpTypeTable, typeServer)) {
+			SqliteJumpType.JumpTypeInsert(
+					typeServer + ":" + Util.BoolToInt(type.StartIn).ToString() + ":" + 
+					Util.BoolToInt(type.HasWeight).ToString() + ":" + type.Description,
+					false);
+			return typeServer;
+		}
+		return "-1";
+	}
+
+	[WebMethod(Description="Upload a jumpRj type (user defined)")]
+	public string UploadJumpRjType(JumpType type, int evalSID)
+	{
+		string typeServer = type.Name + "-" + evalSID.ToString();
+				
+		Console.WriteLine("JUMP_RJ" + typeServer + ":" + type.Description);
+		if(! Sqlite.Exists(Constants.JumpRjTypeTable, typeServer)) {
+			SqliteJumpType.JumpRjTypeInsert(
+					typeServer + ":" + Util.BoolToInt(type.StartIn).ToString() + ":" + 
+					Util.BoolToInt(type.HasWeight).ToString() + ":" + 
+					Util.BoolToInt(type.JumpsLimited).ToString() + ":" + 
+					type.FixedValue.ToString() + ":" + 
+					type.Description,
+					false);
+			return typeServer;
+		}
+		return "-1";
+	}
+
+	[WebMethod(Description="Upload a run type (user defined)")]
+	public string UploadRunType(RunType type, int evalSID)
+	{
+		string typeServer = type.Name + "-" + evalSID.ToString();
+				
+		Console.WriteLine("RUN" + typeServer + ":" + type.Distance + ":" + type.Description);
+		if(! Sqlite.Exists(Constants.RunTypeTable, typeServer)) {
+			type.Name = typeServer;
+			SqliteRunType.Insert(type, Constants.RunTypeTable, false);
+			return typeServer;
+		}
+		return "-1";
+	}
+
+	[WebMethod(Description="Upload a run interval type (user defined)")]
+	public string UploadRunIntervalType(RunType type, int evalSID)
+	{
+		string typeServer = type.Name + "-" + evalSID.ToString();
+				
+		Console.WriteLine("RUN_I" + typeServer + ":" + type.Distance + ":" + type.Description);
+		if(! Sqlite.Exists(Constants.RunIntervalTypeTable, typeServer)) {
+			type.Name = typeServer;
+			SqliteRunIntervalType.Insert(type, Constants.RunIntervalTypeTable, false);
+			return typeServer;
+		}
+		return "-1";
+	}
 
 	
 	[WebMethod(Description="Upload a person")]
@@ -193,30 +248,12 @@
 		
 		return id;
 	}
-	
-	[WebMethod(Description="Upload an array")]
-	public int UploadArray (ArrayList array)
-	{
-		//funciona
-		//foreach(int num in array)
-		//	Console.Write(num.ToString() + "\t");
-		/*
-		//funciona
-		foreach(string str in array)
-			Console.Write(str + "\t");
-			*/
-		//funciona
-		foreach(Event myEvent in array)
-			Console.WriteLine(myEvent.Prova() + "\t");
-		//no funciona
-		//foreach(Jump jump in array)
-		//	Console.WriteLine(jump.Prova() + "\t");
-		
-		return 1;
-	}
 
+
+/*
 	[WebMethod(Description="Upload a test")]
-	public int UploadTest (Event myTest, Constants.TestTypes type, string tableName)
+	//public int UploadTest (Event myTest, Constants.TestTypes type, string tableName)
+	public int UploadTest (Event myTest, int type, string tableName)
 	{
 		//store event uniqueID
 		int temp = myTest.UniqueID;
@@ -227,27 +264,27 @@
 		//insert
 		int id = 0;
 		switch (type) {
-			case Constants.TestTypes.JUMP :
+			case (int) Constants.TestTypes.JUMP :
 				Jump jump = (Jump)myTest;
 				id = jump.InsertAtDB(false, tableName);
 				break;
-			case Constants.TestTypes.JUMP_RJ :
+			case (int) Constants.TestTypes.JUMP_RJ :
 				JumpRj jumpRj = (JumpRj)myTest;
 				id = jumpRj.InsertAtDB(false, tableName);
 				break;
-			case Constants.TestTypes.RUN :
+			case (int) Constants.TestTypes.RUN :
 				Run run = (Run)myTest;
 				id = run.InsertAtDB(false, tableName);
 				break;
-			case Constants.TestTypes.RUN_I :
+			case (int) Constants.TestTypes.RUN_I :
 				RunInterval runI = (RunInterval)myTest;
 				id = runI.InsertAtDB(false, tableName);
 				break;
-			case Constants.TestTypes.RT :
+			case (int) Constants.TestTypes.RT :
 				ReactionTime rt = (ReactionTime)myTest;
 				id = rt.InsertAtDB(false, tableName);
 				break;
-			case Constants.TestTypes.PULSE :
+			case (int) Constants.TestTypes.PULSE :
 				Pulse pulse = (Pulse)myTest;
 				id = pulse.InsertAtDB(false, tableName);
 				break;
@@ -258,8 +295,8 @@
 
 		return id;
 	}
+	*/
 
-	/*
 	[WebMethod(Description="Upload a jump")]
 	public int UploadJump (Jump myTest)
 	{
@@ -277,194 +314,62 @@
 
 		return id; //uniqueID of person at server
 	}
-	*/
 
 	[WebMethod(Description="Upload a jumpRj")]
 	public int UploadJumpRj (JumpRj myTest)
 	{
-		/*
-		//store event uniqueID
 		int temp = myTest.UniqueID;
-
-		//change value for being inserted with new numeration in server
 		myTest.UniqueID = -1;
-
-		//insert
 		int id = myTest.InsertAtDB(false, Constants.JumpRjTable);
-		
-		//roll back person unique id value
 		myTest.UniqueID = temp;
-
 		return id; //uniqueID of person at server
-		*/
-		return 1;
 	}
 
 	[WebMethod(Description="Upload a run")]
 	public int UploadRun (Run myTest)
 	{
-		/*
-		//store event uniqueID
 		int temp = myTest.UniqueID;
-
-		//change value for being inserted with new numeration in server
 		myTest.UniqueID = -1;
-
-		//insert
 		int id = myTest.InsertAtDB(false, Constants.RunTable);
-		
-		//roll back person unique id value
 		myTest.UniqueID = temp;
-		
 		return id; //uniqueID of person at server
-		*/
-
-		return 1;
 	}
 	
-	
 	[WebMethod(Description="Upload a run interval")]
 	public int UploadRunI (RunInterval myTest)
 	{
-		/*
-		//store event uniqueID
 		int temp = myTest.UniqueID;
-
-		//change value for being inserted with new numeration in server
 		myTest.UniqueID = -1;
-
-		//insert
 		int id = myTest.InsertAtDB(false, Constants.RunIntervalTable);
-		
-		//roll back person unique id value
 		myTest.UniqueID = temp;
-
 		return id; //uniqueID of person at server
-		*/
-		return 1;
 	}
 	
-	/*
 	[WebMethod(Description="Upload a reaction time")]
 	public int UploadRT (ReactionTime myTest)
 	{
-		//store event uniqueID
 		int temp = myTest.UniqueID;
-
-		//change value for being inserted with new numeration in server
 		myTest.UniqueID = -1;
-
-		//insert
 		int id = myTest.InsertAtDB(false, Constants.ReactionTimeTable);
-		
-		//roll back person unique id value
 		myTest.UniqueID = temp;
-
 		return id; //uniqueID of person at server
 	}
 	
 	[WebMethod(Description="Upload a pulse")]
 	public int UploadPulse (Pulse myTest)
 	{
-		//store event uniqueID
 		int temp = myTest.UniqueID;
-
-		//change value for being inserted with new numeration in server
 		myTest.UniqueID = -1;
-
-		//insert
 		int id = myTest.InsertAtDB(false, Constants.PulseTable);
-		
-		//roll back person unique id value
 		myTest.UniqueID = temp;
-
 		return id; //uniqueID of person at server
 	}
-	*/	
 
-	[WebMethod(Description="hola")]
-	public int Hola(string text, int id) {
-		Console.WriteLine(text + " hola " + id.ToString());
-		return 1;
-	}
-	
-	/*	
-	[WebMethod(Description="hola2")]
-	public int Hola2(string text, Jump jump) {
-		Console.WriteLine(text + " hola2" + jump.UniqueID.ToString() + " " + jump.Description + "/" + jump.Tv.ToString() );
-		return 1;
-	}
-	*/
-
-/*	
-	[WebMethod(Description="hola3")]
-	public int Hola3(string text, Event jumpi) {
-		Jump jump2 = (Jump)jumpi;
-		Console.WriteLine(text + " hola3" + jump2.UniqueID.ToString() + " " + jump2.Description + "/" + jump2.Tv.ToString() );
-		return 1;
-	}
-	*/
-
-	[WebMethod(Description="hola5")]
-	public int Hola5(string text, Event myTest, Constants.TestTypes type) {
-		switch (type) {
-			case Constants.TestTypes.JUMP :
-				Jump jump = (Jump)myTest;
-				Console.WriteLine(text + " hola5 jump" + jump.UniqueID.ToString() + " " + jump.Description + "/" + jump.Tv.ToString() );
-				break;
-			case Constants.TestTypes.JUMP_RJ :
-				JumpRj jumpRj = (JumpRj)myTest;
-				Console.WriteLine(text + " hola5 jumpRj" + jumpRj.UniqueID.ToString() + " " + jumpRj.Description + "/" + jumpRj.TvString );
-				break;
-			case Constants.TestTypes.RUN :
-				Run run = (Run)myTest;
-				Console.WriteLine(text + " hola5 run" + run.UniqueID.ToString() + " " + run.Description + "/" + run.Time.ToString() );
-				break;
-			case Constants.TestTypes.RUN_I :
-				RunInterval runI = (RunInterval)myTest;
-				Console.WriteLine(text + " hola5 runI" + runI.UniqueID.ToString() + " " + runI.Description + "/" + runI.TimeTotal.ToString() );
-				break;
-				/*
-			case Constants.TestTypes.RT :
-				ReactionTime rt = (ReactionTime)myTest;
-				id = rt.InsertAtDB(false, tableName);
-				break;
-			case Constants.TestTypes.PULSE :
-				Pulse pulse = (Pulse)myTest;
-				id = pulse.InsertAtDB(false, tableName);
-				break;
-				*/
-		}
-
-		return 1;
-	}
-	
-	
 	
 	[WebMethod(Description="List directory files (only as a sample)")]
 	public string [] ListDirectory(string path) {
 		return Directory.GetFileSystemEntries(path);
 	}
 
-	/*
-	[WebMethod(Description="Select person name")]
-	public string SelectPersonName(int personID)
-	{
-		return SqlitePerson.SelectJumperName(personID);	
-	}
-	*/	
-
-	/*
-	[WebMethod(Description="See all persons")]
-	public ArrayList SelectAllPersons()
-	{
-		return SqlitePerson.SelectAllPersons();	
-	}
-
-	[WebMethod(Description="Select events from all persons")]
-	public ArrayList SelectAllPersonEvents(int personID) {
-		return SqlitePerson.SelectAllPersonEvents(personID);	
-	}
-	*/
 	
 }

Added: trunk/chronojump_server/howto_server_2009.txt
==============================================================================
--- (empty file)
+++ trunk/chronojump_server/howto_server_2009.txt	Tue Feb  3 21:36:15 2009
@@ -0,0 +1,27 @@
+
+1.- compile bin/*.dll file
+
+compiling with 'make server' creates the bin/chronojumpServer.dll
+
+2.- start server
+
+xsp2 --root /var/www/mono/ --verbose
+
+3.- navigate to the page
+
+firefox http://localhost:8080/chronojumpServer.asmx
+
+4.- generate wsdl proxy file
+
+from console it doesnt' work, then do:
+a) go to client proxy
+b) generate in C
+c) download
+d) open in gedit
+e) save as ChronojumpServer.cs
+
+5.- need to comment all the partial classes in ChronojumpServer.cs
+
+6.- compile client
+
+make

Modified: trunk/glade/chronojump.glade
==============================================================================
--- trunk/glade/chronojump.glade	(original)
+++ trunk/glade/chronojump.glade	Tue Feb  3 21:36:15 2009
@@ -22979,28 +22979,7 @@
 	  </child>
 
 	  <child>
-	    <widget class="GtkLabel" id="label_thanks">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">&lt;i&gt;Thanks for your time.&lt;/i&gt;</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">True</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
+	    <placeholder/>
 	  </child>
 	</widget>
 	<packing>
@@ -23017,22 +22996,60 @@
 	  <property name="spacing">0</property>
 
 	  <child>
-	    <widget class="GtkLabel" id="label_uploaded_test_types">
+	    <widget class="GtkVBox" id="vbox150">
 	      <property name="visible">True</property>
-	      <property name="label" translatable="yes"></property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">0</property>
+
+	      <child>
+		<widget class="GtkLabel" id="label_uploaded_sports">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes"></property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label_uploaded_test_types">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes"></property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -23042,11 +23059,11 @@
 	  </child>
 
 	  <child>
-	    <widget class="GtkLabel" id="label_uploaded_sports">
+	    <widget class="GtkLabel" id="label_thanks">
 	      <property name="visible">True</property>
-	      <property name="label" translatable="yes"></property>
+	      <property name="label" translatable="yes">&lt;i&gt;Thanks for your time.&lt;/i&gt;</property>
 	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
+	      <property name="use_markup">True</property>
 	      <property name="justify">GTK_JUSTIFY_LEFT</property>
 	      <property name="wrap">False</property>
 	      <property name="selectable">False</property>
@@ -23061,8 +23078,8 @@
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
+	      <property name="expand">True</property>
+	      <property name="fill">True</property>
 	    </packing>
 	  </child>
 	</widget>

Modified: trunk/src/chronojump.cs
==============================================================================
--- trunk/src/chronojump.cs	(original)
+++ trunk/src/chronojump.cs	Tue Feb  3 21:36:15 2009
@@ -29,6 +29,7 @@
 
 using System.Collections; //ArrayList
 
+
 public class ChronoJump 
 {
 	ChronoJumpWindow chronoJumpWin;
@@ -110,32 +111,8 @@
 		/* SERVER COMMUNICATION TESTS */
 		//try {
 
-			ChronojumpServer myServer = new ChronojumpServer();
-
-			Jump jump = new Jump();
-			jump.UniqueID=111;
-			jump.Description="bon dia";
-			jump.Tv=919;
-			jump.HolaServer(myServer);
+//			ChronojumpServer myServer = new ChronojumpServer();
 			
-			JumpRj jumpRj = new JumpRj();
-			jumpRj.UniqueID=222;
-			jumpRj.Description="bon dia jump";
-			jumpRj.TvString="el meu tvString";
-			jumpRj.HolaServer(myServer);
-	
-			Run run = new Run();
-			run.UniqueID=333;
-			run.Description="bon dia";
-			run.Time=919;
-			run.HolaServer(myServer);
-			
-			RunInterval runInterval = new RunInterval();
-			runInterval.UniqueID=444;
-			runInterval.Description="bon dia run";
-			runInterval.TimeTotal=1234;
-			runInterval.HolaServer(myServer);
-	
 	
 //			Application.Quit();
 			/*

Modified: trunk/src/event.cs
==============================================================================
--- trunk/src/event.cs	(original)
+++ trunk/src/event.cs	Tue Feb  3 21:36:15 2009
@@ -22,8 +22,7 @@
 using System.Data;
 using System.Text; //StringBuilder
 
-
-public class Event 
+public partial class Event 
 {
 	protected int personID;
 	protected string personName;
@@ -49,10 +48,10 @@
 		return -1;
 	}	
 	
-	public virtual string Prova () {
-		return "estic a event";
-	}
-
+	/*
+	 * defined on webservice
+	 *
+	 */
 	public string Type
 	{
 		get { return type; }
@@ -83,17 +82,17 @@
 		set { personID = value; }
 	}
 	
+	public int Simulated {
+		get { return simulated; }
+		set { simulated = value; }
+	}
+	
 	public string PersonName
 	{
 		//get { return personName; }
 		get { return SqlitePerson.SelectJumperName(personID); }
 	}
 	
-	public int Simulated {
-		get { return simulated; }
-		set { simulated = value; }
-	}
-	
 	
 	~Event() {}
 	   

Modified: trunk/src/eventType.cs
==============================================================================
--- trunk/src/eventType.cs	(original)
+++ trunk/src/eventType.cs	Tue Feb  3 21:36:15 2009
@@ -20,7 +20,7 @@
 
 using System;
 
-public class EventType 
+public partial class EventType 
 {
 	public enum Types {
 		JUMP, RUN, PULSE, REACTIONTIME
@@ -52,15 +52,36 @@
 		get { return type; }
 	}
 	
+	public virtual bool FindIfIsPredefined() {
+		string [] predefinedTests = {
+		};
+
+		foreach(string search in predefinedTests)
+			if(this.name == search)
+				return true;
+
+		return false;
+	}
+	
+	/*
+	 * defined on webservice
+	 */
 	public string Name
 	{
 		get { return name; }
 		set { name = value; }
 	}
 	
+	public string Description
+	{
+		get { return description; }
+		set { description = value; }
+	}
+
 	public bool IsPredefined
 	{
 		get { return isPredefined; }
+		set { isPredefined = value; }
 	}
 	
 	public string ImageFileName
@@ -68,12 +89,6 @@
 		get { return imageFileName; }
 	}
 	
-	public string Description
-	{
-		get { return description; }
-		set { description = value; }
-	}
-	
 	public string LongDescription
 	{
 		get { return longDescription; }

Modified: trunk/src/gui/chronojump.cs
==============================================================================
--- trunk/src/gui/chronojump.cs	(original)
+++ trunk/src/gui/chronojump.cs	Tue Feb  3 21:36:15 2009
@@ -922,11 +922,13 @@
 		try {
 			ChronojumpServer myServer = new ChronojumpServer();
 			Log.WriteLine(myServer.ConnectDatabase());
-			ArrayList stats = myServer.Stats();
+//			ArrayList stats = (ArrayList) myServer.Stats();
+			string stats = myServer.Stats();
 			Log.WriteLine(myServer.DisConnectDatabase());
 
 			new DialogMessage(Constants.MessageTypes.INFO, "Stats in server:\n" + 
-					Util.ArrayListToSingleString(stats) + "\n" + Util.DateParse(DateTime.Now.ToString()));
+//					Util.ArrayListToSingleString(stats) + "\n" + Util.DateParse(DateTime.Now.ToString()));
+					stats + "\n" + Util.DateParse(DateTime.Now.ToString()));
 		} catch {
 			new DialogMessage(Constants.MessageTypes.WARNING, Constants.ServerOffline);
 		}

Modified: trunk/src/gui/run.cs
==============================================================================
--- trunk/src/gui/run.cs	(original)
+++ trunk/src/gui/run.cs	Tue Feb  3 21:36:15 2009
@@ -904,6 +904,13 @@
 		foreach (string myType in myTypes) {
 			string [] myStringFull = myType.Split(new char[] {':'});
 			
+			string distance = myStringFull[2];
+			if(distance == "0") 
+				distance = Catalog.GetString("Not defined");
+			else if(distance == "-1") 
+				distance = myStringFull[7]; //distancesString
+
+			
 			//limited
 			string myLimiter = "";
 			string myLimiterValue = "";
@@ -929,7 +936,7 @@
 			store.AppendValues (
 					//myStringFull[0], //don't display de uniqueID
 					myStringFull[1],	//name 
-					myStringFull[2],	//distance
+					distance,		
 					myLimiter,		//tracks or seconds or "unlimited"
 					myLimiterValue,		//? or exact value (or '-' in unlimited)
 					description
@@ -951,7 +958,20 @@
 
 		if (((TreeSelection)o).GetSelected(out model, out iter)) {
 			selectedEventName = (string) model.GetValue (iter, 0);
-			selectedDistance = Convert.ToDouble( (string) model.GetValue (iter, 1) );
+
+			//selectedDistance = Convert.ToDouble( (string) model.GetValue (iter, 1) );
+			/*
+			 * manage distances from testtypes that have different distance for each track
+			 * they are expressed as: (eg for MTGUG: "1-7-19")
+			 * if a '-' exists then distances are variable, else, distance is defined
+			 */
+			string distance = (string) model.GetValue (iter, 1);
+			if(distance == Catalog.GetString("Not defined"))
+				selectedDistance = 0;
+			else if(distance.Contains("-"))
+				selectedDistance = -1;
+			else 
+				selectedDistance = Convert.ToDouble(distance);
 
 			if( (string) model.GetValue (iter, 2) == Catalog.GetString("Unlimited") ) {
 				selectedUnlimited = true;

Modified: trunk/src/gui/server.cs
==============================================================================
--- trunk/src/gui/server.cs	(original)
+++ trunk/src/gui/server.cs	Tue Feb  3 21:36:15 2009
@@ -49,6 +49,7 @@
 	public int pulsesE;
 	public int pulsesS;
 	public string testTypes;
+	public string sports;
 
 	public SessionUploadPersonData () {
 	}
@@ -60,7 +61,7 @@
 			int runsIU, int runsIE, int runsIS, 
 			int rtsU, int rtsE, int rtsS, 
 			int pulsesU, int pulsesE, int pulsesS,
-			string testTypes) {
+			string testTypes, string sports) {
 	}
 }
 
@@ -94,7 +95,6 @@
 	Gtk.Window parent;
 	
 	SessionUploadWindow (Gtk.Window parent) {
-	//SessionUploadWindow () {
 		Glade.XML gladeXML;
 		gladeXML = Glade.XML.FromAssembly (Util.GetGladePath() + "chronojump.glade", "session_upload", null);
 		gladeXML.Autoconnect(this);
@@ -181,8 +181,15 @@
 		fillTest (Constants.TestTypes.RT,	p.rtsU, p.rtsE, p.rtsS);
 		fillTest (Constants.TestTypes.PULSE,	p.pulsesU, p.pulsesE, p.pulsesS);
 
-		if(p.testTypes.Length > 0)
-			label_uploaded_test_types.Text = Catalog.GetString("Uploaded") + ": " + p.testTypes;
+		if(p.testTypes.Length > 0) {
+			label_uploaded_test_types.Text = "<b>" + Catalog.GetString("Uploaded test type") + "</b>: " + p.testTypes;
+			label_uploaded_test_types.UseMarkup = true; 
+		}
+		
+		if(p.sports.Length > 0) {
+			label_uploaded_sports.Text = "<b>" + Catalog.GetString("Uploaded sport") + "</b>: " + p.sports;
+			label_uploaded_sports.UseMarkup = true; 
+		}
 	}
 
 	private void fillPerson (Person person, Constants.UploadCodes uCode) {

Modified: trunk/src/jump.cs
==============================================================================
--- trunk/src/jump.cs	(original)
+++ trunk/src/jump.cs	Tue Feb  3 21:36:15 2009
@@ -70,21 +70,6 @@
 		this.simulated = Convert.ToInt32(eventString[10]);
 	}
 
-	public override string Prova () {
-		return "estic a jump";
-	}
-	
-	public string Prova2 () {
-		return "estic a jump2";
-	}
-
-	//funciona	
-	public override void HolaServer (ChronojumpServer myServer) {
-		myServer.Hola("from jump1", uniqueID);
-		//myServer.Hola3("from jump3", (Event)this);
-		myServer.Hola5("from jump 5", (Event)this, Constants.TestTypes.JUMP);
-	}
-
 
 	public override int InsertAtDB (bool dbconOpened, string tableName) {
 		return SqliteJump.Insert(dbconOpened, tableName, 
@@ -199,12 +184,6 @@
 	}
 	
 
-	public override void HolaServer (ChronojumpServer myServer) {
-		myServer.Hola("from jumpRj1", uniqueID);
-		myServer.Hola5("from jumpRj 5", (Event)this, Constants.TestTypes.JUMP_RJ);
-	}
-
-
 
 	public override int InsertAtDB (bool dbconOpened, string tableName) {
 		return SqliteJumpRj.Insert(dbconOpened, tableName, 

Modified: trunk/src/jumpType.cs
==============================================================================
--- trunk/src/jumpType.cs	(original)
+++ trunk/src/jumpType.cs	Tue Feb  3 21:36:15 2009
@@ -29,22 +29,37 @@
 	protected bool isRepetitive;
 	protected bool jumpsLimited;
 	protected double fixedValue;	//0 no fixed value
-	//protected string description;
-	//protected bool isPredefined;
 	protected bool unlimited;
 
 
 	public JumpType() {
 		type = Types.JUMP;
 	}
+
+	
+	public override bool FindIfIsPredefined() {
+		string [] predefinedTests = {
+			"Free", "SJ", "CMJ", "ABK", "Rocket",
+			"SJl", "CMJl", "ABKl", "DJ",
+			"RJ(j)", "RJ(t)", "RJ(unlimited)",
+			"RJ(hexagon)", "triple jump"
+		};
+
+		foreach(string search in predefinedTests)
+			if(this.name == search)
+				return true;
+
+		return false;
+	}
 	
+
 	//predefined values
 	public JumpType(string name) {
 		type = Types.JUMP;
 		this.name = name;
 		
 		//we cannot obtain values like has Weight
-		this.isPredefined = false;
+//		this.isPredefined = false;
 		
 		unlimited = false;	//default value
 		imageFileName = "";
@@ -56,7 +71,7 @@
 			isRepetitive 	= false;
 			jumpsLimited 	= false;
 			fixedValue 	= 0;
-			isPredefined	= true;
+//			isPredefined	= true;
 			if(name == "Free") {
 				imageFileName = "jump_free.png";
 				description	= Catalog.GetString("Free Jump");
@@ -90,7 +105,7 @@
 			isRepetitive 	= false;
 			jumpsLimited 	= false;
 			fixedValue 	= 0;
-			isPredefined	= true;
+//			isPredefined	= true;
 			if(name == "SJl") {
 				description	= Catalog.GetString("Squat Jump with extra weight");
 				imageFileName = "jump_sj_l.png";
@@ -107,7 +122,7 @@
 			isRepetitive 	= false;
 			jumpsLimited 	= false;
 			fixedValue 	= 0;
-			isPredefined	= true;
+//			isPredefined	= true;
 			description	= Catalog.GetString("DJ Jump");
 			imageFileName = "jump_dj.png";
 		} else if(name == "RJ(j)") {
@@ -116,7 +131,7 @@
 			isRepetitive 	= true;
 			jumpsLimited 	= true;
 			fixedValue 	= 0;
-			isPredefined	= true;
+//			isPredefined	= true;
 			imageFileName = "jump_rj.png";
 			description	= Catalog.GetString("Reactive Jump limited by Jumps");
 			longDescription	= "";
@@ -126,7 +141,7 @@
 			isRepetitive 	= true;
 			jumpsLimited 	= false;
 			fixedValue 	= 0;
-			isPredefined	= true;
+//			isPredefined	= true;
 			description	= Catalog.GetString("Reactive Jump limited by Time");
 			imageFileName = "jump_rj.png";
 		} else if(name == "RJ(unlimited)") {
@@ -135,7 +150,7 @@
 			isRepetitive 	= true;
 			jumpsLimited 	= true;	//will finish in a concrete jump, not in a concrete second
 			fixedValue 	= -1;	//don't ask for limit of jumps or seconds
-			isPredefined	= true;
+//			isPredefined	= true;
 			unlimited 	= true;
 			description	= Catalog.GetString("Reactive Jump unlimited (until finish button is clicked)");
 			imageFileName = "jump_rj_in.png";
@@ -145,7 +160,7 @@
 			isRepetitive 	= true;
 			jumpsLimited 	= true;	//will finish in a concrete jump, not in a concrete second
 			fixedValue 	= 18;	//don't ask for limit of jumps or seconds
-			isPredefined	= true;
+//			isPredefined	= true;
 			unlimited 	= false;
 			description	= Catalog.GetString("Reactive Jump on a hexagon until three full revolutions are done");
 			imageFileName = "jump_rj_hexagon.png";
@@ -155,10 +170,12 @@
 			isRepetitive 	= true;
 			jumpsLimited 	= true;
 			fixedValue 	= 3;
-			isPredefined	= true;
+//			isPredefined	= true;
 			description	= Catalog.GetString("Triple jump");
 			imageFileName = "jump_rj.png";
 		}
+
+		isPredefined = FindIfIsPredefined();
 	}
 	
 	
@@ -177,7 +194,8 @@
 		this.imageFileName = imageFileName;
 
 		//we can obtain values like has Weight
-		this.isPredefined	= true;
+//		this.isPredefined	= true;
+		isPredefined = FindIfIsPredefined();
 	}
 
 	public bool StartIn

Modified: trunk/src/person.cs
==============================================================================
--- trunk/src/person.cs	(original)
+++ trunk/src/person.cs	Tue Feb  3 21:36:15 2009
@@ -23,7 +23,7 @@
 using System.Text; //StringBuilder
 using Mono.Unix;
 
-public class Person {
+public partial class Person {
 
 	private int uniqueID;
 	private string name;
@@ -156,6 +156,9 @@
 		return this.ToString().GetHashCode();
 	}
 	
+	/*
+	 * defined on webservice
+	 */
 	public string Name {
 		get { return name; }
 		set { name = value; }
@@ -171,14 +174,6 @@
 		set { dateBorn = value; }
 	}
 	
-	public string DateLong {
-		get { return Util.DateAsDateTime(dateBorn).ToLongDateString(); }
-	}
-	
-	public string DateShort {
-		get { return Util.DateAsDateTime(dateBorn).ToShortDateString(); }
-	}
-	
 	
 	public int Height {
 		get { return height; }
@@ -230,6 +225,15 @@
 		set { uniqueID = value; }
 	}
 	
+	public string DateLong {
+		get { return Util.DateAsDateTime(dateBorn).ToLongDateString(); }
+	}
+	
+	public string DateShort {
+		get { return Util.DateAsDateTime(dateBorn).ToShortDateString(); }
+	}
+	
+	
 	~Person() {}
 	   
 }

Modified: trunk/src/run.cs
==============================================================================
--- trunk/src/run.cs	(original)
+++ trunk/src/run.cs	Tue Feb  3 21:36:15 2009
@@ -75,12 +75,6 @@
 		this.simulated = Convert.ToInt32(eventString[7]);
 	}
 	
-	public override void HolaServer (ChronojumpServer myServer) {
-		myServer.Hola("from run1", uniqueID);
-		//myServer.Hola3("from run3", (Event)this);
-		myServer.Hola5("from run 5", (Event)this, Constants.TestTypes.RUN );
-	}
-
 
 	public override int InsertAtDB (bool dbconOpened, string tableName) {
 		return SqliteRun.Insert(dbconOpened, tableName, 
@@ -172,11 +166,6 @@
 		this.simulated = Convert.ToInt32(eventString[11]);
 	}
 	
-	public override void HolaServer (ChronojumpServer myServer) {
-		myServer.Hola("from runI 1", uniqueID);
-		myServer.Hola5("from runI 5", (Event)this, Constants.TestTypes.RUN_I);
-	}
-
 
 	public override int InsertAtDB (bool dbconOpened, string tableName) {
 		return SqliteRunInterval.Insert(dbconOpened, tableName, 

Modified: trunk/src/runType.cs
==============================================================================
--- trunk/src/runType.cs	(original)
+++ trunk/src/runType.cs	Tue Feb  3 21:36:15 2009
@@ -39,6 +39,24 @@
 		type = Types.RUN;
 	}
 	
+	public override bool FindIfIsPredefined() {
+		string [] predefinedTests = {
+			"Custom", "20m", "100m", "200m", "400m",
+			"1000m", "2000m",
+			"Agility-20Yard", "Agility-505",
+			"Agility-Illinois", "Agility-Shuttle-Run" , "Agility-ZigZag",
+			"byLaps", "byTime", "unlimited", 
+			"20m10times", "7m30seconds", "20m endurance", 
+			"MTGUG" 
+		};
+
+		foreach(string search in predefinedTests)
+			if(this.name == search)
+				return true;
+
+		return false;
+	}
+	
 	//predefined values
 	public RunType(string name) {
 		type = Types.RUN;

Modified: trunk/src/server.cs
==============================================================================
--- trunk/src/server.cs	(original)
+++ trunk/src/server.cs	Tue Feb  3 21:36:15 2009
@@ -138,9 +138,11 @@
 			ChronojumpServer myServer = new ChronojumpServer();
 			Log.WriteLine(myServer.ConnectDatabase());
 		
+			int state = (int) Constants.ServerSessionStates.UPLOADINGSESSION;
 			//create ServerSession based on Session currentSession
 			ServerSession serverSession = new ServerSession(currentSession, evalSID, progName + " " + progVersion, 
-					Util.GetOS(), Util.DateParse(DateTime.Now.ToString()), Constants.ServerSessionStates.UPLOADINGSESSION); 
+					//Util.GetOS(), Util.DateParse(DateTime.Now.ToString()), Constants.ServerSessionStates.UPLOADINGSESSION); 
+					Util.GetOS(), Util.DateParse(DateTime.Now.ToString()), state); 
 
 			//if uploading session for first time
 			if(currentSession.ServerUniqueID == Constants.ServerUndefinedID) 
@@ -153,10 +155,14 @@
 				SqliteSession.UpdateServerUniqueID(currentSession.UniqueID, currentSession.ServerUniqueID);
 			}
 
-			myServer.UpdateSession(currentSession.ServerUniqueID, Constants.ServerSessionStates.UPLOADINGDATA); 
+			state = (int) Constants.ServerSessionStates.UPLOADINGDATA;
+			//myServer.UpdateSession(currentSession.ServerUniqueID, (ServerSessionStates) Constants.ServerSessionStates.UPLOADINGDATA); 
+			myServer.UpdateSession(currentSession.ServerUniqueID, state); 
 
 			sessionUploadPersonData.testTypes = "";
 			string testTypesSeparator = "";
+			sessionUploadPersonData.sports = "";
+			string sportsSeparator = "";
 
 			//upload persons (updating also person.serverUniqueID locally)
 			string [] myPersons = SqlitePersonSession.SelectCurrentSession(serverSession.UniqueID, true, false); //onlyIDAndName, not reversed
@@ -172,8 +178,14 @@
 					//if sport is user defined, upload it
 					//and when upload the person, do it with new sportID
 					Sport sport = SqliteSport.Select(person.SportID);
-					if(sport.UserDefined) 
-						person.SportID = myServer.UploadSport(sport);
+					if(sport.UserDefined) {
+						int newSport = myServer.UploadSport(sport);
+						if(newSport != -1) {
+							person.SportID = newSport;
+							sessionUploadPersonData.sports += sportsSeparator + sport.Name;
+							sportsSeparator = ", ";
+						}
+					}
 
 					person = serverUploadPerson(myServer, person, serverSession.UniqueID);
 				}
@@ -220,15 +232,21 @@
 							//2- when the same evaluator upload some supra's, only a new type is created
 					
 							//test.Type = myServer.UploadJumpType(type, evalSID);
-							string insertedType = myServer.UploadTestType(Constants.TestTypes.JUMP, type, evalSID);
+							//int testType = (int) Constants.TestTypes.JUMP;
+							//string insertedType = myServer.UploadTestType(Constants.TestTypes.JUMP, type, evalSID);
+							//string insertedType = myServer.UploadTestType(testType, type, evalSID);
+							string insertedType = myServer.UploadJumpType(type, evalSID);
 							if(insertedType != "-1") {
+								//record type in test (with the "-7" if it's done by evaluator 7)
 								test.Type = insertedType;
-								sessionUploadPersonData.testTypes += testTypesSeparator + insertedType;
+
+								//show user uploaded type (without the "-7")
+								sessionUploadPersonData.testTypes += testTypesSeparator + type.Name;
 								testTypesSeparator = ", ";
 							}
 					
 							//test.Type in the server will have the correct name "supra-9" 
-						}
+						} 
 					}
 
 					//upload... (if not because of simulated or uploaded before, report also the user)
@@ -264,13 +282,13 @@
 					if(test.Simulated == 0) {
 						JumpType type = SqliteJumpType.SelectAndReturnJumpRjType(test.Type);
 						if( ! type.IsPredefined) {
-							string insertedType = myServer.UploadTestType(Constants.TestTypes.JUMP_RJ, type, evalSID);
+							string insertedType = myServer.UploadJumpRjType(type, evalSID);
 							if(insertedType != "-1") {
 								test.Type = insertedType;
-								sessionUploadPersonData.testTypes += testTypesSeparator + insertedType;
+								sessionUploadPersonData.testTypes += testTypesSeparator + type.Name;
 								testTypesSeparator = ", ";
 							}
-						}
+						} 
 					}
 					
 					//upload...
@@ -302,6 +320,19 @@
 					//fix it to server person, session keys
 					test.PersonID = person.ServerUniqueID;
 					test.SessionID = currentSession.ServerUniqueID;
+
+					if(test.Simulated == 0) {
+						RunType type = SqliteRunType.SelectAndReturnRunType(test.Type);
+						if( ! type.IsPredefined) {
+							string insertedType = myServer.UploadRunType(type, evalSID);
+							if(insertedType != "-1") {
+								test.Type = insertedType;
+								sessionUploadPersonData.testTypes += testTypesSeparator + type.Name;
+								testTypesSeparator = ", ";
+							}
+						}
+					}
+
 					//upload...
 					uCode = serverUploadTest(myServer, Constants.TestTypes.RUN, Constants.RunTable, test);
 
@@ -331,6 +362,18 @@
 					//fix it to server person, session keys
 					test.PersonID = person.ServerUniqueID;
 					test.SessionID = currentSession.ServerUniqueID;
+					
+					if(test.Simulated == 0) {
+						RunType type = SqliteRunIntervalType.SelectAndReturnRunIntervalType(test.Type);
+						if( ! type.IsPredefined) {
+							string insertedType = myServer.UploadRunIntervalType(type, evalSID);
+							if(insertedType != "-1") {
+								test.Type = insertedType;
+								sessionUploadPersonData.testTypes += testTypesSeparator + type.Name;
+								testTypesSeparator = ", ";
+							}
+						} 
+					}
 					//upload...
 					uCode = serverUploadTest(myServer, Constants.TestTypes.RUN_I, Constants.RunIntervalTable, test);
 
@@ -412,7 +455,9 @@
 
 			}
 								
-			myServer.UpdateSession(currentSession.ServerUniqueID, Constants.ServerSessionStates.DONE); 
+			state = (int) Constants.ServerSessionStates.DONE;
+			//myServer.UpdateSession(currentSession.ServerUniqueID, (ServerSessionStates)  Constants.ServerSessionStates.DONE); 
+			myServer.UpdateSession(currentSession.ServerUniqueID, state); 
 
 			Log.WriteLine(myServer.DisConnectDatabase());
 			/*
@@ -453,7 +498,37 @@
 			uCode = Constants.UploadCodes.EXISTS;
 		} else {
 			int idAtServer = -1;
-			idAtServer = myServer.UploadTest((Event) myTest, type, tableName);
+			//idAtServer = myServer.UploadTest((Event) myTest, (TestTypes) type, tableName);
+			//int testType = (int) type;
+			//idAtServer = myServer.UploadTest((Event) myTest, testType, tableName);
+
+			switch (type) {
+				case Constants.TestTypes.JUMP :
+					Jump jump = (Jump)myTest;
+					idAtServer = myServer.UploadJump(jump);
+					break;
+				case Constants.TestTypes.JUMP_RJ :
+					JumpRj jumpRj = (JumpRj)myTest;
+					idAtServer = myServer.UploadJumpRj(jumpRj);
+					break;
+				case Constants.TestTypes.RUN :
+					Run run = (Run)myTest;
+					idAtServer = myServer.UploadRun(run);
+					break;
+				case Constants.TestTypes.RUN_I :
+					RunInterval runI = (RunInterval)myTest;
+					idAtServer = myServer.UploadRunI(runI);
+					break;
+				case Constants.TestTypes.RT :
+					ReactionTime rt = (ReactionTime)myTest;
+					idAtServer = myServer.UploadRT(rt);
+					break;
+				case Constants.TestTypes.PULSE :
+					Pulse pulse = (Pulse)myTest;
+					idAtServer = myServer.UploadPulse(pulse);
+					break;
+			}
+
 			
 			//update test (simulated) on client database
 			myTest.Simulated = idAtServer;

Modified: trunk/src/serverEvaluator.cs
==============================================================================
--- trunk/src/serverEvaluator.cs	(original)
+++ trunk/src/serverEvaluator.cs	Tue Feb  3 21:36:15 2009
@@ -24,7 +24,7 @@
 
 using Mono.Unix;
 
-public class ServerEvaluator
+public partial class ServerEvaluator
 {
 	private int uniqueID;
 	private string name;
@@ -58,6 +58,10 @@
 			"; CountryID: " + countryID + "; Confiable: " + confiable;
 	}
 	
+	/*
+	 * defined on webservice
+	 *
+	 */
 	public int UniqueID {
 		get { return uniqueID; }
 		set { uniqueID = value; }

Modified: trunk/src/serverPing.cs
==============================================================================
--- trunk/src/serverPing.cs	(original)
+++ trunk/src/serverPing.cs	Tue Feb  3 21:36:15 2009
@@ -24,7 +24,7 @@
 
 using Mono.Unix;
 
-public class ServerPing
+public partial class ServerPing
 {
 	private int uniqueID;
 	private int evaluatorID;
@@ -57,6 +57,10 @@
 			"\nIP: " + ip + "\nDate: " + date;
 	}
 	
+	/*
+	 * defined on webservice
+	 *
+	 */
 	public int UniqueID {
 		get { return uniqueID; }
 		set { uniqueID = value; }

Modified: trunk/src/session.cs
==============================================================================
--- trunk/src/session.cs	(original)
+++ trunk/src/session.cs	Tue Feb  3 21:36:15 2009
@@ -23,10 +23,10 @@
 using System.Text; //StringBuilder
 using Mono.Unix;
 
-
-public class Session {
+public partial class Session {
 
 	protected int uniqueID;
+	
 	protected string name;
 	protected string place;
 	protected string date;
@@ -134,6 +134,10 @@
 		return this.ToString().GetHashCode();
 	}
 	
+	/*
+	 * defined on webservice
+	 *
+	 * */
 	public string Name { 
 		get { return name; } 
 		set { name = value; } 
@@ -149,14 +153,6 @@
 		set { date = value; }
 	}
 
-	public string DateLong {
-		get { return Util.DateAsDateTime(date).ToLongDateString(); }
-	}
-	
-	public string DateShort {
-		get { return Util.DateAsDateTime(date).ToShortDateString(); }
-	}
-	
 	public string Comments { 
 		get { return comments; } 
 		set { comments = value; }
@@ -190,25 +186,35 @@
 		set { personsPractice = value; }
 	}
 	
+	public string DateLong {
+		get { return Util.DateAsDateTime(date).ToLongDateString(); }
+	}
+	
+	public string DateShort {
+		get { return Util.DateAsDateTime(date).ToShortDateString(); }
+	}
+	
+	
 	~Session() {}
 	   
 }
 
-public class ServerSession : Session
+public partial class ServerSession : Session
 {
 	//server stuff
 	int evaluatorID;
 	string evaluatorCJVersion;
 	string evaluatorOS;
 	string uploadedDate;
-	Constants.ServerSessionStates uploadingState;
-	//int uploadingState;
+	//Constants.ServerSessionStates uploadingState;
+	int uploadingState;
 
 	public ServerSession() {
 	}
 	
 	public ServerSession(Session mySession, int evaluatorID, string evaluatorCJVersion, 
-			string evaluatorOS, string uploadedDate, Constants.ServerSessionStates uploadingState)
+			//string evaluatorOS, string uploadedDate, Constants.ServerSessionStates uploadingState)
+			string evaluatorOS, string uploadedDate, int uploadingState)
 	{
 		uniqueID = mySession.UniqueID;
 		name = mySession.Name;
@@ -251,6 +257,9 @@
 			evaluatorCJVersion + ", " + evaluatorOS + ", " + uploadedDate + ", " + uploadingState;
 	}
 	
+	/*
+	 * defined on webservice
+	 */
 	public int EvaluatorID {
 		get { return evaluatorID; }
 		set { evaluatorID = value; }
@@ -271,8 +280,8 @@
 		set { uploadedDate = value; }
 	}
 
-	public Constants.ServerSessionStates UploadingState {
-	//public int UploadingState {
+	//public Constants.ServerSessionStates UploadingState {
+	public int UploadingState {
 		get { return uploadingState; }
 		set { uploadingState = value; }
 	}

Modified: trunk/src/sport.cs
==============================================================================
--- trunk/src/sport.cs	(original)
+++ trunk/src/sport.cs	Tue Feb  3 21:36:15 2009
@@ -24,7 +24,7 @@
 
 using Mono.Unix;
 
-public class Sport
+public partial class Sport
 {
 	private int uniqueID;
 	private string name;
@@ -70,6 +70,9 @@
 		return myString + Catalog.GetString(name);
 	}
 
+	/*
+	 * defined on webservice
+	 */
 	public int UniqueID {
 		get { return uniqueID; } 
 		set { uniqueID = value; } 

Modified: trunk/src/sqlite/jumpType.cs
==============================================================================
--- trunk/src/sqlite/jumpType.cs	(original)
+++ trunk/src/sqlite/jumpType.cs	Tue Feb  3 21:36:15 2009
@@ -319,6 +319,8 @@
 			myJumpType.Description = reader[4].ToString();
 		}
 
+		myJumpType.IsPredefined = myJumpType.FindIfIsPredefined();
+
 		reader.Close();
 		dbcon.Close();
 
@@ -357,6 +359,8 @@
 			
 			myJumpType.FixedValue = Convert.ToInt32( reader[5].ToString() );
 		}
+		
+		myJumpType.IsPredefined = myJumpType.FindIfIsPredefined();
 
 		reader.Close();
 		dbcon.Close();

Modified: trunk/src/sqlite/runType.cs
==============================================================================
--- trunk/src/sqlite/runType.cs	(original)
+++ trunk/src/sqlite/runType.cs	Tue Feb  3 21:36:15 2009
@@ -118,6 +118,36 @@
 		return myLast;
 	}
 	
+	public static RunType SelectAndReturnRunType(string typeName) 
+	{
+		dbcon.Open();
+		dbcmd.CommandText = "SELECT * " +
+			" FROM " + Constants.RunTypeTable +
+			" WHERE name  = '" + typeName +
+			"' ORDER BY uniqueID";
+		
+		Log.WriteLine(dbcmd.CommandText.ToString());
+		dbcmd.ExecuteNonQuery();
+
+		SqliteDataReader reader;
+		reader = dbcmd.ExecuteReader();
+
+		RunType myRunType = new RunType();
+		
+		while(reader.Read()) {
+			myRunType.Name = reader[1].ToString();
+			myRunType.Distance = Convert.ToDouble( reader[2].ToString() );
+			myRunType.Description = reader[3].ToString();
+		}
+		
+		myRunType.IsPredefined = myRunType.FindIfIsPredefined();
+
+		reader.Close();
+		dbcon.Close();
+
+		return myRunType;
+	}
+
 	public static string[] SelectRunTypes(string allRunsName, bool onlyName) 
 	{
 		//allRunsName: add and "allRunsName" value
@@ -395,6 +425,8 @@
 			myRunType.DistancesString = reader[7].ToString();
 		}
 
+		myRunType.IsPredefined = myRunType.FindIfIsPredefined();
+
 		reader.Close();
 		dbcon.Close();
 

Modified: trunk/src/sqlite/server.cs
==============================================================================
--- trunk/src/sqlite/server.cs	(original)
+++ trunk/src/sqlite/server.cs	Tue Feb  3 21:36:15 2009
@@ -112,7 +112,7 @@
 		return myReturn;
 	}
 
-	public static ArrayList Stats() {
+	public static string Stats() {
 		ArrayList stats = new ArrayList();
 			
 		dbcon.Open();
@@ -130,7 +130,9 @@
 		
 		dbcon.Close();
 
-		return stats;
+		string statsString = Util.ArrayListToSingleString(stats);
+
+		return statsString;
 	}
 	
 

Modified: trunk/src/sqlite/session.cs
==============================================================================
--- trunk/src/sqlite/session.cs	(original)
+++ trunk/src/sqlite/session.cs	Tue Feb  3 21:36:15 2009
@@ -617,7 +617,8 @@
 	}
 	
 	//public static int Insert(bool dbconOpened, string tableName, string uniqueID, string name, string place, string date, int personsSportID, int personsSpeciallityID, int personsPractice, string comments, int serverUniqueID, int evaluatorID, string evaluatorCJVersion, string evaluatorOS, string uploadedDate, Constants.ServerSessionStates uploadingState)
-	public static int Insert(bool dbconOpened, string tableName, string name, string place, string date, int personsSportID, int personsSpeciallityID, int personsPractice, string comments, int serverUniqueID, int evaluatorID, string evaluatorCJVersion, string evaluatorOS, string uploadedDate, Constants.ServerSessionStates uploadingState)
+	//public static int Insert(bool dbconOpened, string tableName, string name, string place, string date, int personsSportID, int personsSpeciallityID, int personsPractice, string comments, int serverUniqueID, int evaluatorID, string evaluatorCJVersion, string evaluatorOS, string uploadedDate, Constants.ServerSessionStates uploadingState)
+	public static int Insert(bool dbconOpened, string tableName, string name, string place, string date, int personsSportID, int personsSpeciallityID, int personsPractice, string comments, int serverUniqueID, int evaluatorID, string evaluatorCJVersion, string evaluatorOS, string uploadedDate, int uploadingState)
 	{
 		if(! dbconOpened)
 			dbcon.Open();
@@ -633,8 +634,8 @@
 			personsPractice + ", '" + comments + "', " +
 			serverUniqueID + ", " + evaluatorID + ", '" +
 			evaluatorCJVersion + "', '" + evaluatorOS + "', '" +
-			uploadedDate + "', " + Convert.ToInt32(uploadingState) +
-			//uploadedDate + "', " + uploadingState +
+			//uploadedDate + "', " + Convert.ToInt32(uploadingState) +
+			uploadedDate + "', " + uploadingState +
 			")" ;
 		Log.WriteLine(dbcmd.CommandText.ToString());
 		dbcmd.ExecuteNonQuery();
@@ -647,12 +648,14 @@
 	}
 	
 	//updating local session when it gets uploaded
-	public static void UpdateUploadingState(int uniqueID, Constants.ServerSessionStates state)
+	//public static void UpdateUploadingState(int uniqueID, Constants.ServerSessionStates state)
+	public static void UpdateUploadingState(int uniqueID, int state)
 	{
 		//if(!dbconOpened)
 			dbcon.Open();
 
-		dbcmd.CommandText = "UPDATE " + Constants.SessionTable + " SET uploadingState = " + Convert.ToInt32(state) + 
+		//dbcmd.CommandText = "UPDATE " + Constants.SessionTable + " SET uploadingState = " + Convert.ToInt32(state) + 
+		dbcmd.CommandText = "UPDATE " + Constants.SessionTable + " SET uploadingState = " + state + 
 			" WHERE uniqueID == " + uniqueID ;
 		Log.WriteLine(dbcmd.CommandText.ToString());
 		dbcmd.ExecuteNonQuery();

Modified: trunk/src/treeViewRun.cs
==============================================================================
--- trunk/src/treeViewRun.cs	(original)
+++ trunk/src/treeViewRun.cs	Tue Feb  3 21:36:15 2009
@@ -179,6 +179,11 @@
 		return myData;
 	}
 	
+	private string getDistancesStringRow(string distancesString, int row) {
+		string [] str = distancesString.Split(new char[] {'-'});
+		row = row % str.Length;
+		return str[row];
+	}
 
 	protected override string [] getSubLineToStore(System.Object myObject, int lineCount)
 	{
@@ -192,13 +197,28 @@
 		//write line for treeview
 		string [] myData = new String [getColsNum()];
 		int count = 0;
-		myData[count++] = (lineCount +1).ToString();
-		myData[count++] =  Util.TrimDecimals( 
-				Util.GetSpeed(
-					newRunI.DistanceInterval.ToString(), //distanceInterval (same for all subevents)
-					timeInterval,
-					metersSecondsPreferred )
-				, pDN );
+		
+		if(newRunI.DistanceInterval == -1) {
+			RunType runType = SqliteRunIntervalType.SelectAndReturnRunIntervalType(newRunI.Type);
+			myData[count++] = (lineCount + 1).ToString() +  
+				" (" + getDistancesStringRow(runType.DistancesString, lineCount) + "m)";
+			
+			myData[count++] =  Util.TrimDecimals( 
+					Util.GetSpeed(
+						getDistancesStringRow(runType.DistancesString, lineCount), //distancesString (variable)
+						timeInterval,
+						metersSecondsPreferred )
+					, pDN );
+		} else {
+			myData[count++] = (lineCount +1).ToString();
+
+			myData[count++] =  Util.TrimDecimals( 
+					Util.GetSpeed(
+						newRunI.DistanceInterval.ToString(), //distanceInterval (same for all subevents)
+						timeInterval,
+						metersSecondsPreferred )
+					, pDN );
+		}
 
 		myData[count++] = Util.TrimDecimals( timeInterval, pDN );
 		myData[count++] = "";

Modified: trunk/version.txt
==============================================================================
--- trunk/version.txt	(original)
+++ trunk/version.txt	Tue Feb  3 21:36:15 2009
@@ -1 +1 @@
-0.8.1.6
+0.8.1.7



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]