Example #1
0
        public void LoginWithTwitter(Microsoft.Phone.Controls.WebBrowser webBrowser,
                                     IDictionary <string, string> twitterFieldsMappings, AsyncCallback <BackendlessUser> callback)
        {
            try
            {
                if (webBrowser == null)
                {
                    throw new ArgumentNullException(ExceptionMessage.NUL_WEBBROWSER);
                }

                Invoker.InvokeAsync(USER_MANAGER_SERVER_ALIAS, "getTwitterServiceAuthorizationUrlLink",
                                    new Object[]
                {
                    Backendless.AppId, Backendless.VersionNum,
                    HeadersManager.GetInstance().Headers[HeadersEnum.APP_TYPE_NAME.Header],
                    twitterFieldsMappings
                },
                                    GetSocialEasyLoginAsyncHandler(webBrowser, callback));
            }
            catch (System.Exception ex)
            {
                if (callback != null)
                {
                    callback.ErrorHandler.Invoke(new BackendlessFault(ex.Message));
                }
                else
                {
                    throw;
                }
            }
        }
Example #2
0
        public void Logout(AsyncCallback <object> callback)
        {
            var responder = new AsyncCallback <object>(r =>
            {
                CurrentUser = null;
                HeadersManager.GetInstance().RemoveHeader(HeadersEnum.USER_TOKEN_KEY);
                LoginStorage.DeleteFiles();

                if (callback != null)
                {
                    callback.ResponseHandler.Invoke(null);
                }
            }, f =>
            {
                if (callback != null)
                {
                    callback.ErrorHandler.Invoke(f);
                }
                else
                {
                    throw new BackendlessException(f);
                }
            });

            Invoker.InvokeAsync(USER_MANAGER_SERVER_ALIAS, "logout",
                                new object[] {},
                                responder);
        }
Example #3
0
        private AsyncCallback <Dictionary <string, object> > GetUserLoginAsyncHandler(
            AsyncCallback <BackendlessUser> callback)
        {
            return(new AsyncCallback <Dictionary <string, object> >(r =>
            {
                HeadersManager.GetInstance()
                .AddHeader(HeadersEnum.USER_TOKEN_KEY, r[HeadersEnum.USER_TOKEN_KEY.Header].ToString());

                if (CurrentUser == null)
                {
                    CurrentUser = new BackendlessUser();
                }

                CurrentUser.PutProperties(r);

                if (callback != null)
                {
                    callback.ResponseHandler.Invoke(CurrentUser);
                }
            }, f =>
            {
                if (callback != null)
                {
                    callback.ErrorHandler.Invoke(f);
                }
                else
                {
                    throw new BackendlessException(f);
                }
            }));
        }
Example #4
0
        public void Logout()
        {
            try
            {
                Invoker.InvokeSync <object>(USER_MANAGER_SERVER_ALIAS, "logout",
                                            new object[] { });
            }
            catch (BackendlessException exception)
            {
                BackendlessFault fault = exception.BackendlessFault;

                if (fault != null)
                {
                    int faultCode = int.Parse(fault.FaultCode);

                    if (faultCode != 3064 && faultCode != 3091 && faultCode != 3090 && faultCode != 3023)
                    {
                        throw exception;
                    }
                }
            }

            CurrentUser = null;
            HeadersManager.GetInstance().RemoveHeader(HeadersEnum.USER_TOKEN_KEY);
            LoginStorage.DeleteFiles();
        }
Example #5
0
        public void Logout(AsyncCallback <object> callback)
        {
            var responder = new AsyncCallback <object>(r =>
            {
                CurrentUser = null;
                HeadersManager.GetInstance().RemoveHeader(HeadersEnum.USER_TOKEN_KEY);

                if (callback != null)
                {
                    callback.ResponseHandler.Invoke(null);
                }
            }, f =>
            {
                if (callback != null)
                {
                    callback.ErrorHandler.Invoke(f);
                }
                else
                {
                    throw new BackendlessException(f);
                }
            });

            Invoker.InvokeAsync <object>(Invoker.Api.USERSERVICE_LOGOUT, null, responder);
        }
Example #6
0
        public static void InitApp(string applicationId, string secretKey, string version)
        {
            if (string.IsNullOrEmpty(applicationId))
            {
                throw new ArgumentNullException(ExceptionMessage.NULL_APPLICATION_ID);
            }

            if (string.IsNullOrEmpty(secretKey))
            {
                throw new ArgumentNullException(ExceptionMessage.NULL_SECRET_KEY);
            }

            if (string.IsNullOrEmpty(version))
            {
                throw new ArgumentNullException(ExceptionMessage.NULL_VERSION);
            }

            AppId      = applicationId;
            SecretKey  = secretKey;
            VersionNum = version;

            Persistence = new PersistenceService();
            Data        = Persistence;
            Geo         = new BackendlessAPI.Service.GeoService();
            Messaging   = new BackendlessAPI.Service.MessagingService();
            Files       = new BackendlessAPI.Service.FileService();
            UserService = new BackendlessAPI.Service.UserService();
            Events      = BackendlessAPI.Events.GetInstance();
            Cache       = BackendlessAPI.Caching.Cache.GetInstance();
            Counters    = BackendlessAPI.Counters.CounterService.GetInstance();
            Logging     = new BackendlessAPI.Logging.LoggingService();

            HeadersManager.CleanHeaders();
        }
