protected void GetRequestStreamCallback(IAsyncResult asynchronousResult) { WebRequest webRequest = (WebRequest)asynchronousResult.AsyncState; Stream postStream = webRequest.EndGetRequestStream(asynchronousResult); var formData = new Dictionary<string, string>(); using (var responseSetRepository = new ResponseSetRepository()) formData["surveyId"] = responseSetRepository.GetResponseSetForUserByID(_responseSetID).Survey.SystemID; Stream postDataStream = MultipartRequestFactory.GetMultipartRequestForResultUpload(formData, _boundary, _responseSetID, formData["surveyId"]); postDataStream.Position = 0; byte[] buffer = new byte[1024]; int bytesRead = 0; while ((bytesRead = postDataStream.Read(buffer, 0, buffer.Length)) != 0) { postStream.Write(buffer, 0, bytesRead); } postDataStream.Close(); postStream.Flush(); postStream.Close(); webRequest.BeginGetResponse(new AsyncCallback(SendResponseSetCallback), webRequest); }
protected void GetRequestStreamCallback(IAsyncResult asynchronousResult) { WebRequest webRequest = (WebRequest)asynchronousResult.AsyncState; Stream postStream = webRequest.EndGetRequestStream(asynchronousResult); var formData = new Dictionary <string, string>(); using (var responseSetRepository = new ResponseSetRepository()) formData["surveyId"] = responseSetRepository.GetResponseSetForUserByID(_responseSetID).Survey.SystemID; Stream postDataStream = MultipartRequestFactory.GetMultipartRequestForResultUpload(formData, _boundary, _responseSetID, formData["surveyId"]); postDataStream.Position = 0; byte[] buffer = new byte[1024]; int bytesRead = 0; while ((bytesRead = postDataStream.Read(buffer, 0, buffer.Length)) != 0) { postStream.Write(buffer, 0, bytesRead); } postDataStream.Close(); postStream.Flush(); postStream.Close(); webRequest.BeginGetResponse(new AsyncCallback(SendResponseSetCallback), webRequest); }
public string ParseResponseSetToRequestXml(int responseSetID) { using (var responseSetRepository = new ResponseSetRepository()) { var responseSet = responseSetRepository.GetResponseSetForUserByID(responseSetID); XDocument resultDocument = new XDocument(new XDeclaration("1.0", "utf-8", "yes")); XElement root = new XElement("data", new XAttribute("id", responseSet.Survey.SystemID), new XAttribute(XNamespace.Xmlns + "orx", Namespaces.JavaRosaMetaDataNamespace)); #region meta tag creation XElement meta = new XElement(Namespaces.JavaRosaMetaDataNamespace + "meta"); root.Add(meta); meta.Add(new XElement(Namespaces.JavaRosaMetaDataNamespace + "instanceID") { Value = responseSet.SystemID, }); meta.Add(new XElement(Namespaces.JavaRosaMetaDataNamespace + "deviceID") { Value = Convert.ToBase64String((byte[])DeviceExtendedProperties.GetValue("DeviceUniqueId")) }); meta.Add(new XElement(Namespaces.JavaRosaMetaDataNamespace + "timeStart") { Value = responseSet.DateSaved.Value.ToUniversalTime().ToString("yyyy-MM-ddThh:mm:ssZ", System.Globalization.CultureInfo.InvariantCulture) }); meta.Add(new XElement(Namespaces.JavaRosaMetaDataNamespace + "timeEnd") { Value = responseSet.DateModified.Value.ToUniversalTime().ToString("yyyy-MM-ddThh:mm:ssZ", System.Globalization.CultureInfo.InvariantCulture) }); if (GpsTracker.Instance.UserLocation != null && new SettingsRepository().GetCurrentSettings().IsGpsEnabled) meta.Add(new XElement(Namespaces.JavaRosaMetaDataNamespace + "geostamp") { Value = string.Format("{0} {1}", GpsTracker.Instance.UserLocation.Latitude, GpsTracker.Instance.UserLocation.Longitude), }); #endregion foreach (var category in responseSet.Survey.Category) { XElement categoryXElement = new XElement(category.SystemID); foreach (var question in category.Question) { XElement questionXElement = new XElement(question.SystemID); var answer = responseSetRepository.GetQuestionAnswerByQuestionAndResponseSet(question.ID, responseSetID); if (answer != null) questionXElement.Value = answer.AnswerText; else questionXElement.Value = question.Data.GetResult(); categoryXElement.Add(questionXElement); } root.Add(categoryXElement); } return root.ToString(); } }
private void InitializeViewModelExecute() { this._searchProcessor = new SearchProcessor(); this.SearchString = string.Empty; this.SubmittedResponses = new ObservableCollection <ResponseSet>(); this.SavedResponses = new ObservableCollection <ResponseSet>(); this.Surveys = new ObservableCollection <Survey>(); this.surveyRepository = new SurveyRepository(); this.responsesRepository = new ResponseSetRepository(); }
public ResponseSet UpdateResponseSetWithAnswers(System.Collections.Generic.IEnumerable <DataAccessModels.Category> categories, int responseSetID) { ResponseSet responseSet; using (var responseSetRepository = new ResponseSetRepository()) { var answersToAdd = new List <Answer>(); responseSet = responseSetRepository.GetResponseSetForUserByID(responseSetID); responseSet.IsCompleted = false; responseSet.DateModified = DateTime.Now; int incompletedAnswers = 0; int disabledQuestions = 0; foreach (var category in categories) { foreach (var question in category.Question) { var answer = responseSetRepository.GetQuestionAnswerByQuestionAndResponseSet(question.ID, responseSetID); incompletedAnswers++; if (question.Data.Validate()) { incompletedAnswers--; if (answer != null) { answer.AnswerText = question.Data.GetResult(); } else { answer = new DataAccessModels.Answer { AnswerText = question.Data.GetResult(), QuestionID = question.ID, ResponseSetID = responseSetID, }; answersToAdd.Add(answer); } } if (!question.Data.IsEnabled) { disabledQuestions++; } } } responseSet.Progress = Math.Ceiling((1 - ((double)incompletedAnswers / (categories.Sum(c => c.Question.Count) - disabledQuestions))) * 100); responseSet.IsCompleted = incompletedAnswers == 0; responseSetRepository.AddAnswersToResponseSet(answersToAdd, responseSetID); } return(responseSet); }
private void UploadResponseSetCallback(bool result) { if (result) { using (var responseSetRepository = new ResponseSetRepository()) { responseSetRepository.MarkResponseSetAsSubmitted(_responseSetIdToUpload); } } _uploadCallback.Invoke(result); }
private void InitializeViewModelExecute() { this.BusyCount++; Locator.NavigationStatic.NavigateToFilterCommand.RaiseCanExecuteChanged(); this.responseSetsWorker = new BackgroundWorker(); this.searchHelper.StartSearch(); this.responseRepository = new ResponseSetRepository(); this.SearchString = string.Empty; this.allResponses = new ObservableCollection <ResponseSet>(); this.responseSetsWorker.DoWork += new DoWorkEventHandler(this.LoadResponseSets); this.responseSetsWorker.RunWorkerAsync(); }
public ResponseSet UpdateResponseSetWithAnswers(System.Collections.Generic.IEnumerable<DataAccessModels.Category> categories, int responseSetID) { ResponseSet responseSet; using (var responseSetRepository = new ResponseSetRepository()) { var answersToAdd = new List<Answer>(); responseSet = responseSetRepository.GetResponseSetForUserByID(responseSetID); responseSet.IsCompleted = false; responseSet.DateModified = DateTime.Now; int incompletedAnswers = 0; int disabledQuestions = 0; foreach (var category in categories) foreach (var question in category.Question) { var answer = responseSetRepository.GetQuestionAnswerByQuestionAndResponseSet(question.ID, responseSetID); incompletedAnswers++; if (question.Data.Validate()) { incompletedAnswers--; if (answer != null) answer.AnswerText = question.Data.GetResult(); else { answer = new DataAccessModels.Answer { AnswerText = question.Data.GetResult(), QuestionID = question.ID, ResponseSetID = responseSetID, }; answersToAdd.Add(answer); } } if (!question.Data.IsEnabled) disabledQuestions++; } responseSet.Progress = Math.Ceiling((1 - ((double)incompletedAnswers / (categories.Sum(c => c.Question.Count) - disabledQuestions))) * 100); responseSet.IsCompleted = incompletedAnswers == 0; responseSetRepository.AddAnswersToResponseSet(answersToAdd, responseSetID); } return responseSet; }
public void PopulateCategoriesQuestionsWithResponseSetAnswers(System.Collections.Generic.IEnumerable <DataAccessModels.Category> categories, int responseSetID) { using (var responseSetRepository = new ResponseSetRepository()) { foreach (var category in categories) { foreach (var question in category.Question) { var answer = responseSetRepository.GetQuestionAnswerByQuestionAndResponseSet(question.ID, responseSetID); if (answer != null) { question.Data.SetResult(answer.AnswerText); } } } } }
public void PopulateCategoriesQuestionsWithResponseSetAnswers(System.Collections.Generic.IEnumerable<DataAccessModels.Category> categories, int responseSetID) { using (var responseSetRepository = new ResponseSetRepository()) { foreach (var category in categories) foreach (var question in category.Question) { var answer = responseSetRepository.GetQuestionAnswerByQuestionAndResponseSet(question.ID, responseSetID); if (answer != null) { question.Data.SetResult(answer.AnswerText); } } } }
private void InitializeViewModelExecute() { this.BusyCount++; this.IsSaveButtonVisible = true; Locator.NavigationStatic.NavigateToSaveResponsesCommand.RaiseCanExecuteChanged(); this.categoriesWorker = new BackgroundWorker(); this.CurrentPageIndex = QuestionPageIndexes.Questions; this.CurrentSurvey = new Survey(); this.currentResponsesSetId = 0; this.Categories = new ObservableCollection <Category>(); this.surveyRepository = new SurveyRepository(); this.categoryRepository = new CategoryRepository(); this.responseSetRepository = new ResponseSetRepository(); pageParameters = NavigationProvider.GetNavigationParameters(); categoriesWorker.DoWork += this.LoadContent; categoriesWorker.RunWorkerAsync(); }
public ResponseSet CreateNewResponseSetWithAnswers(System.Collections.Generic.IEnumerable <DataAccessModels.Category> categories, int surveyID, string responseSetName) { var responseSet = new ResponseSet { DateSaved = DateTime.Now, IsSubmitted = false, SurveyID = surveyID, UserID = Membership.CurrentUser.ID, SystemID = GenerateUniqueID(), Name = responseSetName, IsCompleted = false, Progress = 0, }; using (var responseSetRepository = new ResponseSetRepository()) { responseSetRepository.AddResponseSetToDB(responseSet); } return(UpdateResponseSetWithAnswers(categories, responseSet.ID)); }
public ResponseSet CreateNewResponseSetWithAnswers(System.Collections.Generic.IEnumerable<DataAccessModels.Category> categories, int surveyID, string responseSetName) { var responseSet = new ResponseSet { DateSaved = DateTime.Now, IsSubmitted = false, SurveyID = surveyID, UserID = Membership.CurrentUser.ID, SystemID = GenerateUniqueID(), Name = responseSetName, IsCompleted = false, Progress = 0, }; using (var responseSetRepository = new ResponseSetRepository()) { responseSetRepository.AddResponseSetToDB(responseSet); } return UpdateResponseSetWithAnswers(categories, responseSet.ID); }
public FilterProcessor() { _responseSetRepository = new ResponseSetRepository(); }
public string ParseResponseSetToRequestXml(int responseSetID) { using (var responseSetRepository = new ResponseSetRepository()) { var responseSet = responseSetRepository.GetResponseSetForUserByID(responseSetID); XDocument resultDocument = new XDocument(new XDeclaration("1.0", "utf-8", "yes")); XElement root = new XElement("data", new XAttribute("id", responseSet.Survey.SystemID), new XAttribute(XNamespace.Xmlns + "orx", Namespaces.JavaRosaMetaDataNamespace)); #region meta tag creation XElement meta = new XElement(Namespaces.JavaRosaMetaDataNamespace + "meta"); root.Add(meta); meta.Add(new XElement(Namespaces.JavaRosaMetaDataNamespace + "instanceID") { Value = responseSet.SystemID, }); meta.Add(new XElement(Namespaces.JavaRosaMetaDataNamespace + "deviceID") { Value = Convert.ToBase64String((byte[])DeviceExtendedProperties.GetValue("DeviceUniqueId")) }); meta.Add(new XElement(Namespaces.JavaRosaMetaDataNamespace + "timeStart") { Value = responseSet.DateSaved.Value.ToUniversalTime().ToString("yyyy-MM-ddThh:mm:ssZ", System.Globalization.CultureInfo.InvariantCulture) }); meta.Add(new XElement(Namespaces.JavaRosaMetaDataNamespace + "timeEnd") { Value = responseSet.DateModified.Value.ToUniversalTime().ToString("yyyy-MM-ddThh:mm:ssZ", System.Globalization.CultureInfo.InvariantCulture) }); if (GpsTracker.Instance.UserLocation != null && new SettingsRepository().GetCurrentSettings().IsGpsEnabled) { meta.Add(new XElement(Namespaces.JavaRosaMetaDataNamespace + "geostamp") { Value = string.Format("{0} {1}", GpsTracker.Instance.UserLocation.Latitude, GpsTracker.Instance.UserLocation.Longitude), }); } #endregion foreach (var category in responseSet.Survey.Category) { XElement categoryXElement = new XElement(category.SystemID); foreach (var question in category.Question) { XElement questionXElement = new XElement(question.SystemID); var answer = responseSetRepository.GetQuestionAnswerByQuestionAndResponseSet(question.ID, responseSetID); if (answer != null) { questionXElement.Value = answer.AnswerText; } else { questionXElement.Value = question.Data.GetResult(); } categoryXElement.Add(questionXElement); } root.Add(categoryXElement); } return(root.ToString()); } }
private void InitializeViewModelExecute() { this.BusyCount++; Locator.NavigationStatic.NavigateToFilterCommand.RaiseCanExecuteChanged(); this.responseSetsWorker = new BackgroundWorker(); this.searchHelper.StartSearch(); this.responseRepository = new ResponseSetRepository(); this.SearchString = string.Empty; this.allResponses = new ObservableCollection<ResponseSet>(); this.responseSetsWorker.DoWork += new DoWorkEventHandler(this.LoadResponseSets); this.responseSetsWorker.RunWorkerAsync(); }
public SearchProcessor() { _surveyRepository = new SurveyRepository(); _responseSetRepository = new ResponseSetRepository(); }