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));
        }
示例#7
0
        //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;
            }
        }