Example #7
0
        public static void InitApp(String applicationId, String apiKey)
        {
            if (String.IsNullOrEmpty(applicationId))
            {
                throw new ArgumentNullException(ExceptionMessage.NULL_APPLICATION_ID);
            }

            if (String.IsNullOrEmpty(apiKey))
            {
                throw new ArgumentNullException(ExceptionMessage.NULL_SECRET_KEY);
            }

            Log.addLogger(Log.DEFAULTLOGGER, new ConsoleLogger());
            Log.startLogging(BACKENDLESSLOG);
#if WITHRT
            Quobject.EngineIoClientDotNet.Modules.LogManager.Enabled = !DeviceCheck.IsMobile;
#endif
            AppId  = applicationId;
            APIKey = apiKey;

            Persistence   = new PersistenceService();
            Data          = Persistence;
            Geo           = new GeoService();
            Messaging     = new MessagingService();
            Files         = new FileService();
            UserService   = new UserService();
            Events        = Events.GetInstance();
            Cache         = Cache.GetInstance();
            Counters      = CounterService.GetInstance();
            Logging       = new LoggingService();
            CustomService = new CustomService();

      #if WITHRT
            RT = new RTServiceImpl();
      #endif

            MessageWriter.DefaultWriter = new UnderflowWriter();
            MessageWriter.AddAdditionalTypeWriter(typeof(BackendlessUser), new BackendlessUserWriter());
            MessageWriter.AddAdditionalTypeWriter(typeof(Geometry), new BackendlessGeometryWriter());
            MessageWriter.AddAdditionalTypeWriter(typeof(Point), new BackendlessGeometryWriter());
            MessageWriter.AddAdditionalTypeWriter(typeof(LineString), new BackendlessGeometryWriter());
            MessageWriter.AddAdditionalTypeWriter(typeof(Polygon), new BackendlessGeometryWriter());
            ORBConfig.GetInstance().getObjectFactories().AddArgumentObjectFactory(typeof(BackendlessUser).FullName, new BackendlessUserFactory());
            ORBConfig.GetInstance().getObjectFactories().AddArgumentObjectFactory(typeof(GeometryDTO).FullName, new BackendlessGeometryFactory());
            ORBConfig.GetInstance().getObjectFactories().AddArgumentObjectFactory(typeof(Geometry).FullName, new BackendlessGeometryFactory());
            ORBConfig.GetInstance().getObjectFactories().AddArgumentObjectFactory(typeof(Point).FullName, new BackendlessGeometryFactory());
            ORBConfig.GetInstance().getObjectFactories().AddArgumentObjectFactory(typeof(LineString).FullName, new BackendlessGeometryFactory());
            ORBConfig.GetInstance().getObjectFactories().AddArgumentObjectFactory(typeof(Polygon).FullName, new BackendlessGeometryFactory());

            HeadersManager.CleanHeaders();
            LoginStorage loginStorage = new LoginStorage();

            if (loginStorage.HasData)
            {
                HeadersManager.GetInstance().AddHeader(HeadersEnum.USER_TOKEN_KEY, loginStorage.UserToken);
            }
        }
Example #8
0
        private async Task <BackendlessFile> MakeFileUploadAsync(Stream fileStream, string path, string fileName, bool overwrite,
                                                                 UploadCallback uploadCallback)
        {
            string boundary = DateTime.Now.Ticks.ToString("x");

            byte[] boundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "--\r\n");
            var    sb            = new StringBuilder();

            sb.Append("--");
            sb.Append(boundary);
            sb.Append("\r\n");
            sb.Append("Content-Disposition: form-data; name=\"file\"; filename=\"");
            sb.Append(fileName);
            sb.Append("\"");
            sb.Append("\r\n");
            sb.Append("Content-Type: ");
            sb.Append("application/octet-stream");
            sb.Append("\r\n");
            sb.Append("Content-Transfer-Encoding: binary");
            sb.Append("\r\n");
            sb.Append("\r\n");

            var header = sb.ToString();

            byte[] headerBytes = Encoding.UTF8.GetBytes(header);

            var urlStr = Backendless.URL + "/" + Backendless.AppId + "/" + Backendless.APIKey + "/files/" +
                         EncodeURL(path) + "/" + EncodeURL(fileName);

            if (overwrite)
            {
                urlStr = urlStr + "?" + "overwrite" + "=" + overwrite;
            }

            var httpRequest =
                (HttpWebRequest)
                WebRequest.Create(
                    new Uri(
                        urlStr,
                        UriKind.Absolute));

            httpRequest.ContentType          = "multipart/form-data; boundary=" + boundary;
            httpRequest.Method               = "POST";
            httpRequest.Headers["KeepAlive"] = "true";

            foreach (var h in HeadersManager.GetInstance().Headers)
            {
                httpRequest.Headers[h.Key] = h.Value;
            }

            Stream stream = await httpRequest.GetRequestStreamAsync();

            return(await RequestStreamCallbackAsync(stream, fileStream, httpRequest, uploadCallback, headerBytes,
                                                    boundaryBytes));
        }
