コード例 #1
0
ファイル: CrimsSync.cs プロジェクト: henryvalentine/CRIMS
        private async void buttonLoadRecords_Click(object sender, EventArgs e)
        {
            ResetUi();

            //Sync Approvals from Remote(Site) Server
            toolStripStatusLabel.Text = @"Checking for and synchronising Approvals if any. Please Wait...";
            //DatabaseOpperations.SyncApprovals();

            toolStripStatusLabel.Text = @"Loading data to be synchronised. Please Wait...";
            //var totalRecords = DatabaseOpperations.GetTotalRecordCount();
            var reasons = new List <FingerprintReason>();
            var result  = await Task.Run(() =>
            {
                SyncBacklogInput input = new SyncBacklogInput
                {
                    SyncMode     = GetSyncMode(),
                    FilterStart  = dateTimePickerFrom.Value,
                    FilterEnd    = dateTimePickerTo.Value,
                    EnrollmentId = textBoxRecordID.Text
                };

                //Load data whose ApprovalStatus == pending for synchronisation using the filter option : 'input'
                return(DatabaseOpperations.GetSyncBacklog(new Project(), input, out reasons));
            });

            //Retrieve BaseData Result
            _BaseDatas = result;

            //Display Result Count on the Screen
            //labelTotalRecords.Text = totalRecords.ToString();
            labelRecordInSyncQueue.Text = _BaseDatas.Any() ? _BaseDatas.Count().ToString() : "0";

            toolStripStatusLabel.Text = @"Loading Completed";
            DisableUI(true);
        }
コード例 #2
0
ファイル: CrimsSync.cs プロジェクト: henryvalentine/CRIMS
        private async Task <List <EnrollmentBackup> > InitExport()
        {
            try
            {
                ResetExportUi();
                toolStripStatusLabel.Text = @"Loading data for Export. Please Wait...";
                var result = await Task.Run(() =>
                {
                    var backupMode = GetBackUpMode();
                    if (backupMode == SyncMode.Specific)
                    {
                        if (string.IsNullOrEmpty(txtSingleBackup.Text))
                        {
                            MessageBox.Show(@"Please provide the specific EnrolleeId for Export");
                            return(new List <EnrollmentBackup>());
                        }
                    }

                    var input = new SyncBacklogInput
                    {
                        SyncMode     = GetBackUpMode(),
                        FilterStart  = backupStartDate.Value,
                        FilterEnd    = backupEndDate.Value,
                        EnrollmentId = txtSingleBackup.Text
                    };

                    //Load data for backup using the filter option : 'input'
                    return(DatabaseOpperations.GenerateBackup(new Project(), input));
                });

                //Display Result Count on the Screen
                lblTotalExport.Text       = result.Count.ToString();
                toolStripStatusLabel.Text = @"Data Loading Completed";
                return(result);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                return(new List <EnrollmentBackup>());
            }
        }
コード例 #3
0
ファイル: CrimsSync.cs プロジェクト: henryvalentine/CRIMS
        private async Task <string> SyncEnrollmentDataForms(string destinationUrl, string projectCode)
        {
            try
            {
                if (!_BaseDatas.Any())
                {
                    MessageBox.Show(@"Please Click on the 'Sync Approvals and Load Records' button!");
                    return(string.Empty);
                }

                var subfolders = new List <string>();
                var input      = new SyncBacklogInput
                {
                    SyncMode     = GetBackUpMode(),
                    FilterStart  = backupStartDate.Value,
                    FilterEnd    = backupEndDate.Value,
                    EnrollmentId = txtSingleBackup.Text
                };

                if (input.SyncMode == SyncMode.Specific)
                {
                    subfolders = new List <string> {
                        Path.Combine(Settings.Default.SavedFilesDir, input.EnrollmentId)
                    };
                }

                if (input.SyncMode == SyncMode.Filtered || input.SyncMode == SyncMode.AllPending)
                {
                    subfolders = new List <string>();
                    _BaseDatas.ForEach(b =>
                    {
                        subfolders.Add(Path.Combine(Settings.Default.SavedFilesDir, b.EnrollmentId));
                    });
                }

                if (!subfolders.Any())
                {
                    MessageBox.Show(@"There are no data forms to synchronise.");
                    return(string.Empty);
                }
                var message = new HttpRequestMessage();
                var content = new MultipartFormDataContent();
                subfolders.ForEach(d =>
                {
                    var myFiles = Directory.GetFiles(d);
                    if (myFiles.Any())
                    {
                        var dirName = new DirectoryInfo(d).Name;
                        if (!string.IsNullOrEmpty(dirName))
                        {
                            var files = myFiles.Where(s =>
                            {
                                var fileName = Path.GetFileName(s);
                                return(fileName != null && fileName.Contains(dirName.Replace("-", "") + "_dataForm"));
                            }).ToList();

                            if (files.Any())
                            {
                                var filestream = new FileStream(files[0], FileMode.Open);
                                var fName      = Path.GetFileName(files[0]);
                                content.Add(new StreamContent(filestream), dirName, fName);
                            }
                        }
                    }
                });
                if (!content.Any())
                {
                    MessageBox.Show(@"The data forms to be synchronised could not be retrieved.");
                    return(string.Empty);
                }
                message.Method     = HttpMethod.Post;
                message.Content    = content;
                message.RequestUri = new Uri(destinationUrl + "?projectCode=" + projectCode);
                var    client = new HttpClient();
                string ty     = null;
                await client.SendAsync(message).ContinueWith(task =>
                {
                    if (task.Result.IsSuccessStatusCode)
                    {
                        ty = task.Result.Content.ReadAsStringAsync().Result;
                    }
                    return(string.Empty);
                });

                return(ty);
            }
            catch (Exception ex)
            {
                return(string.Empty);
            }
        }