/// <summary> /// Action method to delete the selected repository. /// </summary> /// <param name="repositoryId">Repository id.</param> /// <returns>Status of the opeartion as json result.</returns> public JsonResult DeleteRepository(int repositoryId) { string message = string.Empty; bool status = false; if (repositoryId > 0) { webClientManager = new WebClientRequestManager(); string responseString = webClientManager.UploadValues(new RequestParams() { RequestURL = string.Concat(BaseController.BaseWebApiRepositoryPath + repositoryId), RequestMode = RequestMode.DELETE }); JavaScriptSerializer jsSerializer = new JavaScriptSerializer(); bool postResult = jsSerializer.Deserialize<bool>(responseString); if (postResult) { status = true; } else { ViewBag.ErrorMessage = Messages.RepositoryErrMsg; status = false; message = Messages.RepositoryErrMsg; } } else { status = false; message = Messages.RepositoryErrMsg; } return Json(new { Status = status, Message = message }); }
/// <summary> /// Action method to save the repository data to the database. /// </summary> /// <param name="repositoryViewModel">Repository viewmodel.</param> /// <returns>Json result with the status.</returns> public ActionResult SaveRepository(ManageReopsitoryViewModel repositoryViewModel) { string message = string.Empty; string status = "success"; JavaScriptSerializer jsSerializer = new JavaScriptSerializer(); try { if (repositoryViewModel != null) { Repository repModel = new Repository(); repModel = repositoryViewModel.SetValuesTo(repModel); // serlize the data file before passing to API string repositoryData = repModel.SerializeObject<Repository>("repositoryModel"); // create the object of HttpWeb Request Manager webRequestManager = new HttpWebRequestManager(); webClientManager = new WebClientRequestManager(); webRequestManager.SetRequestDetails(new RequestParams() { RequestURL = string.Concat(BaseController.BaseWebApiRepositoryPath + "?repositoryName=" + repModel.Name), }); string repositoryIdResult = webRequestManager.RetrieveWebResponse(); int repositoryResult = jsSerializer.Deserialize<int>(repositoryIdResult); if (repositoryResult == 0 || repModel.RepositoryId == repositoryResult) { NameValueCollection values = new NameValueCollection(); values.Add("repositoryModel", repositoryData.EncodeTo64()); string responseString = webClientManager.UploadValues(new RequestParams() { RequestURL = string.Concat(BaseController.BaseWebApiRepositoryPath), RequestMode = RequestMode.POST, AllowAutoRedirect = false, Values = values }); if (!string.IsNullOrEmpty(webClientManager.RedirectionURL)) { status = "redirect"; message = webClientManager.RedirectionURL; return Json(new { Status = status, Message = message }); } bool postResult = jsSerializer.Deserialize<bool>(responseString); if (postResult) { status = "success"; // after updating the repostory metadata field,delete the repository metadata field that are marked for deletion if (repositoryViewModel.DeletedMetaDataFieldIds != null && repositoryViewModel.DeletedMetaDataFieldIds.Length > 0) { string deleteResponseString = webClientManager.UploadValues(new RequestParams() { RequestURL = string.Concat(BaseController.BaseWebApiRepositoryPath, "?repositorId=", repositoryViewModel.RepositoryId, "&repositoryMetadataFields=", repositoryViewModel.DeletedMetaDataFieldIds), RequestMode = RequestMode.DELETE }); jsSerializer = new JavaScriptSerializer(); jsSerializer.Deserialize<bool>(deleteResponseString); } } else { ViewBag.ErrorMessage = Messages.RepositoryErrMsg; status = "error"; message = Messages.RepositoryErrMsg; } } else { status = "error"; message = Messages.DuplicateRepositoryMsg; } } else { status = "error"; message = Messages.RepositoryErrMsg; } } catch (WebException webException) { using (Stream stream = webException.Response.GetResponseStream()) { using (StreamReader reader = new StreamReader(stream)) { status = "error"; message = reader.ReadToEnd(); jsSerializer = new JavaScriptSerializer(); var data = jsSerializer.Deserialize<Dictionary<string,object>>(message); message = (string)data.First(m=>m.Key == "Message").Value; } } } catch (Exception exception) { message = exception.Message; } return Json(new { Status = status, Message = message }); }
/// <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 }); }