Ringdebug and utils

Change-Id: I7144be0052eb7d1900d17b31edbfe48d0498d7db
diff --git a/Utils.h b/Utils.h
new file mode 100644
index 0000000..1498faa
--- /dev/null
+++ b/Utils.h
@@ -0,0 +1,76 @@
+#pragma once
+#include <pch.h>
+
+using namespace Platform;
+using namespace Windows::Storage;
+
+namespace RingClientUWP
+{
+namespace Utils {
+
+task<bool>
+fileExists(StorageFolder^ folder, String^ fileName)
+{
+    return create_task(folder->GetFileAsync(fileName))
+        .then([](task<StorageFile^> taskResult)
+    {
+        bool exists;
+        try {
+            taskResult.get();
+            exists = true;
+        }
+        catch (COMException ^e) {
+            if (e->HResult == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)) {
+                exists = false;
+            }
+            else {
+                throw;
+            }
+        }
+        return exists;
+    });
+}
+
+std::string makeString(const std::wstring& wstr)
+{
+    auto wideData = wstr.c_str();
+    int bufferSize = WideCharToMultiByte(CP_UTF8, 0, wideData, -1, nullptr, 0, NULL, NULL);
+
+    std::unique_ptr<char[]> utf8;
+    utf8.reset(new char[bufferSize]);
+
+    if (WideCharToMultiByte(CP_UTF8, 0, wideData, -1, utf8.get(), bufferSize, NULL, NULL) == 0) {
+        return std::string();
+    }
+
+    return std::string(utf8.get());
+}
+
+std::wstring makeWString(const std::string& str)
+{
+    auto utf8Data = str.c_str();
+    int bufferSize = MultiByteToWideChar(CP_UTF8, 0, utf8Data, -1, nullptr, 0);
+
+    std::unique_ptr<wchar_t[]> wide;
+    wide.reset(new wchar_t[bufferSize]);
+
+    if (MultiByteToWideChar(CP_UTF8, 0, utf8Data, -1, wide.get(), bufferSize) == 0) {
+        return std::wstring();
+    }
+
+    return std::wstring(wide.get());;
+}
+
+std::string toString(Platform::String ^str)
+{
+    std::wstring wsstr(str->Data());
+    return makeString(wsstr);
+}
+
+Platform::String^ toPlatformString(const std::string& str)
+{
+    std::wstring wsstr = makeWString(str);
+    return ref new Platform::String(wsstr.c_str(), wsstr.length());
+}
+}
+}
\ No newline at end of file