コード例 #1
0
        private static void GetFilesAndFormsFromResponse(WebResponse response, StatusDownloadFilesAndForms loghandler)
        {
            var httpResponse = response.GetResponseStream();

            using (var streamReader = new StreamReader(httpResponse))
            {
                var result = streamReader.ReadToEnd();

                var receivedData = JsonConvert.DeserializeObject <CampaignAppUpdateRequestResult>(result);
                if (receivedData.success)
                {
                    if (receivedData.defaultForm != null)
                    {
                        DBLocalDataStore.GetInstance().AddLocalFormDefinitions(new[] { receivedData.defaultForm }, receivedData.defaultForm.uuid);
                    }
                    else
                    {
                        DBLocalDataStore.GetInstance().AddLocalFormDefinitions(receivedData.forms);
                    }

                    DBLocalDataStore.GetInstance().ClearAllFiles();
                    DBLocalDataStore.GetInstance().ClearAllFolders();
                    DBLocalDataStore.GetInstance().AddLocalFolders(receivedData.folders);
                    DBAppInfo appInfo = new DBAppInfo();

                    appInfo.appType           = (receivedData.appType != null) ? receivedData.appType.ToLower() : null;
                    appInfo.campaignReference = receivedData.campaignReference;

                    appInfo.welcomeImageURL  = (receivedData.welcomeScreenImage != null) ? receivedData.welcomeScreenImage.downloadUrl : null;
                    appInfo.finishedImageURL = (receivedData.finishedScreenImage != null) ? receivedData.finishedScreenImage.downloadUrl : null;

                    appInfo.welcomeImageFileType  = (receivedData.welcomeScreenImage != null) ? receivedData.welcomeScreenImage.fileType : null;
                    appInfo.finishedImageFileType = (receivedData.finishedScreenImage != null) ? receivedData.finishedScreenImage.fileType : null;

                    appInfo.welcomeImageLocalPath  = null;
                    appInfo.finishedImageLocalPath = null;

                    appInfo.welcomeImageMD5  = (receivedData.welcomeScreenImage != null) ? receivedData.welcomeScreenImage.md5 : null;
                    appInfo.finishedImageMD5 = (receivedData.finishedScreenImage != null) ? receivedData.finishedScreenImage.md5 : null;

                    DBLocalDataStore.GetInstance().SetAppInfo(appInfo);

                    if (receivedData.folders.Length == 0)
                    {
                        DBLocalDataStore.GetInstance().ShowLocalFiles(true);
                    }
                    else
                    {
                        DBLocalDataStore.GetInstance().ShowLocalFiles(false);
                    }

                    loghandler(true, "Files and forms updated from server", appInfo.appType.ToLower().Equals("kiosk"));
                }
                else
                {
                    loghandler(false, receivedData.error, false);
                }
            }
        }
コード例 #2
0
        public static async Task <DBlocalContact> contactLookup(string contactUID)
        {
            Console.Error.WriteLine("Lookup started at: {0:HH:mm:ss.ffff}", DateTime.Now);

            DBAppInfo appInfo = DBLocalDataStore.GetInstance().GetAppInfo();

            var user = DBLocalDataStore.GetInstance().GetLocalUserInfo();

            LookupContext lookup = new LookupContext(contactUID);

            lookup.context = new RequestData();
            var output = lookup.context;

            output.password          = user.password;
            output.username          = user.username;
            output.profile           = DBLocalDataStore.GetInstance().GetSelectProfile().shortName;
            output.tags              = new string[] { user.tags };
            output.campaignReference = appInfo.campaignReference;

            var jsonUser = JsonConvert.SerializeObject(lookup);

            var httpWebRequest = (HttpWebRequest)WebRequest.Create(ServerURLs.contactLookupURL);

            try
            {
                //throw new Exception("TEST EXCEPTION");
                httpWebRequest.ContentType = "application/json";
                httpWebRequest.Method      = "POST";
                httpWebRequest.Timeout     = 30000;
                httpWebRequest.KeepAlive   = false;

                using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
                {
                    streamWriter.Write(jsonUser);
                }

                var response = await httpWebRequest.GetResponseAsync();

                return(NetworkRequests.getContactFromLookup(response));
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine(ex.Message);
                throw;
            }
            finally
            {
                Console.Error.WriteLine("Lookup finished at: {0:HH:mm:ss.ffff}", DateTime.Now);
                httpWebRequest.Abort();
            }
        }
コード例 #3
0
        public static async Task GetContacts(StatusDownload loghandler)
        {
            SyncContext scr = new SyncContext();

            DBAppInfo appInfo = DBLocalDataStore.GetInstance().GetAppInfo();

            var user = DBLocalDataStore.GetInstance().GetLocalUserInfo();

            scr.context = new RequestData();
            var output = scr.context;

            output.password          = user.password;
            output.username          = user.username;
            output.profile           = DBLocalDataStore.GetInstance().GetSelectProfile().shortName;
            output.tags              = new string[] { user.tags };
            output.campaignReference = appInfo.campaignReference;

            var jsonUser = JsonConvert.SerializeObject(scr);

            var httpWebRequest = (HttpWebRequest)WebRequest.Create(ServerURLs.contactsURLNew);

            try
            {
                //throw new Exception("TEST EXCEPTION");
                httpWebRequest.ContentType = "application/json";
                httpWebRequest.Method      = "POST";
                httpWebRequest.Timeout     = 30000;
                httpWebRequest.KeepAlive   = false;

                using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
                {
                    streamWriter.Write(jsonUser);
                }

                var response = await httpWebRequest.GetResponseAsync();

                NetworkRequests.GetContactsFromResponse(response, loghandler);
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine(ex.Message);
                throw;
            }
            finally
            {
                httpWebRequest.Abort();
            }
        }