// GET: /Edit
        public ActionResult Edit(int id)
        {
            //Get Item From Database
            PriceTrackingSetupGroup group = new PriceTrackingSetupGroup();

            group = priceTrackingSetupGroupRepository.GetPriceTrackingSetupGroup(id);

            //Check Exists
            if (group == null)
            {
                ViewData["ActionMethod"] = "EditGet";
                return(View("RecordDoesNotExistError"));
            }

            //Check Access
            RolesRepository rolesRepository = new RolesRepository();

            if (!rolesRepository.HasWriteAccessToPriceTrackingSetupGroup(id))
            {
                ViewData["Message"] = "You do not have access to this item";
                return(View("Error"));
            }

            //Set Access Rights
            ViewData["FIQIDAccess"] = "";
            if (hierarchyRepository.AdminHasDomainWriteAccess(fIQIDGroupName))
            {
                ViewData["FIQIDAccess"] = "WriteAccess";
            }

            priceTrackingSetupGroupRepository.EditForDisplay(group);

            TripTypeRepository tripTypeRepository = new TripTypeRepository();
            SelectList         tripTypesList      = new SelectList(tripTypeRepository.GetAllTripTypes().ToList(), "TripTypeId", "TripTypeDescription");

            ViewData["tripTypes"] = tripTypesList;

            GDSRepository gdsRepository = new GDSRepository();
            SelectList    gDSList       = new SelectList(gdsRepository.GetAllGDSs().ToList(), "GDSCode", "GDSName");

            ViewData["GDSs"] = gDSList;

            PNROutputTypeRepository pNROutputTypeRepository = new PNROutputTypeRepository();
            SelectList pNROutputTypeList = new SelectList(pNROutputTypeRepository.GetAllPNROutputTypes().ToList(), "PNROutputTypeId", "PNROutputTypeName");

            ViewData["PNROutputTypes"] = pNROutputTypeList;

            TablesDomainHierarchyLevelRepository tablesDomainHierarchyLevelRepository = new TablesDomainHierarchyLevelRepository();
            SelectList hierarchyTypesList = new SelectList(tablesDomainHierarchyLevelRepository.GetDomainHierarchies(groupName).ToList(), "HierarchyLevelTableName", "HierarchyLevelTableName");

            ViewData["HierarchyTypes"] = hierarchyTypesList;

            PriceTrackingSetupTypeRepository priceTrackingSetupTypeRepository = new PriceTrackingSetupTypeRepository();
            SelectList priceTrackingSetupTypes = new SelectList(priceTrackingSetupTypeRepository.GetAllPriceTrackingSetupTypes().ToList(), "PriceTrackingSetupTypeId", "PriceTrackingSetupTypeName", group.PriceTrackingSetupTypeId);

            ViewData["PriceTrackingSetupTypes"] = priceTrackingSetupTypes;

            DesktopUsedTypeRepository desktopUsedTypeRepository = new DesktopUsedTypeRepository();
            SelectList desktopUsedTypes = new SelectList(desktopUsedTypeRepository.GetAllDesktopUsedTypes().ToList(), "DesktopUsedTypeId", "DesktopUsedTypeDescription", group.DesktopUsedTypeId);

            ViewData["DesktopUsedTypes"] = desktopUsedTypes;

            PriceTrackingMidOfficePlatformRepository priceTrackingMidOfficePlatformRepository = new PriceTrackingMidOfficePlatformRepository();
            SelectList priceTrackingMidOfficePlatforms = new SelectList(priceTrackingMidOfficePlatformRepository.GetAllPriceTrackingMidOfficePlatforms().ToList(), "PriceTrackingMidOfficePlatformId", "PriceTrackingMidOfficePlatformName", group.PriceTrackingMidOfficePlatformId);

            ViewData["PriceTrackingMidOfficePlatforms"] = priceTrackingMidOfficePlatforms;

            ViewData["SharedPseudoCityOrOfficeList"] = new SelectList(commonRepository.GetTrueFalseList().ToList(), "Value", "Text", group.SharedPseudoCityOrOfficeIdFlag);

            ViewData["MidOfficeUsedForQCTicketingList"] = new SelectList(commonRepository.GetTrueFalseList().ToList(), "Value", "Text", group.MidOfficeUsedForQCTicketingFlag);

            ViewData["USGovernmentContractorList"] = new SelectList(commonRepository.GetTrueFalseList().ToList(), "Value", "Text", group.USGovernmentContractorFlag);

            ViewData["PriceTrackingSetupGroupAdditionalPseudoCityOrOfficeIdList"] = new SelectList(commonRepository.GetTrueFalseList().ToList(), "Value", "Text", "false");

            PriceTrackingItinerarySolutionRepository priceTrackingItinerarySolutionRepository = new PriceTrackingItinerarySolutionRepository();
            SelectList priceTrackingItinerarySolutions = new SelectList(priceTrackingItinerarySolutionRepository.GetAllPriceTrackingItinerarySolutions().ToList(), "PriceTrackingItinerarySolutionId", "PriceTrackingItinerarySolutionName", group.PriceTrackingItinerarySolutionId);

            ViewData["PriceTrackingItinerarySolutions"] = priceTrackingItinerarySolutions;

            PriceTrackingSystemRuleRepository priceTrackingSystemRuleRepository = new PriceTrackingSystemRuleRepository();
            SelectList priceTrackingSystemRules = new SelectList(priceTrackingSystemRuleRepository.GetAllPriceTrackingSystemRules().ToList(), "PriceTrackingSystemRuleId", "PriceTrackingSystemRuleName", group.PriceTrackingSystemRuleId);

            ViewData["PriceTrackingSystemRules"] = priceTrackingSystemRules;

            BackOfficeSystemRepository backOfficeSystemRepository = new BackOfficeSystemRepository();
            SelectList backOfficeSystems = new SelectList(backOfficeSystemRepository.GetAllBackOfficeSystems().ToList(), "BackOfficeSytemId", "BackOfficeSystemDescription", group.BackOfficeSystemId);

            ViewData["BackOfficeSystems"] = backOfficeSystems;

            PriceTrackingBillingModelRepository priceTrackingBillingModelRepository = new PriceTrackingBillingModelRepository();
            List <PriceTrackingBillingModel>    priceTrackingBillingModels          = priceTrackingBillingModelRepository.GetAllPriceTrackingBillingModels().ToList();

            SelectList airPriceTrackingBillingModels = new SelectList(priceTrackingBillingModels, "PriceTrackingBillingModelId", "PriceTrackingBillingModelName", group.AirPriceTrackingBillingModelId);

            ViewData["AirPriceTrackingBillingModels"] = airPriceTrackingBillingModels;

            SelectList hotelPriceTrackingBillingModels = new SelectList(priceTrackingBillingModels, "PriceTrackingBillingModelId", "PriceTrackingBillingModelName", group.HotelPriceTrackingBillingModelId);

            ViewData["HotelPriceTrackingBillingModels"] = hotelPriceTrackingBillingModels;

            SelectList preTicketPriceTrackingBillingModels = new SelectList(priceTrackingBillingModels, "PriceTrackingBillingModelId", "PriceTrackingBillingModelName", group.PreTicketPriceTrackingBillingModelId);

            ViewData["PreTicketPriceTrackingBillingModels"] = preTicketPriceTrackingBillingModels;

            return(View(group));
        }
        // GET: /Create
        public ActionResult Create()
        {
            //Check Access Rights to Domain
            if (!hierarchyRepository.AdminHasDomainWriteAccess(groupName))
            {
                ViewData["Message"] = "You do not have access to this item";
                return(View("Error"));
            }

            PriceTrackingSetupGroup priceTrackingSetupGroup = new PriceTrackingSetupGroup();

            priceTrackingSetupGroup.MidOfficeUsedForQCTicketingFlag = true;

            TripTypeRepository tripTypeRepository = new TripTypeRepository();
            SelectList         tripTypesList      = new SelectList(tripTypeRepository.GetAllTripTypes().ToList(), "TripTypeId", "TripTypeDescription");

            ViewData["TripTypes"] = tripTypesList;

            GDSRepository gdsRepository = new GDSRepository();
            SelectList    gDSList       = new SelectList(gdsRepository.GetAllGDSs().ToList(), "GDSCode", "GDSName");

            ViewData["GDSs"] = gDSList;

            PNROutputTypeRepository pNROutputTypeRepository = new PNROutputTypeRepository();
            SelectList pNROutputTypeList = new SelectList(pNROutputTypeRepository.GetAllPNROutputTypes().ToList(), "PNROutputTypeId", "PNROutputTypeName");

            ViewData["PNROutputTypes"] = pNROutputTypeList;

            TablesDomainHierarchyLevelRepository tablesDomainHierarchyLevelRepository = new TablesDomainHierarchyLevelRepository();
            SelectList hierarchyTypesList = new SelectList(tablesDomainHierarchyLevelRepository.GetDomainHierarchies(groupName).ToList(), "HierarchyLevelTableName", "HierarchyLevelTableName");

            ViewData["HierarchyTypes"] = hierarchyTypesList;

            PriceTrackingSetupTypeRepository priceTrackingSetupTypeRepository = new PriceTrackingSetupTypeRepository();
            SelectList priceTrackingSetupTypes = new SelectList(priceTrackingSetupTypeRepository.GetAllPriceTrackingSetupTypes().ToList(), "PriceTrackingSetupTypeId", "PriceTrackingSetupTypeName");

            ViewData["PriceTrackingSetupTypes"] = priceTrackingSetupTypes;

            DesktopUsedTypeRepository desktopUsedTypeRepository = new DesktopUsedTypeRepository();
            SelectList desktopUsedTypes = new SelectList(desktopUsedTypeRepository.GetAllDesktopUsedTypes().ToList(), "DesktopUsedTypeId", "DesktopUsedTypeDescription");

            ViewData["DesktopUsedTypes"] = desktopUsedTypes;

            PriceTrackingMidOfficePlatformRepository priceTrackingMidOfficePlatformRepository = new PriceTrackingMidOfficePlatformRepository();
            SelectList priceTrackingMidOfficePlatforms = new SelectList(priceTrackingMidOfficePlatformRepository.GetAllPriceTrackingMidOfficePlatforms().ToList(), "PriceTrackingMidOfficePlatformId", "PriceTrackingMidOfficePlatformName");

            ViewData["PriceTrackingMidOfficePlatforms"] = priceTrackingMidOfficePlatforms;

            ViewData["SharedPseudoCityOrOfficeList"] = new SelectList(commonRepository.GetTrueFalseList().ToList(), "Value", "Text");

            ViewData["MidOfficeUsedForQCTicketingList"] = new SelectList(commonRepository.GetTrueFalseList().ToList(), "Value", "Text", priceTrackingSetupGroup.MidOfficeUsedForQCTicketingFlag);

            ViewData["USGovernmentContractorList"] = new SelectList(commonRepository.GetTrueFalseList().ToList(), "Value", "Text");

            ViewData["PriceTrackingSetupGroupAdditionalPseudoCityOrOfficeIdList"] = new SelectList(commonRepository.GetTrueFalseList().ToList(), "Value", "Text", "false");

            PriceTrackingItinerarySolutionRepository priceTrackingItinerarySolutionRepository = new PriceTrackingItinerarySolutionRepository();
            SelectList priceTrackingItinerarySolutions = new SelectList(priceTrackingItinerarySolutionRepository.GetAllPriceTrackingItinerarySolutions().ToList(), "PriceTrackingItinerarySolutionId", "PriceTrackingItinerarySolutionName");

            ViewData["PriceTrackingItinerarySolutions"] = priceTrackingItinerarySolutions;

            PriceTrackingSystemRuleRepository priceTrackingSystemRuleRepository = new PriceTrackingSystemRuleRepository();
            SelectList priceTrackingSystemRules = new SelectList(priceTrackingSystemRuleRepository.GetAllPriceTrackingSystemRules().ToList(), "PriceTrackingSystemRuleId", "PriceTrackingSystemRuleName");

            ViewData["PriceTrackingSystemRules"] = priceTrackingSystemRules;

            BackOfficeSystemRepository backOfficeSystemRepository = new BackOfficeSystemRepository();
            SelectList backOfficeSystems = new SelectList(backOfficeSystemRepository.GetAllBackOfficeSystems().ToList(), "BackOfficeSytemId", "BackOfficeSystemDescription");

            ViewData["BackOfficeSystems"] = backOfficeSystems;

            PriceTrackingBillingModelRepository priceTrackingBillingModelRepository = new PriceTrackingBillingModelRepository();
            List <PriceTrackingBillingModel>    priceTrackingBillingModels          = priceTrackingBillingModelRepository.GetAllPriceTrackingBillingModels().ToList();
            SelectList priceTrackingBillingModelsList = new SelectList(priceTrackingBillingModels, "PriceTrackingBillingModelId", "PriceTrackingBillingModelName");

            ViewData["AirPriceTrackingBillingModels"]       = priceTrackingBillingModelsList;
            ViewData["HotelPriceTrackingBillingModels"]     = priceTrackingBillingModelsList;
            ViewData["PreTicketPriceTrackingBillingModels"] = priceTrackingBillingModelsList;

            return(View(priceTrackingSetupGroup));
        }