[OperationContract]
[FaultContract(typeof(ValidationFaultContract))]
[FaultContract(typeof(DbFaultContract))]
[SwaggerWcfTag("Customers", false)]
[SwaggerWcfPath(null, null, null, null, null, false, null, Summary = "Register a web-customer account.", Description = "Registers a web-customer account in the Everest system and returns the corresponding distributor code.")]
[WebInvoke(UriTemplate = "Register", Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
[SwaggerWcfResponse(StatusCode = HttpStatusCode.OK, Description = "Success")]
[SwaggerWcfResponse(StatusCode = HttpStatusCode.InternalServerError, Description = "An unexpected error occurred while processing the request.", Type = typeof(JsonErrorMessage))]
Task<string> RegisterCustomer(WebCustomerAccountRegistrationContract webCustomerAccount)