Example #1
0
        /// <summary>
        /// Action method to save the rule data to the database
        /// </summary>
        /// <param name="ruleModel">Rule view Model</param>
        /// <returns>Status of the operation as json result.</returns>
        public JsonResult SaveRule(QCRuleViewModel ruleModel)
        {
            string message = string.Empty;
            bool status = false;
            if (ruleModel != null)
            {
                QualityCheck qcModel = new QualityCheck();
                qcModel = ruleModel.SetValuesTo(qcModel);

                // serlize the data file before passing to API
                string qcRuleData = qcModel.SerializeObject<QualityCheck>("qcRuleModel");
                JavaScriptSerializer jsSerializer = new JavaScriptSerializer();

                webClientManager = new WebClientRequestManager();

                // Checking for the duplicate rule name
                string responseDupruleName = webClientManager.UploadValues(new RequestParams()
                {
                    RequestURL = string.Concat(BaseController.BaseWebApiQCPath + "?ruleName=" + qcModel.Name),
                    RequestMode = RequestMode.POST
                });

                int ruleResult = jsSerializer.Deserialize<int>(responseDupruleName);

                if (ruleResult == 0 || ruleModel.QCRuleId == ruleResult)
                {
                    NameValueCollection values = new NameValueCollection();
                    values.Add("qcRuleModel", qcRuleData.EncodeTo64());

                    string responseString = webClientManager.UploadValues(new RequestParams()
                    {
                        RequestURL = string.Concat(BaseController.BaseWebApiQCPath),
                        RequestMode = RequestMode.POST,
                        Values = values
                    });


                    bool postResult = jsSerializer.Deserialize<bool>(responseString);

                    if (postResult)
                    {
                        status = true;
                    }
                    else
                    {
                        ViewBag.ErrorMessage = Messages.QualityCheckErrorMsg;
                        status = false;
                        message = Messages.QualityCheckErrorMsg;
                    }
                }
                else
                {
                    status = false;
                    message = Messages.DuplicateRuleMsg;
                }
            }
            else
            {
                status = false;
                message = Messages.QualityCheckErrorMsg;
            }

            return Json(new { Status = status, Message = message });
        }