public string CreateBatch([FromBody] Batch batch)
        {
            try
            {
                // Parameter validation
                AssertBatchParameter(batch);

                // Returns the generated batch-id (internal id of the system)
                GeresEventSource.Log.WebApiCreateBatchReceived(batch.BatchName, batch.Priority, batch.RequiresDedicatedWorker);
                var newBatch = _jobController.CreateBatch(batch);
                GeresEventSource.Log.WebApiCreateBatchSuccessful(batch.Id, batch.BatchName, batch.Priority, batch.RequiresDedicatedWorker);

                return(newBatch.Id);
            }
            catch (ArgumentException ex)
            {
                Trace.TraceWarning("WebAPI - JobController -- Invalid batch passed into system: {0}{1}{2}", ex.Message, Environment.NewLine, ex.StackTrace);

                GeresEventSource.Log.WebApiInvalidCreateBatchParameterReceived(batch.BatchName, ex.Message, ex.StackTrace);
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }
            catch (InvalidOperationException ex)
            {
                Trace.TraceWarning("WebAPI - JobController -- Batch could not be submitted to system: {0}{1}{2}", ex.Message, Environment.NewLine, ex.StackTrace);

                GeresEventSource.Log.WebApiInvalidCreateBatchOperation(batch.BatchName, ex.Message, ex.StackTrace);
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }
            catch (Exception ex)
            {
                Trace.TraceError("WebAPI - JobController -- Unknown exception occured: {0}{1}{2}", ex.Message, Environment.NewLine, ex.StackTrace);

                GeresEventSource.Log.WebApiUnknownExceptionOccured(ex.Message, ex.StackTrace);
                throw new HttpResponseException(HttpStatusCode.InternalServerError);
            }
        }