public PNROutputGroupHierarchySearchVM( int linkedHierarchiesTotal, PNROutputGroup pnrOutputGroup, string pnrOutputGroupName, string filterHierarchySearchText, string filterHierarchySearchProperty, string filterHierarchyCSUSearchText, string filterHierarchyTTSearchText, string hierarchyType, IEnumerable <SelectListItem> hierarchyPropertyOptions, int groupId, string groupType, bool hasWriteAccess, List <spDesktopDataAdmin_SelectPNROutputGroupLinkedHierarchies_v1Result> linkedHierarchies, List <spDesktopDataAdmin_SelectPNROutputGroupAvailableHierarchies_v1Result> availableHierarchies) { LinkedHierarchiesTotal = linkedHierarchiesTotal; FilterHierarchySearchProperty = filterHierarchySearchProperty; FilterHierarchySearchText = filterHierarchySearchText; FilterHierarchyCSUSearchText = filterHierarchyCSUSearchText; FilterHierarchyTTSearchText = filterHierarchyTTSearchText; HierarchyType = hierarchyType; HasWriteAccess = hasWriteAccess; LinkedHierarchies = linkedHierarchies; AvailableHierarchies = availableHierarchies; PNROutputGroupName = pnrOutputGroupName; PNROutputGroup = pnrOutputGroup; GroupType = groupType; GroupId = groupId; HierarchyPropertyOptions = hierarchyPropertyOptions; }
//GET: List Remarks public ActionResult List(int id, string languageCode) { PNROutputGroup pnrOutputGroup = new PNROutputGroup(); pnrOutputGroup = pnrOutputGroupRepository.GetGroup(id); if (pnrOutputGroup == null) { ViewData["ActionMethod"] = "ViewGet"; return(View("RecordDoesNotExistError")); } //Set Access Rights ViewData["Access"] = ""; RolesRepository rolesRepository = new RolesRepository(); if (rolesRepository.HasWriteAccessToPNROutputGroup(pnrOutputGroup.PNROutputGroupId)) { ViewData["Access"] = "WriteAccess"; } PNROutputGroupLanguage pnrOutputGroupLanguage = new PNROutputGroupLanguage(); pnrOutputGroupLanguage = pnrOutputGroupLanguageRepository.GetItem(id, languageCode); pnrOutputGroupLanguageRepository.EditItemForDisplay(pnrOutputGroupLanguage); return(View(pnrOutputGroupLanguage)); }
//GET:List public ActionResult ListLanguages(int id, int?page, string sortField, int?sortOrder) { //Get PNROutputGroup PNROutputGroup pnrOutputGroup = new PNROutputGroup(); pnrOutputGroup = pnrOutputGroupRepository.GetGroup(id); //Check Exists if (pnrOutputGroup == null) { ViewData["ActionMethod"] = "ListGet"; return(View("RecordDoesNotExistError")); } //Set Access Rights ViewData["Access"] = ""; RolesRepository rolesRepository = new RolesRepository(); if (rolesRepository.HasWriteAccessToPNROutputGroup(pnrOutputGroup.PNROutputGroupId)) { ViewData["Access"] = "WriteAccess"; } //Parent Information ViewData["PNROutputGroupId"] = pnrOutputGroup.PNROutputGroupId; ViewData["PNROutputGroupName"] = pnrOutputGroup.PNROutputGroupName; //SortField+SortOrder settings if (sortField != "HasRemarks") { sortField = "LanguageName"; } ViewData["CurrentSortField"] = sortField; if (sortOrder == 1) { ViewData["NewSortOrder"] = 0; ViewData["CurrentSortOrder"] = 1; } else { ViewData["NewSortOrder"] = 1; ViewData["CurrentSortOrder"] = 0; sortOrder = 0; } //return items var cwtPaginatedList = pnrOutputGroupLanguageRepository.PagePNROutputGroupLanguages(id, page ?? 1, "", sortField, sortOrder ?? 0); return(View(cwtPaginatedList)); }
public ActionResult AddRemoveHierarchy(PNROutputGroupHierarchyVM groupHierarchyVM) { //Get Item From Database PNROutputGroup group = new PNROutputGroup(); group = pnrOutputGroupRepository.GetGroup(groupHierarchyVM.GroupId); //Check Exists if (group == null) { ViewData["ActionMethod"] = "AddRemoveHierarchyPost"; return(View("RecordDoesNotExistError")); } //Check Access RolesRepository rolesRepository = new RolesRepository(); if (!rolesRepository.HasWriteAccessToPNROutputGroup(groupHierarchyVM.GroupId)) { ViewData["Message"] = "You do not have access to this item"; return(View("Error")); } //Delete Item try { pnrOutputGroupRepository.UpdateLinkedHierarchy(groupHierarchyVM); } catch (SqlException ex) { //Versioning Error - go to standard versionError page if (ex.Message == "SQLVersioningError") { ViewData["ReturnURL"] = "/PNROutputGroup.mvc/HierarchySearch/" + group.PNROutputGroupId; 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("HierarchySearch", new { id = group.PNROutputGroupId, p = groupHierarchyVM.FilterHierarchySearchProperty, t = groupHierarchyVM.FilterHierarchySearchText, h = pnrOutputGroupRepository.getHierarchyType(groupHierarchyVM.FilterHierarchySearchProperty), filterHierarchyCSUSearchText = groupHierarchyVM.FilterHierarchyCSUSearchText, filterHierarchyTTSearchText = groupHierarchyVM.FilterHierarchyTTSearchText })); }
// GET: /View public ActionResult View(int id) { PNROutputGroup group = new PNROutputGroup(); group = pnrOutputGroupRepository.GetGroup(id); //Check Exists if (group == null) { ViewData["ActionMethod"] = "ViewGet"; return(View("RecordDoesNotExistError")); } pnrOutputGroupRepository.EditGroupForDisplay(group); return(View(group)); }
// GET: /HierarchySearch public ActionResult HierarchySearch(int id, string p, string t, string h, string filterHierarchyCSUSearchText = "", string filterHierarchyTTSearchText = "") { PNROutputGroup pnrOutputGroup = new PNROutputGroup(); pnrOutputGroup = pnrOutputGroupRepository.GetGroup(id); //Check Exists if (pnrOutputGroup == null) { ViewData["ActionMethod"] = "HierarchySearchGet"; return(View("RecordDoesNotExistError")); } string filterHierarchySearchProperty = p; string filterHierarchySearchText = t; string filterHierarchyType = h; PNROutputGroupHierarchySearchVM hierarchySearchVM = new PNROutputGroupHierarchySearchVM(); hierarchySearchVM.GroupId = id; hierarchySearchVM.GroupType = groupName; hierarchySearchVM.PNROutputGroup = pnrOutputGroup; hierarchySearchVM.LinkedHierarchies = pnrOutputGroupRepository.PNROutputGroupLinkedHierarchies(id, filterHierarchyType); hierarchySearchVM.FilterHierarchySearchProperty = filterHierarchySearchProperty; hierarchySearchVM.FilterHierarchySearchText = filterHierarchySearchText; hierarchySearchVM.LinkedHierarchiesTotal = pnrOutputGroupRepository.CountPNROutputGroupLinkedHierarchies(id);; hierarchySearchVM.AvailableHierarchyTypeDisplayName = pnrOutputGroupRepository.getAvailableHierarchyTypeDisplayName(filterHierarchySearchProperty); if (filterHierarchySearchProperty == null) { hierarchySearchVM.AvailableHierarchies = null; } else { hierarchySearchVM.AvailableHierarchies = pnrOutputGroupRepository.PNROutputGroupAvailableHierarchies(id, filterHierarchySearchProperty, filterHierarchySearchText, filterHierarchyCSUSearchText, filterHierarchyTTSearchText); } RolesRepository rolesRepository = new RolesRepository(); hierarchySearchVM.HasWriteAccess = rolesRepository.HasWriteAccessToPNROutputGroup(id); hierarchySearchVM.FilterHierarchySearchProperty = filterHierarchySearchProperty; hierarchySearchVM.HierarchyPropertyOptions = pnrOutputGroupRepository.GetHierarchyPropertyOptions(groupName, hierarchySearchVM.FilterHierarchySearchProperty); return(View(hierarchySearchVM)); }
//Add Data From Linked Tables for Display public void EditGroupForDisplay(PNROutputGroup group) { // TripTypeRepository tripTypeRepository = new TripTypeRepository(); //TripType tripType = new TripType(); //tripType = tripTypeRepository.GetTripType(group.TripTypeId); //if (tripType != null) // { // group.TripType = tripType.TripTypeDescription; // } GDSRepository gDSRepository = new GDSRepository(); GDS gds = new GDS(); gds = gDSRepository.GetGDS(group.GDSCode); if (gds != null) { group.GDSName = gds.GDSName; } PNROutputTypeRepository pNROutputTypeRepository = new PNROutputTypeRepository(); PNROutputType pNROutputType = new PNROutputType(); pNROutputType = pNROutputTypeRepository.GetPNROutputType(group.PNROutputTypeID); if (pNROutputType != null) { group.PNROutputTypeName = pNROutputType.PNROutputTypeName; } group.PNROutputGroupName = Regex.Replace(group.PNROutputGroupName, @"[^\w\-()*]", "-"); HierarchyRepository hierarchyRepository = new HierarchyRepository(); List <fnDesktopDataAdmin_SelectPNROutputGroupHierarchy_v1Result> hierarchy = GetGroupHierarchy(group.PNROutputGroupId); if (hierarchy.Count > 0) { if (hierarchy.Count == 1) { HierarchyGroup hierarchyGroup = hierarchyRepository.GetHierarchyGroup( hierarchy[0].HierarchyType ?? "", hierarchy[0].HierarchyCode ?? "", hierarchy[0].HierarchyName ?? "", hierarchy[0].TravelerTypeGuid ?? "", hierarchy[0].TravelerTypeName ?? "", hierarchy[0].SourceSystemCode ?? "" ); if (hierarchyGroup != null) { group.HierarchyType = hierarchyGroup.HierarchyType; group.HierarchyCode = hierarchyGroup.HierarchyCode; group.HierarchyItem = hierarchyGroup.HierarchyItem; group.ClientSubUnitGuid = hierarchyGroup.ClientSubUnitGuid; group.ClientSubUnitName = hierarchyGroup.ClientSubUnitName; group.TravelerTypeGuid = hierarchyGroup.TravelerTypeGuid; group.TravelerTypeName = hierarchyGroup.TravelerTypeName; group.ClientTopUnitName = hierarchyGroup.ClientTopUnitName; group.SourceSystemCode = hierarchyGroup.SourceSystemCode; } } else { List <MultipleHierarchyDefinition> multipleHierarchies = new List <MultipleHierarchyDefinition>(); foreach (fnDesktopDataAdmin_SelectPNROutputGroupHierarchy_v1Result item in hierarchy) { multipleHierarchies.Add(new MultipleHierarchyDefinition() { HierarchyType = item.HierarchyType, HierarchyItem = item.HierarchyName, HierarchyCode = item.HierarchyCode, TravelerTypeGuid = item.TravelerTypeGuid, SourceSystemCode = item.SourceSystemCode }); } group.MultipleHierarchies = hierarchyRepository.GetMultipleHierarchies(multipleHierarchies); } } if (hierarchy.Count > 1) { group.IsMultipleHierarchy = true; group.HierarchyType = "Multiple"; group.HierarchyItem = "Multiple"; group.HierarchyCode = "Multiple"; } else { group.IsMultipleHierarchy = false; } }
//get a single Node from the XML field public PNROutputGroupXMLItem GetPNROutputGroupXMLItem(int node, PNROutputGroupLanguage pnrOutputGroupLanguage) { XDocument xDoc = new XDocument(pnrOutputGroupLanguage.PNROutputGroupXML); string baseRemarkType = xDoc.Root.Name.ToString(); var items = xDoc.Element(baseRemarkType).Elements("item"); var item = xDoc.Element(baseRemarkType).Elements("item").ElementAt(node); PNROutputGroupXMLItem pnrOutputGroupXMLItem = new PNROutputGroupXMLItem(); //Add LanguageName if (pnrOutputGroupLanguage.LanguageCode != null) { LanguageRepository languageRepository = new LanguageRepository(); Language language = new Language(); language = languageRepository.GetLanguage(pnrOutputGroupLanguage.LanguageCode); if (language != null) { pnrOutputGroupXMLItem.Language = language; } } //Add PolicyGroup Information PNROutputGroupRepository pnrOutputGroupRepository = new PNROutputGroupRepository(); PNROutputGroup pnrOutputGroup = new PNROutputGroup(); pnrOutputGroup = pnrOutputGroupRepository.GetGroup(pnrOutputGroupLanguage.PNROutputGroupId); if (pnrOutputGroup != null) { pnrOutputGroupXMLItem.PNROutputGroup = pnrOutputGroup; } //we need to keep version number, no need for other itmes PNROutputGroupLanguage pnrOutputGroupLanguage2 = new PNROutputGroupLanguage(); pnrOutputGroupLanguage2.VersionNumber = pnrOutputGroupLanguage.VersionNumber; pnrOutputGroupXMLItem.PNROutputGroupLanguage = pnrOutputGroupLanguage2; pnrOutputGroupXMLItem.Language.LanguageCode = pnrOutputGroupLanguage.LanguageCode; pnrOutputGroupXMLItem.PNROutputGroup.PNROutputGroupId = pnrOutputGroupLanguage.PNROutputGroupId; string valueText = (string)item.Value; if (valueText != null) { pnrOutputGroupXMLItem.Value = item.Value; } string remarkTypeAttribute = (string)item.Attribute("remarktype"); if (remarkTypeAttribute != null) { pnrOutputGroupXMLItem.RemarkType = item.Attribute("remarktype").Value; } string bindAttribute = (string)item.Attribute("bind"); if (bindAttribute != null) { pnrOutputGroupXMLItem.Bind = item.Attribute("bind").Value; } string qualifierAttribute = (string)item.Attribute("qualifier"); if (qualifierAttribute != null) { pnrOutputGroupXMLItem.Qualifier = item.Attribute("qualifier").Value; } string sequenceAttribute = (string)item.Attribute("sequence"); if (sequenceAttribute != null) { pnrOutputGroupXMLItem.Sequence = item.Attribute("sequence").Value; } string updateTypeAttribute = (string)item.Attribute("updatetype"); if (updateTypeAttribute != null) { pnrOutputGroupXMLItem.UpdateType = item.Attribute("updatetype").Value; } string groupIdAttribute = (string)item.Attribute("groupid"); if (groupIdAttribute != null) { pnrOutputGroupXMLItem.GroupId = item.Attribute("groupid").Value; } return(pnrOutputGroupXMLItem); }
//Add Data From Linked Tables for Display public void EditItemForDisplay(PNROutputGroupLanguage pnrOutputGroupLanguage) { //Add LanguageName if (pnrOutputGroupLanguage.LanguageCode != null) { LanguageRepository languageRepository = new LanguageRepository(); Language language = new Language(); language = languageRepository.GetLanguage(pnrOutputGroupLanguage.LanguageCode); if (language != null) { pnrOutputGroupLanguage.LanguageName = language.LanguageName; } } //Add PolicyGroup Information PNROutputGroupRepository pnrOutputGroupRepository = new PNROutputGroupRepository(); PNROutputGroup pnrOutputGroup = new PNROutputGroup(); pnrOutputGroup = pnrOutputGroupRepository.GetGroup(pnrOutputGroupLanguage.PNROutputGroupId); if (pnrOutputGroup != null) { pnrOutputGroupLanguage.PNROutputGroupName = pnrOutputGroup.PNROutputGroupName; } //Format XML if (pnrOutputGroupLanguage.PNROutputGroupXML != null) { XDocument xDoc = new XDocument(pnrOutputGroupLanguage.PNROutputGroupXML); string baseRemarkType = xDoc.Root.Name.ToString(); var items = xDoc.Element(baseRemarkType).Elements("item"); int counter = 0; PNROutputGroupXMLDoc pnrOutputGroupXMLDoc = new PNROutputGroupXMLDoc(); pnrOutputGroupXMLDoc.DocumentRoot = baseRemarkType; foreach (var item in items) { PNROutputGroupXMLItem pnrOutputGroupXMLItem = new PNROutputGroupXMLItem(); pnrOutputGroupXMLItem.ItemNumber = counter; string valueText = (string)item.Value; if (valueText != null) { pnrOutputGroupXMLItem.Value = item.Value; } string remarkTypeAttribute = (string)item.Attribute("remarktype"); if (remarkTypeAttribute != null) { pnrOutputGroupXMLItem.RemarkType = item.Attribute("remarktype").Value; } string bindAttribute = (string)item.Attribute("bind"); if (bindAttribute != null) { pnrOutputGroupXMLItem.Bind = item.Attribute("bind").Value; } string qualifierAttribute = (string)item.Attribute("qualifier"); if (qualifierAttribute != null) { pnrOutputGroupXMLItem.Qualifier = item.Attribute("qualifier").Value; } string sequenceAttribute = (string)item.Attribute("sequence"); if (sequenceAttribute != null) { pnrOutputGroupXMLItem.Sequence = item.Attribute("sequence").Value; } string updateTypeAttribute = (string)item.Attribute("updatetype"); if (updateTypeAttribute != null) { pnrOutputGroupXMLItem.UpdateType = item.Attribute("updatetype").Value; } string groupIdAttribute = (string)item.Attribute("groupid"); if (groupIdAttribute != null) { pnrOutputGroupXMLItem.GroupId = item.Attribute("groupid").Value; } pnrOutputGroupXMLDoc.AddPNROutputGroupXMLItem(pnrOutputGroupXMLItem); counter++; } pnrOutputGroupLanguage.PNROutputGroupXMLDOM = pnrOutputGroupXMLDoc; } }