/// <summary> /// Extension method class for quality check rule viewmodel. /// </summary> /// <param name="rule">Quality check rule view model.</param> /// <param name="qualityCheck">Quality check model.</param> /// <param name="lstQCColumnTypes">Quality check column types.</param> public static void SetValuesFrom(this QCRuleViewModel rule, QualityCheckModel qualityCheck, IEnumerable<QualityCheckColumnType> lstQCColumnTypes) { Check.IsNotNull<QCRuleViewModel>(rule, "qcRuleViewModel"); Check.IsNotNull<QualityCheckModel>(qualityCheck, "qualityCheckModel"); Check.IsNotNull<QualityCheck>(qualityCheck.QualityCheckData, "qualityCheck"); rule.CreatedDate = qualityCheck.QualityCheckData.CreatedOn.ToClientTime().ToString(); rule.CreatedUser = qualityCheck.CreatedUser; rule.IsOrderRequired = qualityCheck.QualityCheckData.EnforceOrder == null ? false : Convert.ToBoolean(qualityCheck.QualityCheckData.EnforceOrder); rule.IsVisibleToAll = qualityCheck.QualityCheckData.IsVisibleToAll == null ? true : Convert.ToBoolean(qualityCheck.QualityCheckData.IsVisibleToAll); rule.QCRuleDescription = qualityCheck.QualityCheckData.Description; rule.QCRuleId = qualityCheck.QualityCheckData.QualityCheckId; rule.QCRuleName = qualityCheck.QualityCheckData.Name; rule.CreatedBy = qualityCheck.QualityCheckData.CreatedBy; rule.VisibilityOption = (qualityCheck.QualityCheckData.IsVisibleToAll != null && qualityCheck.QualityCheckData.IsVisibleToAll == true) ? 1 : 2; foreach (var columnRule in qualityCheck.QualityCheckData.QualityCheckColumnRules) { QCHeaderViewModel headerModel = new QCHeaderViewModel(); headerModel.ColumnTypeId = columnRule.QualityCheckColumnTypeId; headerModel.ErrorMessage = columnRule.ErrorMessage; headerModel.HeaderName = columnRule.HeaderName; headerModel.IsRequired = columnRule.IsRequired == null ? false : Convert.ToBoolean(columnRule.IsRequired); headerModel.QCColumnRuleId = columnRule.QualityCheckColumnRuleId; headerModel.Order = columnRule.Order; headerModel.QCColumnTypes = new SelectList(lstQCColumnTypes, "QualityCheckColumnTypeId", "Name", columnRule.QualityCheckColumnTypeId); if (!string.IsNullOrWhiteSpace(columnRule.Range)) { var rangeArray = columnRule.Range.Split(new string[] { Utilities.Constants.RangeSeparator }, StringSplitOptions.None); headerModel.RangeStart = rangeArray[0]; headerModel.RangeEnd = rangeArray[1]; } rule.LstHeaderNames.Add(headerModel); } }
/// <summary> /// Helper method to get the single rule view model. /// </summary> /// <param name="id">Quality check id.</param> /// <returns>Quality check rule view model.</returns> private QCRuleViewModel GetQCRuleViewModel(int id) { QCRuleViewModel ruleModel = new QCRuleViewModel(); // create the object of HttpWeb Request Manager webRequestManager = new HttpWebRequestManager(); // set the request details to get repostiry list webRequestManager.SetRequestDetails(new RequestParams() { RequestURL = string.Concat(BaseController.BaseWebApiFilePath, "?type=QCCOLUMNTYPES"), }); string columnTypeJson = webRequestManager.RetrieveWebResponse(); JavaScriptSerializer jsSerializer = new JavaScriptSerializer(); jsSerializer.MaxJsonLength = int.MaxValue; var lstQCColumnTypes = jsSerializer.Deserialize<IEnumerable<QualityCheckColumnType>>(columnTypeJson); if (id > 0) { // set the request details to get file list webRequestManager.SetRequestDetails(new RequestParams() { RequestURL = string.Concat(BaseController.BaseWebApiQCPath + id), }); string qcRuleList = webRequestManager.RetrieveWebResponse(); var qualityCheckData = jsSerializer.Deserialize<QualityCheckModel>(qcRuleList); ruleModel.SetValuesFrom(qualityCheckData, lstQCColumnTypes); } else { QCHeaderViewModel headerModel = new QCHeaderViewModel(); headerModel.QCColumnTypes = new SelectList(lstQCColumnTypes, "QualityCheckColumnTypeId", "Name"); headerModel.Order = 1; ruleModel.LstHeaderNames.Add(headerModel); } return ruleModel; }