public async Task <long> GetVersion(Guid applicationId, string environmentName, string privateKey) { Guard.IsTrue(await hasValidAccessKey.ToRead(applicationId, privateKey), "Invalid access key"); var environments = unitOfWork.Repository <ApplicationEnvironment, Guid>(); var spec = ApplicationEnvironment.WithApplication(applicationId).And(ApplicationEnvironment.WithName(environmentName)); var environment = await environments.FirstOrDefaultAsync(spec); Guard.IsNotNull(environment, "Invalid environment name."); return(environment.GetVersion()); }