public static Response LoadRecSource(Operation baseOperation, RecServiceState state) { Operation<LoadRecSourceRequest> operation = (Operation<LoadRecSourceRequest>)baseOperation; if (!operation.PayloadSet || operation.Payload == null) return GetArgumentNotSetError("Payload"); if (operation.Payload.Name == null) return GetArgumentNotSetError("Payload.Name"); if (operation.Payload.Type == null) return GetArgumentNotSetError("Payload.Type"); if (state.JsonRecSourceTypes.ContainsKey(operation.Payload.Type)) { Type jsonRecSourceType = state.JsonRecSourceTypes[operation.Payload.Type]; // operation.Payload's static type is LoadRecSourceRequest. // Its real type will be something like LoadRecSourceRequest<AverageScoreRecSourceParams> thanks to the custom JsonConverter. // A json rec source is expected to have one or more constructors taking types derived from LoadRecSourceRequest. Func<ITrainableJsonRecSource> recSourceFactory = () => (ITrainableJsonRecSource)(Activator.CreateInstance(jsonRecSourceType, operation.Payload)); state.LoadRecSource(recSourceFactory, operation.Payload.Name, operation.Payload.ReplaceExisting); return new Response(); } else { return Response.GetErrorResponse( errorCode: ErrorCodes.InvalidArgument, message: string.Format("{0} is not a valid rec source type.", operation.Payload.Type) ); } }
public static Response ReloadTrainingData(Operation baseOperation, RecServiceState state) { Operation<ReloadTrainingDataRequest> operation = (Operation<ReloadTrainingDataRequest>)baseOperation; ReloadBehavior behavior = (ReloadBehavior)Enum.Parse(typeof(ReloadBehavior), operation.Payload.Mode); state.ReloadTrainingData(behavior, operation.Payload.Finalize); return new Response(); }
public static Response GetRecSourceType(Operation baseOperation, RecServiceState state) { Operation<GetRecSourceTypeRequest> operation = (Operation<GetRecSourceTypeRequest>)baseOperation; string recSourceType = state.GetRecSourceType(operation.Payload.RecSourceName); return new Response<GetRecSourceTypeResponse>() { Body = new GetRecSourceTypeResponse(recSourceType) }; }
public static Response UnloadRecSource(Operation baseOperation, RecServiceState state) { Operation<UnloadRecSourceRequest> operation = (Operation<UnloadRecSourceRequest>)baseOperation; operation.Payload.AssertArgumentNotNull("Payload"); operation.Payload.Name.AssertArgumentNotNull("Payload.Name"); state.UnloadRecSource(operation.Payload.Name); return new Response(); }
public static async Task <Response> GetMalRecsAsync(Operation baseOperation, RecServiceState state, CancellationToken cancellationToken) { Operation <GetMalRecsRequest> operation = (Operation <GetMalRecsRequest>)baseOperation; return(new Response <GetMalRecsResponse>() { Body = await state.GetMalRecsAsync(operation.Payload, cancellationToken).ConfigureAwait(false) }); }
public static Response Ping(Operation baseOperation, RecServiceState state) { Operation<PingRequest> operation = (Operation<PingRequest>)(baseOperation); if (!operation.PayloadSet || operation.Payload == null) return GetArgumentNotSetError("Payload"); if (operation.Payload.PingMessage == null) return GetArgumentNotSetError("Payload.PingMessage"); return new Response<PingResponse>() { Body = new PingResponse() { OriginalMessage = operation.Payload.PingMessage, ResponseMessage = string.Format("Your message was \"{0}\".", operation.Payload.PingMessage) } }; }
public static Task <Response> PingAsync(Operation baseOperation, RecServiceState state, CancellationToken cancellationToken) { Operation <PingRequest> operation = (Operation <PingRequest>)(baseOperation); if (!operation.PayloadSet || operation.Payload == null) { return(Task.FromResult(GetArgumentNotSetError("Payload"))); } if (operation.Payload.PingMessage == null) { return(Task.FromResult(GetArgumentNotSetError("Payload.PingMessage"))); } return(Task.FromResult <Response>(new Response <PingResponse>() { Body = new PingResponse() { OriginalMessage = operation.Payload.PingMessage, ResponseMessage = string.Format("Your message was \"{0}\".", operation.Payload.PingMessage) } })); }
public static async Task <Response> GetRecSourceTypeAsync(Operation baseOperation, RecServiceState state, CancellationToken cancellationToken) { Operation <GetRecSourceTypeRequest> operation = (Operation <GetRecSourceTypeRequest>)baseOperation; string recSourceType = await state.GetRecSourceTypeAsync(operation.Payload.RecSourceName, cancellationToken).ConfigureAwait(false); return(new Response <GetRecSourceTypeResponse>() { Body = new GetRecSourceTypeResponse(recSourceType) }); }
public static async Task <Response> ReloadTrainingDataAsync(Operation baseOperation, RecServiceState state, CancellationToken cancellationToken) { Operation <ReloadTrainingDataRequest> operation = (Operation <ReloadTrainingDataRequest>)baseOperation; ReloadBehavior behavior = (ReloadBehavior)Enum.Parse(typeof(ReloadBehavior), operation.Payload.Mode); await state.ReloadTrainingDataAsync(behavior, operation.Payload.Finalize, cancellationToken); return(new Response()); }
public static async Task <Response> UnloadRecSourceAsync(Operation baseOperation, RecServiceState state, CancellationToken cancellationToken) { Operation <UnloadRecSourceRequest> operation = (Operation <UnloadRecSourceRequest>)baseOperation; operation.Payload.AssertArgumentNotNull("Payload"); operation.Payload.Name.AssertArgumentNotNull("Payload.Name"); await state.UnloadRecSourceAsync(operation.Payload.Name, cancellationToken).ConfigureAwait(false); return(new Response()); }
public static async Task <Response> FinalizeRecSourcesAsync(Operation baseOperation, RecServiceState state, CancellationToken cancellationToken) { Operation <FinalizeRecSourcesRequest> operation = (Operation <FinalizeRecSourcesRequest>)baseOperation; await state.FinalizeRecSourcesAsync(cancellationToken); return(new Response()); }
public static Response FinalizeRecSources(Operation baseOperation, RecServiceState state) { Operation<FinalizeRecSourcesRequest> operation = (Operation<FinalizeRecSourcesRequest>)baseOperation; state.FinalizeRecSources(); return new Response(); }
public static Response GetMalRecs(Operation baseOperation, RecServiceState state) { Operation<GetMalRecsRequest> operation = (Operation<GetMalRecsRequest>)baseOperation; return new Response<GetMalRecsResponse>() { Body = state.GetMalRecs(operation.Payload) }; }
public static async Task <Response> LoadRecSourceAsync(Operation baseOperation, RecServiceState state, CancellationToken cancellationToken) { Operation <LoadRecSourceRequest> operation = (Operation <LoadRecSourceRequest>)baseOperation; if (!operation.PayloadSet || operation.Payload == null) { return(GetArgumentNotSetError("Payload")); } if (operation.Payload.Name == null) { return(GetArgumentNotSetError("Payload.Name")); } if (operation.Payload.Type == null) { return(GetArgumentNotSetError("Payload.Type")); } try { await state.LoadRecSourceAsync(operation.Payload, cancellationToken).ConfigureAwait(false); return(new Response()); } catch (KeyNotFoundException) { return(Response.GetErrorResponse( errorCode: ErrorCodes.InvalidArgument, message: string.Format("{0} is not a valid rec source type.", operation.Payload.Type) )); } }