public ChildInformationpageViewModel(int offlineStudentId) { productResearchCodeValuesService = DependencyService.Get <IProductResearchCodeValuesService>(); productResearchCodesService = DependencyService.Get <IProductResearchCodesService>(); userPermissionService = DependencyService.Get <IUserPermissionService>(); studentTestFormsService = DependencyService.Get <IStudentTestFormsService>(); commonDataService = DependencyService.Get <ICommonDataService>(); locationService = DependencyService.Get <ILocationService>(); clinicalTestFormService = DependencyService.Get <IClinicalTestFormService>(); OfflineStudentId = offlineStudentId; EditCommand = new Command(EditClicked); AddNewRecordCommand = new Command(AddNew); HyperLinkClickedCommand = new Xamarin.Forms.Command <ChildInformationRecord>(HyperlinkClicked); _studentService = DependencyService.Get <IStudentsService>(); _tokenService = DependencyService.Get <ITokenService>(); var tokenModel = _tokenService.GetTokenResposne(); if (tokenModel != null) { UserFullName = "" + tokenModel.FirstName + " " + "" + tokenModel.LastName + ""; } FailedString = "Failed: 0"; PendingString = "Pending: 0"; Task.Run(async() => { await LoadData(OfflineStudentId); }); LoadTestRecordsFromDB(OfflineStudentId); if (Connectivity.NetworkAccess != NetworkAccess.Internet) { foreach (var child in ChildInformationRecords) { child.EnableRow = false; } EnableSync = false; } else { if (ChildInformationRecords.Any(p => p.Status != "Not started") && ChildInformationRecords.Any(p => p.IsSelect)) { EnableSync = true; } } Connectivity.ConnectivityChanged -= Connectivity_ConnectivityChanged; Connectivity.ConnectivityChanged += Connectivity_ConnectivityChanged; commonDataService.ClearAddChildContent = ResetContent; }
public void LoadTestRecordsFromDB(int offlineStudentId) { var studentTestRecordForms = new List <ChildInformationRecord>(); var testRecords = (clinicalTestFormService.GetStudentTestFormsByStudentID(offlineStudentId)); var recordForm = ""; foreach (var testRecord in testRecords) { var obj = testRecord.formParameters != null?JObject.Parse(testRecord.formParameters) : null; if (obj != null) { var dateOfTesting = (DateTime)obj.SelectToken("TestDate"); if (testRecord.assessmentId == AssignmentTypes.BattelleDevelopmentalCompleteID) { recordForm = AssignmentTypes.BattelleDevelopmentalCompleteString; } else if (testRecord.assessmentId == AssignmentTypes.BattelleDevelopmentalScreenerID) { recordForm = AssignmentTypes.BattelleDevelopmentScreenerString; } else { recordForm = AssignmentTypes.BattelleEarlyAcademicSurveyString; } var formParametersObj = JsonConvert.DeserializeObject <FormParamterClass>(testRecord.formParameters); studentTestRecordForms.Add(new ChildInformationRecord() { Status = testRecord.FormStatus, AssesmentId = testRecord.assessmentId, LocalTestInstance = testRecord.LocalTestRecodId, RecordForm = recordForm, InitialTestDate = dateOfTesting.Date.ToString("MM/dd/yyyy"), SyncStatus = testRecord.SyncStausDesc, StatusCode = testRecord.SyncStausCode, EnableRow = ((testRecord.FormStatus == "Not started" && Xamarin.Essentials.Connectivity.NetworkAccess == Xamarin.Essentials.NetworkAccess.Internet) || (testRecord.FormStatus == "Saved" && Xamarin.Essentials.Connectivity.NetworkAccess != Xamarin.Essentials.NetworkAccess.Internet) || (testRecord.FormStatus == "In-Progress" && Xamarin.Essentials.Connectivity.NetworkAccess != Xamarin.Essentials.NetworkAccess.Internet) ? false : true) }); } } ChildInformationRecords.Clear(); IsSelectAll = false; ChildInformationRecords = studentTestRecordForms; IsTableBottomLineVisible = ChildInformationRecords.Any(); }
private void Connectivity_ConnectivityChanged(object sender, ConnectivityChangedEventArgs e) { if (e.NetworkAccess == NetworkAccess.None || e.NetworkAccess == NetworkAccess.Unknown) { EnableSync = false; if (IsSelectAll) { IsSelectAll = false; } foreach (var child in ChildInformationRecords) { if (child.IsSelect) { child.IsSelect = false; } if (child.EnableRow) { child.EnableRow = false; } } } else if (ChildInformationRecords != null && ChildInformationRecords.Any()) { if (ChildInformationRecords.Any(p => p.IsSelect)) { EnableSync = true; } foreach (var child in ChildInformationRecords) { if (child.Status != "Not started") { if (!child.EnableRow) { child.EnableRow = true; } } } } }
public void CheckBoxChanged(bool isChecked) { var count = ChildInformationRecords.Count(p => p.IsSelect); if (count > 0) { EnableSync = true; } else { EnableSync = false; } var sortedRecordCount = ChildInformationRecords.Count(p => p.Status == "Saved") + ChildInformationRecords.Count(p => p.Status == "In-Progress"); if (count == 1 && sortedRecordCount == 1) { _isSelectAll = true; } else if (count == sortedRecordCount) { _isSelectAll = true; } else if (count == 0 && sortedRecordCount >= 1) { _isSelectAll = false; } else if (count <= 0) { _isSelectAll = false; } else { _isSelectAll = false; } //_isSelectAll = count == ChildInformationRecords.Count; OnPropertyChanged(nameof(IsSelectAll)); }
public async Task CommitTestRecord() { await PopupNavigation.Instance.PopAllAsync(); UserDialogs.Instance.ShowLoading("Loading..."); await Task.Delay(300); var username = Convert.ToString(Application.Current.Properties["UserName"]); var password = Convert.ToString(Application.Current.Properties["PassID"]); try { var response = await new BDIWebServices().LoginUser(new { username = username.Trim(), password = password.Trim() }); if (response != null) { if (!string.IsNullOrEmpty(response.StatusCode)) { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync("Sync Failed!"); return; } } } catch (Exception ex) { UserDialogs.Instance.HideLoading(); if (!string.IsNullOrEmpty(ex.Message) && ex.Message == "User Don't have BDI product") { await UserDialogs.Instance.AlertAsync("You Don't have BDI product access. Please contact Admin"); } else { await UserDialogs.Instance.AlertAsync("Sync Failed!"); } return; } UserDialogs.Instance.HideLoading(); UserDialogs.Instance.ShowLoading("Syncing Data to server..."); var lstStudents = new List <Students>(); var selectedRecords = new List <ChildInformationRecord>(); if (!isIndividual) { selectedRecords = ChildInformationRecords.Where(p => p.IsSelect).ToList(); } else { selectedRecords = new List <ChildInformationRecord>(); selectedRecords.Add(SelectedRecord); } if (selectedRecords != null && selectedRecords.Any()) { var groupedRecords = selectedRecords; if (groupedRecords != null && groupedRecords.Any()) { var lstSync = new List <SyncChild>(); var orgID = Convert.ToInt32(Application.Current.Properties["OrgnazationID"]); var researchCodes = productResearchCodesService.GetResearchCodesByOrg(orgID); var localStudent = _studentService.GetStudentById(OfflineStudentId); var researchCodesValues = productResearchCodeValuesService.GetProductResearchCodes(OfflineStudentId); var syncChild = new SyncChild(); int addedBy; var isSuccess = int.TryParse(Application.Current.Properties["UserID"].ToString(), out addedBy); if (localStudent != null) { lstStudents.Add(localStudent); localStudent.LocalTestFormIds = string.Join(",", selectedRecords.ToList().Select(p => p.LocalTestInstance)); var data = localStudent; var userRecord = userservice.GetUserByID(addedBy); syncChild.DeviceId = userRecord.DeviceId; lstSync.Add(syncChild); syncChild.SkipUpdate = localStudent.IsSynced; syncChild.LocalChildUserId = data.OfflineStudentID; syncChild.ChildId = data.ChildID; if (!string.IsNullOrEmpty(data.UserId)) { syncChild.UserId = Convert.ToInt32(data.UserId); } syncChild.OrganizationId = orgID; syncChild.DateOfBirth = data.Birthdate.Month + "/" + data.Birthdate.Day + "/" + data.Birthdate.Year; syncChild.EnrollmentDate = data.EnrollmentDate == DateTime.MinValue ? null : data.EnrollmentDate.Month + "/" + data.EnrollmentDate.Day + "/" + data.EnrollmentDate.Year; if (!string.IsNullOrEmpty(data.SelectedEthnictyIds)) { syncChild.EthnicityId = Convert.ToInt32(data.SelectedEthnictyIds); } syncChild.FirstName = data.FirstName; syncChild.LastName = data.LastName; syncChild.MiddleName = data.MiddleName; syncChild.ParentGuardianEmail1 = data.ParentEmailAddress1; syncChild.ParentGuardianEmail2 = data.ParentEmailAddress2; syncChild.ParentGuardianName1 = data.ParentGuardian1; syncChild.ParentGuardianName2 = data.ParentGuardian2; if (!string.IsNullOrEmpty(data.SelectedLanguageIds)) { syncChild.PrimaryLanguageId = Convert.ToInt32(data.SelectedLanguageIds); } if (!string.IsNullOrEmpty(data.SelectedRaceIds)) { syncChild.RaceIds = data.SelectedRaceIds.Split(',').Select(p => Convert.ToInt32(p)).ToList(); } syncChild.FreeLunch = Convert.ToBoolean(data.IsFreeLunch); if (!string.IsNullOrEmpty(data.SelectedFundingSourceIds)) { syncChild.FundingResourceIds = data.SelectedFundingSourceIds.Split(',').Select(p => Convert.ToInt32(p)).ToList(); } syncChild.GenderId = data.Gender; syncChild.Iep = Convert.ToBoolean(data.IsIEP); syncChild.Ifsp = Convert.ToBoolean(data.IsIFSP); syncChild.LocationId = data.SelectedLocationId.Value; syncChild.CreatedDate = data.updatedOn; syncChild.researchCodeNames = new List <SyncResearchCodeName>(); syncChild.ResearchCodeValues = new List <SyncResearchCodeValue>(); if (Convert.ToBoolean(data.IsIEP)) { syncChild.IepEligibilityDate = data.IEPEligibilityDate == DateTime.MinValue ? null : data.IEPEligibilityDate.Month + "/" + data.IEPEligibilityDate.Day + "/" + data.IEPEligibilityDate.Year; syncChild.IepExitDate = data.IEPExitDate == DateTime.MinValue ? null : data.IEPExitDate.Month + "/" + data.IEPExitDate.Day + "/" + data.IEPExitDate.Year; } if (Convert.ToBoolean(data.IsIFSP)) { syncChild.IfspEligibilityDate = data.IFSPEligibilityDate == DateTime.MinValue ? null : data.IFSPEligibilityDate.Month + "/" + data.IFSPEligibilityDate.Day + "/" + data.IFSPEligibilityDate.Year; syncChild.IfspExitDate = data.IFSPExitDate == DateTime.MinValue ? null : data.IFSPExitDate.Month + "/" + data.IFSPExitDate.Day + "/" + data.IFSPExitDate.Year; } if (Convert.ToBoolean(data.IsIEP) || Convert.ToBoolean(data.IsIFSP)) { if (!string.IsNullOrEmpty(data.SelectedPrimaryDiagnosesIds)) { syncChild.PrimaryDiagnosesId = Convert.ToInt32(data.SelectedPrimaryDiagnosesIds); } if (!string.IsNullOrEmpty(data.SelectedSecondaryDiagnosesIds)) { syncChild.SecondaryDiagnosesId = Convert.ToInt32(data.SelectedSecondaryDiagnosesIds); } } foreach (var codes in researchCodes) { syncChild.researchCodeNames.Add(new SyncResearchCodeName() { Name = codes.ValueName, ResearchCodeId = codes.ResearchCodeId }); } foreach (var codevalues in researchCodesValues) { syncChild.ResearchCodeValues.Add(new SyncResearchCodeValue() { ResearchCodeId = codevalues.ResearchCodeId, ResearchCodeValueId = codevalues.ResearchCodeValueId, Value = codevalues.value }); } } syncChild.TestRecords = new List <SyncTestRecord>(); foreach (var inneritem in selectedRecords) { var testRecord = clinicalTestFormService.GetStudentTestFormsByID(inneritem.LocalTestInstance); if (testRecord != null) { var newSyncTestRecord = new SyncTestRecord(); syncChild.TestRecords.Add(newSyncTestRecord); newSyncTestRecord.AdditionalNotes = testRecord.additionalNotes; newSyncTestRecord.Notes = testRecord.notes; newSyncTestRecord.AssessmentId = testRecord.assessmentId; newSyncTestRecord.CreateDate = Convert.ToString(testRecord.createDate.Value); newSyncTestRecord.CreatedByUserId = addedBy; newSyncTestRecord.FormParameters = testRecord.formParameters; newSyncTestRecord.LocalFormInstanceId = testRecord.LocalTestRecodId; newSyncTestRecord.ContentCategories = new List <SyncContentCategory>(); var records = studentTestFormsService.GetStudentTestForms(testRecord.LocalTestRecodId); if (records != null && records.Any()) { foreach (var record in records) { var newContentCatgory = new SyncContentCategory(); newContentCatgory.ContentCategoryId = record.contentCategoryId; newContentCatgory.CreateDate = Convert.ToString(record.createDate.Value); newContentCatgory.ExaminerId = record.examinerId.Value; newContentCatgory.Order = commonDataService.TotalCategories.FirstOrDefault(p => p.contentCategoryId == record.contentCategoryId).sequenceNo; newContentCatgory.Notes = record.Notes; newContentCatgory.TimeTaken = record.TimeTaken; newContentCatgory.RawScore = record.rawScore; newContentCatgory.ItemScore = record.rawScoreEnabled ? 0 : 1; newContentCatgory.Status = record.TSOStatus == "Saved" ? 1 : 0; newContentCatgory.AgeInMonths = CalculateAgeDiff(lstStudents.FirstOrDefault().Birthdate); newContentCatgory.TestDate = record.testDate; var testformResponse = studentTestFormResponsesService.GetStudentTestFormResponses(testRecord.LocalTestRecodId); var itemResponse = testformResponse.FirstOrDefault(p => p.ContentCategoryId == record.contentCategoryId); if (itemResponse != null) { newContentCatgory.ItemLevelResponse = new SyncItemLevelResponse(); newContentCatgory.ItemLevelResponse.CreatedBy = addedBy; newContentCatgory.ItemLevelResponse.SectionId = JsonConvert.DeserializeObject <FormJsonClass>(newSyncTestRecord.FormParameters).sectionId; newContentCatgory.ItemLevelResponse.Response = itemResponse.Response; newContentCatgory.ItemLevelResponse.CreatedOn = Convert.ToString(itemResponse.CreatedOn.Value); newSyncTestRecord.ContentCategories.Add(newContentCatgory); } } } } } if (lstSync != null && lstSync.Any()) { var response = await new BDIWebServices().SyncTestRecords(lstSync, ShowError); if (response != null && response.Any()) { foreach (var item in response) { if (item.StatusCode == SyncTestRecordStatusCode.Success) { clinicalTestFormService.DeleteTestFormByLocalID(item.LocalFormInstanceId); studentTestFormsService.DeleteAll(item.LocalFormInstanceId); studentTestFormResponsesService.DeleteAll(item.LocalFormInstanceId); if (lstStudents.Any(p => p.LocalTestFormIds.Split(',').Contains(item.LocalFormInstanceId + ""))) { var student = lstStudents.FirstOrDefault(p => p.LocalTestFormIds.Split(',').Contains(item.LocalFormInstanceId + "")); if (student != null && string.IsNullOrEmpty(student.UserId)) { student.UserId = item.ChildUserId.Value.ToString(); student.updatedOn = DateTime.Now.ToUniversalTime().ToString(); student.updatedOnUTC = DateTime.Now.ToUniversalTime().ToString(); _studentService.Update(student); } } if (item.ResearchCodeValues != null && item.ResearchCodeValues.Any()) { var student = lstStudents.FirstOrDefault(p => p.LocalTestFormIds.Split(',').Contains(item.LocalFormInstanceId + "")); var localCodeValues = productResearchCodeValuesService.GetProductResearchCodes(student.OfflineStudentID); var lstResearchCodeValues = new List <ProductResearchCodeValues>(); foreach (var innerItem in localCodeValues) { innerItem.ResearchCodeValueId = item.ResearchCodeValues.FirstOrDefault(p => p.ResearchCodeId == innerItem.ResearchCodeId).ResearchCodeValueId; } productResearchCodeValuesService.DeleteByStudentId(item.LocalChildUserId); productResearchCodeValuesService.InsertAll(localCodeValues); } } else { if (lstStudents.Any(p => p.LocalTestFormIds.Split(',').Contains(item.LocalFormInstanceId + ""))) { var student = lstStudents.FirstOrDefault(p => p.LocalTestFormIds.Split(',').Contains(item.LocalFormInstanceId + "")); if (item.ChildUserId.HasValue) { if (student != null && string.IsNullOrEmpty(student.UserId)) { student.UserId = item.ChildUserId.Value.ToString(); student.updatedOn = DateTime.Now.ToUniversalTime().ToString(); student.updatedOnUTC = DateTime.Now.ToUniversalTime().ToString(); _studentService.Update(student); } } } if (item.ResearchCodeValues != null && item.ResearchCodeValues.Any() && item.ChildUserId.HasValue) { var student = lstStudents.FirstOrDefault(p => p.LocalTestFormIds.Split(',').Contains(item.LocalFormInstanceId + "")); var localCodeValues = productResearchCodeValuesService.GetProductResearchCodes(student.OfflineStudentID); var lstResearchCodeValues = new List <ProductResearchCodeValues>(); foreach (var innerItem in localCodeValues) { innerItem.ResearchCodeValueId = item.ResearchCodeValues.FirstOrDefault(p => p.ResearchCodeId == innerItem.ResearchCodeId).ResearchCodeValueId; } productResearchCodeValuesService.DeleteByStudentId(item.LocalChildUserId); productResearchCodeValuesService.InsertAll(localCodeValues); } clinicalTestFormService.UpdateSyncStatus((int)item.StatusCode, item.LocalFormInstanceId); } } LoadTestRecordsFromDB(OfflineStudentId); UserDialogs.Instance.HideLoading(); } } } } }