Example #9
0
        private void HandleUserLogin(Dictionary <string, object> invokeResult)
        {
            HeadersManager.GetInstance()
            .AddHeader(HeadersEnum.USER_TOKEN_KEY,
                       invokeResult[HeadersEnum.USER_TOKEN_KEY.Header].ToString());

            if (CurrentUser == null)
            {
                CurrentUser = new BackendlessUser();
            }

            CurrentUser.PutProperties(invokeResult);
        }
Example #10
0
        private void HandleUserLogin(Dictionary <string, object> invokeResult, bool stayLoggedIn)
        {
            HeadersManager.GetInstance()
            .AddHeader(HeadersEnum.USER_TOKEN_KEY,
                       invokeResult[HeadersEnum.USER_TOKEN_KEY.Header].ToString());

            if (CurrentUser == null)
            {
                CurrentUser = new BackendlessUser();
            }

            CurrentUser.PutProperties(invokeResult);

            if (stayLoggedIn)
            {
                LoginStorage.UserToken = invokeResult[HeadersEnum.USER_TOKEN_KEY.Header].ToString();
                LoginStorage.ObjectId  = Backendless.UserService.CurrentUser.ObjectId;
                LoginStorage.SaveData();
            }
        }
Example #11
0
        public static void InitApp(string applicationId, string apiKey)
        {
            if (string.IsNullOrEmpty(applicationId))
            {
                throw new ArgumentNullException(ExceptionMessage.NULL_APPLICATION_ID);
            }

            if (string.IsNullOrEmpty(apiKey))
            {
                throw new ArgumentNullException(ExceptionMessage.NULL_SECRET_KEY);
            }

            AppId  = applicationId;
            APIKey = apiKey;

            Persistence   = new PersistenceService();
            Data          = Persistence;
            Geo           = new GeoService();
            Messaging     = new MessagingService();
            Files         = new FileService();
            UserService   = new UserService();
            Events        = Events.GetInstance();
            Cache         = Cache.GetInstance();
            Counters      = CounterService.GetInstance();
            Logging       = new LoggingService();
            CustomService = new CustomService();

            MessageWriter.DefaultWriter = new UnderflowWriter();
            MessageWriter.AddAdditionalTypeWriter(typeof(BackendlessUser), new BackendlessUserWriter());
            ORBConfig.GetInstance().getObjectFactories().AddArgumentObjectFactory(typeof(BackendlessUser).FullName, new BackendlessUserFactory());

            HeadersManager.CleanHeaders();
            LoginStorage loginStorage = new LoginStorage();

            if (loginStorage.HasData)
            {
                HeadersManager.GetInstance().AddHeader(HeadersEnum.USER_TOKEN_KEY, loginStorage.UserToken);
            }
        }
Example #12
0
        public void Logout()
        {
            try
            {
                Invoker.InvokeSync <object>(Invoker.Api.USERSERVICE_LOGOUT, null);
            }
            catch (BackendlessException exception)
            {
                BackendlessFault fault = exception.BackendlessFault;

                if (fault != null)
                {
                    int faultCode = int.Parse(fault.FaultCode);

                    if (faultCode != 3064 && faultCode != 3091 && faultCode != 3090 && faultCode != 3023)
                    {
                        throw exception;
                    }
                }
            }

            CurrentUser = null;
            HeadersManager.GetInstance().RemoveHeader(HeadersEnum.USER_TOKEN_KEY);
        }
