View model class for quality check header.
        /// <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);
            }
        }
示例#2
0
        /// <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;
        }