public ActionResult EditSequence(int id, int reasonCodeTypeId, int?page) { //Get Item From Database ReasonCodeGroup group = new ReasonCodeGroup(); group = reasonCodeGroupRepository.GetGroup(id); //Check Exists if (group == null) { ViewData["ActionMethod"] = "EditSequenceGet"; return(View("RecordDoesNotExistError")); } //Check Access RolesRepository rolesRepository = new RolesRepository(); if (!rolesRepository.HasWriteAccessToReasonCodeGroup(id)) { ViewData["Message"] = "You do not have access to this item"; return(View("Error")); } ReasonCodeItemSequenceRepository reasonCodeItemSequenceRepository = new ReasonCodeItemSequenceRepository(); ReasonCodeGroupReasonCodeTypeSequencingVM reasonCodeGroupReasonCodeTypeSequencingVM = new ReasonCodeGroupReasonCodeTypeSequencingVM(); reasonCodeGroupReasonCodeTypeSequencingVM.SequenceItems = reasonCodeItemSequenceRepository.GetReasonCodeItemSequences(id, reasonCodeTypeId, page ?? 1); reasonCodeGroupReasonCodeTypeSequencingVM.ReasonCodeGroup = group; reasonCodeGroupReasonCodeTypeSequencingVM.ReasonCodeTypeId = reasonCodeTypeId; reasonCodeGroupReasonCodeTypeSequencingVM.Page = page ?? 1; return(View(reasonCodeGroupReasonCodeTypeSequencingVM)); }
public ActionResult EditSequence(ReasonCodeGroupReasonCodeTypeSequencingVM reasonCodeGroupReasonCodeTypeSequencingVM, FormCollection collection) { int reasonCodeGroupId = reasonCodeGroupReasonCodeTypeSequencingVM.ReasonCodeGroup.ReasonCodeGroupId; int reasonCodeTypeId = reasonCodeGroupReasonCodeTypeSequencingVM.ReasonCodeTypeId; int page = reasonCodeGroupReasonCodeTypeSequencingVM.Page; //Check Exists ReasonCodeGroup reasonCodeGroup = new ReasonCodeGroup(); reasonCodeGroup = reasonCodeGroupRepository.GetGroup(reasonCodeGroupId); if (reasonCodeGroup == null) { return(View("Error")); } //Check Access Rights RolesRepository rolesRepository = new RolesRepository(); if (!rolesRepository.HasWriteAccessToReasonCodeGroup(reasonCodeGroupId)) { ViewData["Message"] = "You do not have access to this item"; return(View("Error")); } string[] sequences = collection["RCSequence"].Split(new char[] { ',' }); int sequence = (page - 1 * 5) - 2; if (sequence < 0) { sequence = 1; } XmlDocument doc = new XmlDocument(); XmlDeclaration xmlDeclaration = doc.CreateXmlDeclaration("1.0", "UTF-8", null); XmlElement root = doc.DocumentElement; doc.InsertBefore(xmlDeclaration, root); XmlElement rootElement = doc.CreateElement(string.Empty, "SequenceXML", string.Empty); doc.AppendChild(rootElement); foreach (string s in sequences) { string[] reasonCodeItemPK = s.Split(new char[] { '_' }); int reasonCodeItemId = Convert.ToInt32(reasonCodeItemPK[0]); int versionNumber = Convert.ToInt32(reasonCodeItemPK[1]); XmlElement itemElement = doc.CreateElement(string.Empty, "Item", string.Empty); XmlElement sequenceElement = doc.CreateElement(string.Empty, "Sequence", string.Empty); XmlCDataSection sequenceText = doc.CreateCDataSection(HttpUtility.HtmlEncode(sequence.ToString())); sequenceElement.AppendChild(sequenceText); itemElement.AppendChild(sequenceElement); XmlElement reasonCodeItemIdElement = doc.CreateElement(string.Empty, "ReasonCodeItemId", string.Empty); XmlCDataSection reasonCodeItemIdText = doc.CreateCDataSection(HttpUtility.HtmlEncode(reasonCodeItemId.ToString())); reasonCodeItemIdElement.AppendChild(reasonCodeItemIdText); itemElement.AppendChild(reasonCodeItemIdElement); XmlElement versionNumberElement = doc.CreateElement(string.Empty, "VersionNumber", string.Empty); XmlCDataSection versionNumberText = doc.CreateCDataSection(HttpUtility.HtmlEncode(versionNumber.ToString())); versionNumberElement.AppendChild(versionNumberText); itemElement.AppendChild(versionNumberElement); rootElement.AppendChild(itemElement); sequence = sequence + 1; } try { ReasonCodeItemSequenceRepository reasonCodeItemSequenceRepository = new ReasonCodeItemSequenceRepository(); reasonCodeItemSequenceRepository.UpdateReasonCodeItemSequences(doc.OuterXml); } catch (SqlException ex) { //Versioning Error if (ex.Message == "SQLVersioningError") { ViewData["ReturnURL"] = "/ReasonCodeItem.mvc/EditSequence?ReasonCodeTypeId=" + reasonCodeTypeId + "&id=" + reasonCodeGroupId + "?page=" + page; return(View("VersionError")); } LogRepository logRepository = new LogRepository(); logRepository.LogError(ex.Message); ViewData["Message"] = "There was a problem with your request, please see the log file or contact an administrator for details"; return(View("Error")); } return(RedirectToAction("List", new { id = reasonCodeGroupId })); }