Ejemplo n.º 1
0
        public JsonResult Publish(int clientProfileGroupId, string sabreStatus, string gdsCode)
        {
            //Get Item From Database
            ClientProfileGroup clientProfileGroup = new ClientProfileGroup();

            clientProfileGroup = clientProfileGroupRepository.GetGroup(clientProfileGroupId);

            //Check Exists in Database
            if (clientProfileGroup == null)
            {
                ViewData["ActionMethod"] = "DeletePost";
                return(Json("Record Does Not Exist Error"));
            }

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

            if (!rolesRepository.HasWriteAccessToClientProfileGroup(clientProfileGroup.ClientProfileGroupId))
            {
                ViewData["Message"] = "You do not have access to this item";
                return(Json("Error"));
            }

            GDS           gds           = new GDS();
            GDSRepository gdsRepository = new GDSRepository();

            gds = gdsRepository.GetGDS(clientProfileGroup.GDSCode);

            string gdsName = gds.GDSName;

            switch (gdsCode)
            {
            case "1S":
                gdsName = sabreStatus;
                break;
            }

            string response = DoPublish(clientProfileGroup, gds, gdsName, clientProfileGroup.PseudoCityOrOfficeId, false);

            return(Json(response));
        }
        //
        // GET: /ClientProfileItem/List

        public ActionResult List(int id, int?clientProfilePanelId)
        {
            ClientProfileItemsVM clientProfileItemsVM = new ClientProfileItemsVM();

            //Set Access Rights
            if (hierarchyRepository.AdminHasDomainWriteAccess(groupName))
            {
                clientProfileItemsVM.HasDomainWriteAccess = true;
            }

            //Get the ClientProfileGroup
            ClientProfileGroup clientProfileGroup = new ClientProfileGroup();

            clientProfileGroup = clientProfileGroupRepository.GetGroup(id);
            clientProfileGroupRepository.EditGroupForDisplay(clientProfileGroup);
            clientProfileItemsVM.ClientProfileGroup = clientProfileGroup;

            clientProfileItemsVM.ClientProfileGroupId = clientProfileGroup.ClientProfileGroupId;
            clientProfileItemsVM.ClientProfileGroupClientProfileGroupName = clientProfileGroup.ClientProfileGroupName;

            GDS           gds           = new GDS();
            GDSRepository gdsRepository = new GDSRepository();

            gds = gdsRepository.GetGDS(clientProfileGroup.GDSCode);
            clientProfileItemsVM.ClientProfileGroupGDSName = gds.GDSName;

            clientProfileItemsVM.ClientProfileGroupHierarchyItem = clientProfileGroup.HierarchyItem;
            clientProfileItemsVM.ClientProfileGroupBackOfficeSystemDescription = clientProfileGroup.BackOfficeSystem.BackOfficeSystemDescription;
            clientProfileItemsVM.ClientProfilePanelId = clientProfilePanelId ?? 0;

            //Get ClientTopUnit
            if (clientProfileGroup.HierarchyType == "ClientSubUnit")
            {
                ClientProfileGroupClientSubUnit clientProfileGroupClientSubUnit = clientProfileGroup.ClientProfileGroupClientSubUnits.SingleOrDefault();
                if (clientProfileGroupClientSubUnit != null)
                {
                    ClientSubUnitRepository clientSubUnitRepository = new ClientSubUnitRepository();
                    ClientSubUnit           clientSubUnit           = new ClientSubUnit();
                    clientSubUnit = clientSubUnitRepository.GetClientSubUnit(clientProfileGroupClientSubUnit.ClientSubUnitGuid);
                    if (clientSubUnit != null)
                    {
                        if (clientSubUnit.ClientTopUnit != null)
                        {
                            ViewData["ClientTopUnitName"] = clientSubUnit.ClientTopUnit.ClientTopUnitName;
                        }
                    }
                }
            }

            //Get a list of ClientProfileItems for each panel
            clientProfileItemsVM.ClientProfileItemsClientDetails = clientProfileItemRepository.GetClientProfilePanelClientProfileDataElements(id, 6);
            clientProfileItemsVM.ClientProfileItemsMidOffice     = clientProfileItemRepository.GetClientProfilePanelClientProfileDataElements(id, 3);
            clientProfileItemsVM.ClientProfileItemsBackOffice    = clientProfileItemRepository.GetClientProfilePanelClientProfileDataElements(id, 5);
            clientProfileItemsVM.ClientProfileItemsAirRailPolicy = clientProfileItemRepository.GetClientProfilePanelClientProfileDataElements(id, 7);
            clientProfileItemsVM.ClientProfileItemsItinerary     = clientProfileItemRepository.GetClientProfilePanelClientProfileDataElements(id, 9);
            clientProfileItemsVM.ClientProfileItems24Hours       = clientProfileItemRepository.GetClientProfilePanelClientProfileDataElements(id, 10);
            clientProfileItemsVM.ClientProfileItemsAmadeusTPM    = clientProfileItemRepository.GetClientProfilePanelClientProfileDataElements(id, 11);

            /*GDS Integration*/
            //https://docs.google.com/document/d/1TMOvJzZmePKjFTt0qFUC6_JGRz0x508uIiV3jGCa7b0/

            //TLS Update
            System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;

            ClientProfileService lService          = null;
            StringBuilder        clientProfileText = new StringBuilder();

            //Format PCC String
            string formattedPcc = GDSIntegration.FormatPccString(clientProfileGroup.PseudoCityOrOfficeId);

            try
            {
                //This is a singleton, and should be used strictly to retrieve existing profiles from the GDS
                lService = ClientProfileService.getInstance;
            }
            catch (Exception ex)
            {
                LogRepository logRepository = new LogRepository();
                logRepository.LogError(ex.Message);

                //Generic Error
                ViewData["Message"] = "There was a problem with your request, please see the log file or contact an administrator for details";
                return(View("Error"));
            }

            if (lService != null)
            {
                try
                {
                    //string pGds, string pPcc, string pZeroLevel, string pCompanyProfileName, stringpTravellerProfileName
                    ClientProfileResponse clientProfileResponse = lService.GetProfile(gds.GDSName, formattedPcc, "", clientProfileGroup.ClientProfileGroupName, "");
                    if (clientProfileResponse != null)
                    {
                        if (clientProfileResponse.Result != CWTResponse.ResultStatus.Error)
                        {
                            if (clientProfileResponse.ClientProfile != null)
                            {
                                ClientProfile clientProfile = clientProfileResponse.ClientProfile;
                                if (clientProfile != null)
                                {
                                    if (clientProfile.ProfileLines.Count > 0)
                                    {
                                        //Loop through the profile and write out the lines
                                        foreach (ClientProfileLine line in clientProfile.ProfileLines)
                                        {
                                            //
 is new line
                                            clientProfileText.AppendFormat("{0} {1}
", line.LineNumber, line.LineText);
                                        }

                                        //Pass content into view if exists
                                        if (!string.IsNullOrEmpty(clientProfileText.ToString()))
                                        {
                                            ViewData["clientProfileText"] = clientProfileText.ToString();
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            //Log Get Profile error messages and show error in GDS window
                            if (clientProfileResponse.MessageList.Count > 0)
                            {
                                string errorMessage = string.Empty;

                                foreach (string message in clientProfileResponse.MessageList)
                                {
                                    errorMessage += string.Format("{0}
", message);
                                }

                                if (!string.IsNullOrEmpty(errorMessage))
                                {
                                    ViewData["clientProfileText"] = errorMessage;
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    LogRepository logRepository = new LogRepository();
                    logRepository.LogError(ex.Message);

                    //Generic Error
                    ViewData["Message"] = "There was a problem with your request, please see the log file or contact an administrator for details";
                    return(View("Error"));
                }
            }

            return(View(clientProfileItemsVM));
        }
Ejemplo n.º 3
0
        public ActionResult Delete(int id)
        {
            //Get BookingChannel
            BookingChannel bookingChannel = new BookingChannel();

            bookingChannel = bookingChannelRepository.BookingChannel(id);

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

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

            if (!rolesRepository.HasWriteAccessToClientSubUnit(bookingChannel.ClientSubUnitGuid) || !hierarchyRepository.AdminHasDomainWriteAccess(groupName))
            {
                ViewData["Message"] = "You do not have access to this item";
                return(View("Error"));
            }

            BookingChannelVM bookingChannelVM = new BookingChannelVM();

            bookingChannelVM.BookingChannel = bookingChannel;

            //Get ClientSubUnit
            ClientSubUnit clientSubUnit = new ClientSubUnit();

            clientSubUnit = clientSubUnitRepository.GetClientSubUnit(bookingChannel.ClientSubUnitGuid);
            bookingChannelVM.ClientSubUnit = clientSubUnit;

            //Get GDS
            GDSRepository gdsRepository = new GDSRepository();
            GDS           gds           = gdsRepository.GetGDS(bookingChannel.GDSCode);

            bookingChannelVM.GDS = gds;

            //Channel Products
            if (bookingChannel.ProductChannelTypeId != null)
            {
                ProductChannelTypeRepository productChannelTypeRepository = new ProductChannelTypeRepository();
                ProductChannelType           productChannelType           = productChannelTypeRepository.GetProductChannelType((int)bookingChannel.ProductChannelTypeId);
                if (productChannelType != null)
                {
                    bookingChannelVM.BookingChannel.ProductChannelType = productChannelType;
                }
            }

            //Desktop Used Types
            if (bookingChannel.DesktopUsedTypeId != null)
            {
                DesktopUsedTypeRepository desktopUsedTypeRepository = new DesktopUsedTypeRepository();
                DesktopUsedType           desktopUsedType           = desktopUsedTypeRepository.GetDesktopUsedType((int)bookingChannel.DesktopUsedTypeId);
                if (desktopUsedType != null)
                {
                    bookingChannelVM.BookingChannel.DesktopUsedType = desktopUsedType;
                }
            }

            //Content Booked Items
            ContentBookedItemRepository contentBookedItemRepository = new ContentBookedItemRepository();
            List <ContentBookedItem>    contentBookedItems          = contentBookedItemRepository.GetBookingChannelContentBookedItems(bookingChannel.BookingChannelId).ToList();

            if (contentBookedItems != null)
            {
                bookingChannelVM.ContentBookedItemsList = String.Join(", ", contentBookedItems.Select(x => x.Product.ProductName.ToString()).ToArray());
            }

            //Show Form
            return(View(bookingChannelVM));
        }
Ejemplo n.º 4
0
        // GET: /View
        public ActionResult View(int id)
        {
            //Get BookingChannel
            BookingChannel bookingChannel = new BookingChannel();

            bookingChannel = bookingChannelRepository.BookingChannel(id);

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

            BookingChannelVM bookingChannelVM = new BookingChannelVM();

            bookingChannelVM.BookingChannel = bookingChannel;

            //Get ClientSubUnit
            ClientSubUnit clientSubUnit = new ClientSubUnit();

            clientSubUnit = clientSubUnitRepository.GetClientSubUnit(bookingChannel.ClientSubUnitGuid);
            bookingChannelVM.ClientSubUnit = clientSubUnit;

            //Get GDS
            GDSRepository gdsRepository = new GDSRepository();
            GDS           gds           = gdsRepository.GetGDS(bookingChannel.GDSCode);

            bookingChannelVM.GDS = gds;

            //Channel Products
            if (bookingChannel.ProductChannelTypeId != null)
            {
                ProductChannelTypeRepository productChannelTypeRepository = new ProductChannelTypeRepository();
                ProductChannelType           productChannelType           = productChannelTypeRepository.GetProductChannelType((int)bookingChannel.ProductChannelTypeId);
                if (productChannelType != null)
                {
                    bookingChannelVM.BookingChannel.ProductChannelType = productChannelType;
                }
            }

            //Desktop Used Types
            if (bookingChannel.DesktopUsedTypeId != null)
            {
                DesktopUsedTypeRepository desktopUsedTypeRepository = new DesktopUsedTypeRepository();
                DesktopUsedType           desktopUsedType           = desktopUsedTypeRepository.GetDesktopUsedType((int)bookingChannel.DesktopUsedTypeId);
                if (desktopUsedType != null)
                {
                    bookingChannelVM.BookingChannel.DesktopUsedType = desktopUsedType;
                }
            }

            //Content Booked Items
            ContentBookedItemRepository contentBookedItemRepository = new ContentBookedItemRepository();
            List <ContentBookedItem>    contentBookedItems          = contentBookedItemRepository.GetBookingChannelContentBookedItems(bookingChannel.BookingChannelId).ToList();

            if (contentBookedItems != null)
            {
                bookingChannelVM.ContentBookedItemsList = String.Join(", ", contentBookedItems.Select(x => x.Product.ProductName.ToString()).ToArray());
            }

            //Show Form
            return(View(bookingChannelVM));
        }
Ejemplo n.º 5
0
        public JsonResult IsProfileReadytoPublish(string clientProfileGroupId)
        {
            if (clientProfileGroupId == null)
            {
                return(Json("No Id"));
            }

            int id = Int32.Parse(clientProfileGroupId);

            string retval = "true";

            //Get Item From Database
            ClientProfileGroup clientProfileGroup = new ClientProfileGroup();

            clientProfileGroup = clientProfileGroupRepository.GetGroup(id);

            //Get GDS
            GDS           gds           = new GDS();
            GDSRepository gdsRepository = new GDSRepository();

            gds = gdsRepository.GetGDS(clientProfileGroup.GDSCode);

            //Check Exists
            if (clientProfileGroup == null)
            {
                retval = "RecordDoesNotExistError";
            }

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

            if (!rolesRepository.HasWriteAccessToClientProfileGroup(id))
            {
                retval = "You do not have access to this item";
            }

            List <ClientProfileItemVM> clientProfileItemsList = GDSIntegration.GetProfileLineItems(id, true);

            bool doIncompleteFieldsExists = false;

            //Check if all mandatory fields are complete
            foreach (ClientProfileItemVM clientProfileItemVM in clientProfileItemsList)
            {
                ClientProfileItemRow clientProfileItemRow = clientProfileItemVM.ClientProfileItem;

                if (clientProfileItemRow.MandatoryFlag == true && (
                        clientProfileItemRow.ClientProfileMoveStatusId == null ||
                        string.IsNullOrEmpty(clientProfileItemRow.Remark) ||
                        string.IsNullOrEmpty(clientProfileItemRow.GDSCommandFormat)))
                {
                    doIncompleteFieldsExists = true;
                }
            }

            if (doIncompleteFieldsExists)
            {
                return(Json("There are incomplete mandatory elements.<br/><br/>Please return to the Items page and correct the error."));
            }

            //Check Line Counts
            int lineCount    = clientProfileItemsList.Count();
            int maxLineCount = 0;

            switch (gds.GDSName)
            {
            case "Apollo":
                maxLineCount = 200;
                break;

            case "Amadeus":
                maxLineCount = 100;
                break;

            case "Galileo":
                maxLineCount = 200;
                break;

            case "Sabre":
                maxLineCount = 200;
                break;
            }

            if (lineCount > maxLineCount)
            {
                retval = "The client profile exceeds the maximum number of lines.<br/><br/>Please return to the Items page and correct the error.";
            }

            return(Json(retval));
        }
Ejemplo n.º 6
0
        public JsonResult Verify(int clientProfileGroupId, string sabreStatus, string gdsCode)
        {
            //Get Item From Database
            ClientProfileGroup clientProfileGroup = new ClientProfileGroup();

            clientProfileGroup = clientProfileGroupRepository.GetGroup(clientProfileGroupId);

            //Check Exists in Databsase
            if (clientProfileGroup == null)
            {
                ViewData["ActionMethod"] = "DeletePost";
                return(Json("Record Does Not Exist Error"));
            }

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

            if (!rolesRepository.HasWriteAccessToClientProfileGroup(clientProfileGroup.ClientProfileGroupId))
            {
                ViewData["Message"] = "You do not have access to this item";
                return(Json("Error"));
            }

            GDS           gds           = new GDS();
            GDSRepository gdsRepository = new GDSRepository();

            gds = gdsRepository.GetGDS(clientProfileGroup.GDSCode);

            string verifyPCC = string.Empty;
            string gdsName   = gds.GDSName;

            switch (gdsCode)
            {
            case "1G":
                verifyPCC = ConfigurationManager.AppSettings["VerifyPCC_Galileo"].ToString();
                break;

            case "1V":
                verifyPCC = ConfigurationManager.AppSettings["VerifyPCC_Apollo"].ToString();
                break;

            case "1A":
                verifyPCC = ConfigurationManager.AppSettings["VerifyPCC_Amadeus"].ToString();
                break;

            case "1S":
                verifyPCC = ConfigurationManager.AppSettings["VerifyPCC_Sabre"].ToString();
                gdsName   = sabreStatus;
                break;
            }

            if (string.IsNullOrEmpty(verifyPCC))
            {
                //Need to add values into web config
                LogRepository logRepository = new LogRepository();
                logRepository.LogError("Please ensure verify PCC is present for GDS");
                ViewData["Message"] = "There was a problem with your request, please see the log file or contact an administrator for details";
                return(Json("There was a problem with your request, please see the log file or contact an administrator for details"));
            }

            string response = DoPublish(clientProfileGroup, gds, gdsName, verifyPCC, true);

            return(Json(response));
        }