Example #13
0
        private void MakeFileUpload(FileStream fileStream, string path, bool overwrite,
                                    UploadCallback uploadCallback,
                                    AsyncCallback <BackendlessFile> callback)
        {
            string boundary = DateTime.Now.Ticks.ToString("x");

            byte[] boundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "--\r\n");

            var fileName = Path.GetFileName(fileStream.Name);

            //You cannot get name of IsolatedStorageFileStream the normal way, it always returns [Unknown] (making it pass the checks against null)
            if (fileStream.GetType() == typeof(System.IO.IsolatedStorage.IsolatedStorageFileStream))
            {
                fileName = Path.GetFileName(((System.IO.IsolatedStorage.IsolatedStorageFileStream)fileStream).Name);
            }

            var sb = new StringBuilder();

            sb.Append("--");
            sb.Append(boundary);
            sb.Append("\r\n");
            sb.Append("Content-Disposition: form-data; name=\"file\"; filename=\"");
            sb.Append(fileName);
            sb.Append("\"");
            sb.Append("\r\n");
            sb.Append("Content-Type: ");
            sb.Append("application/octet-stream");
            sb.Append("\r\n");
            sb.Append("Content-Transfer-Encoding: binary");
            sb.Append("\r\n");
            sb.Append("\r\n");

            var header = sb.ToString();

            byte[] headerBytes = Encoding.UTF8.GetBytes(header);

            var urlStr = Backendless.URL + "/" + Backendless.AppId + "/" + Backendless.APIKey + "/files/" +
                         EncodeURL(path) + "/" + EncodeURL(fileName);

            if (overwrite)
            {
                urlStr = urlStr + "?overwrite=true";
            }

            var httpRequest =
                (HttpWebRequest)
                WebRequest.Create(
                    new Uri(
                        urlStr,
                        UriKind.Absolute));

            httpRequest.ContentType          = "multipart/form-data; boundary=" + boundary;
            httpRequest.Method               = "POST";
            httpRequest.Headers["KeepAlive"] = "true";

            foreach (var h in HeadersManager.GetInstance().Headers)
            {
                httpRequest.Headers[h.Key] = h.Value;
            }

            try
            {
                var async = new RequestStreamAsyncState <BackendlessFile>
                {
                    Callback       = callback,
                    UploadCallback = uploadCallback,
                    HttpRequest    = httpRequest,
                    HeaderBytes    = headerBytes,
                    BoundaryBytes  = boundaryBytes,
                    FileStream     = fileStream
                };
                httpRequest.BeginGetRequestStream(RequestStreamCallback, async);
            }
            catch (System.Exception ex)
            {
                if (callback != null)
                {
                    callback.ErrorHandler.Invoke(new BackendlessFault(ex.Message));
                }
                else
                {
                    throw;
                }
            }
        }
Example #14
0
        private void MakeFileUpload(Stream stream, string path, UploadCallback uploadCallback,
                                    AsyncCallback <BackendlessFile> callback)
        {
            string boundary = DateTime.Now.Ticks.ToString("x");

            byte[] boundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "--\r\n");

            var fileName = "";

            try
            {
                fileName = Path.GetFileName(path);
            }
            catch (System.Exception ex) {
                if (callback != null)
                {
                    callback.ErrorHandler.Invoke(new BackendlessFault(ex.Message));
                }
                else
                {
                    throw;
                }
            }

            var sb = new StringBuilder();

            sb.Append("--");
            sb.Append(boundary);
            sb.Append("\r\n");
            sb.Append("Content-Disposition: form-data; name=\"file\"; filename=\"");
            sb.Append(fileName);
            sb.Append("\"");
            sb.Append("\r\n");
            sb.Append("Content-Type: ");
            sb.Append("application/octet-stream");
            sb.Append("\r\n");
            sb.Append("Content-Transfer-Encoding: binary");
            sb.Append("\r\n");
            sb.Append("\r\n");

            string header = sb.ToString();

            byte[] headerBytes = Encoding.UTF8.GetBytes(header);

            var httpRequest =
                (HttpWebRequest)
                WebRequest.Create(
                    new Uri(
                        Backendless.Url + "/" + Backendless.VersionNum + "/files/" + EncodeURL(path),
                        UriKind.Absolute));

            httpRequest.ContentType          = "multipart/form-data; boundary=" + boundary;
            httpRequest.Method               = "POST";
            httpRequest.Headers["KeepAlive"] = "true";

            foreach (var h in HeadersManager.GetInstance().Headers)
            {
                httpRequest.Headers[h.Key] = h.Value;
            }

            try
            {
                var async = new RequestStreamAsyncState <BackendlessFile>
                {
                    Callback       = callback,
                    UploadCallback = uploadCallback,
                    HttpRequest    = httpRequest,
                    HeaderBytes    = headerBytes,
                    BoundaryBytes  = boundaryBytes,
                    Stream         = stream
                };
                httpRequest.BeginGetRequestStream(RequestStreamCallback, async);
            }
            catch (System.Exception ex)
            {
                if (callback != null)
                {
                    callback.ErrorHandler.Invoke(new BackendlessFault(ex.Message));
                }
                else
                {
                    throw;
                }
            }
        }