Ejemplo n.º 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);
                }
            }
        }
Ejemplo n.º 2
0
        public static async Task GetFilesAndForms(StatusDownloadFilesAndForms loghandler)
        {
            RequestData requestData = new RequestData();
            var         user        = DBLocalDataStore.GetInstance().GetLocalUserInfo();

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

            var jsonUser = JsonConvert.SerializeObject(requestData);

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

            try
            {
                httpWebRequest.ContentType = "application/json";
                httpWebRequest.Method      = "POST";
                httpWebRequest.ServicePoint.ConnectionLimit = 3;
                httpWebRequest.Timeout   = 30000;
                httpWebRequest.KeepAlive = false;

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

                var response = await httpWebRequest.GetResponseAsync();

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