[CORD-3186] Adding CORD version to the gui

Change-Id: I4512ed6fce7f5dc2bb70dc1df6f5a919456fc60a
diff --git a/src/app/core/services/version-reader.ts b/src/app/core/services/version-reader.ts
new file mode 100644
index 0000000..3293fbc
--- /dev/null
+++ b/src/app/core/services/version-reader.ts
@@ -0,0 +1,55 @@
+
+
+/*
+ * Copyright 2017-present Open Networking Foundation
+
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+
+ * http://www.apache.org/licenses/LICENSE-2.0
+
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import IPromise = angular.IPromise;
+
+export interface IXosVersionReaderService {
+  getVersion(): IPromise<string>;
+}
+
+interface ICORDVersion {
+    data: {
+        version: string;
+    };
+}
+
+export class XosVersionReaderService implements IXosVersionReaderService {
+
+    static $inject = ['$http', '$q', '$log'];
+
+    constructor(
+    private $http: angular.IHttpService,
+    private $q: angular.IQService,
+    private $log: angular.ILogService
+    ) {
+    }
+
+    public getVersion(): IPromise<string> {
+        const d = this.$q.defer();
+        this.$http.get(`/version.json`)
+          .then((res: ICORDVersion) => {
+            d.resolve(res.data.version);
+          })
+          .catch(e => {
+            this.$log.warn(`[XosVersionReaderService] Cannot read version`, e);
+            d.resolve('unknown');
+          });
+        return d.promise;
+      }
+
+}