// GET: /Export public FileStreamResult Export(int id) { string clientProfileBuilderText = GDSIntegration.WriteGDSProfile(id); var byteArray = Encoding.ASCII.GetBytes(clientProfileBuilderText); var stream = new MemoryStream(byteArray); return(File(stream, "text/plain", string.Format("ClientProfileGroup-{0}.txt", id.ToString()))); }
// GET: /Publish public ActionResult Publish(int id) { ClientProfileGroup clientProfileGroup = new ClientProfileGroup(); clientProfileGroup = clientProfileGroupRepository.GetGroup(id); //Check Exists if (clientProfileGroup == null) { ViewData["ActionMethod"] = "ViewGet"; return(View("RecordDoesNotExistError")); } ClientProfileGroupVM clientProfileGroupVM = new ClientProfileGroupVM(); clientProfileGroupRepository.EditGroupForDisplay(clientProfileGroup); clientProfileGroupVM.ClientProfileGroup = clientProfileGroup; //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; } } } } //GDS Window string clientProfileBuilderText = GDSIntegration.WriteGDSProfile(id); if (!string.IsNullOrEmpty(clientProfileBuilderText)) { ViewData["clientProfileText"] = clientProfileBuilderText; } return(View(clientProfileGroupVM)); }
// // 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)); }
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)); }
public string DoPublish([Bind(Exclude = "HierarchyType, HierarchyItem, HierarchyCode")] ClientProfileGroup clientProfileGroup, [Bind(Include = "GDSCode, GDSName")] GDS gds, string gdsName, string formattedPcc, bool verify = false) { /*GDS Integration*/ //https://docs.google.com/document/d/1TMOvJzZmePKjFTt0qFUC6_JGRz0x508uIiV3jGCa7b0/ //TLS Update System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; ClientProfileService lService = null; CWTResponse CWTResponse = null; string errorMessage = string.Empty; try { //This is a singleton, and should be used strictly to retrieve existing profiles from the GDS lService = ClientProfileService.getInstance; if (lService == null) { return("Service Error"); } ClientProfile clientProfile = null; ClientProfileResponse clientProfileResponse = lService.GetProfile(gdsName, formattedPcc, "", clientProfileGroup.ClientProfileGroupName, ""); if (clientProfileResponse != null && clientProfileResponse.ClientProfile != null) { clientProfile = clientProfileResponse.ClientProfile; } if (clientProfileResponse != null && clientProfileResponse.MessageList != null && clientProfileResponse.MessageList.Count > 0) { errorMessage = string.Format("These errors were returned by the GDS for PCC when retrieving profile:"); foreach (string message in clientProfileResponse.MessageList) { errorMessage += string.Format("{0}<br/>", message); } LogRepository logRepository = new LogRepository(); logRepository.LogError(errorMessage); return(errorMessage); } //Get Lines List <ClientProfileItemVM> clientProfileItemsList = GDSIntegration.GetProfileLineItems(clientProfileGroup.ClientProfileGroupId); List <ClientProfileLine> clientProfileItemLines = GDSIntegration.WriteProfileLines(clientProfileItemsList, gds.GDSCode); //Modify Profile if (clientProfile != null) { //Replace current lines with new lines clientProfile.ProfileLines = clientProfileItemLines; CWTResponse = clientProfile.DeleteProfileLines(); CWTResponse = clientProfile.ModifyProfile(); } //Create New else { clientProfile = new ClientProfile( gds.GDSName, formattedPcc, clientProfileGroup.ClientProfileGroupName, string.Empty, clientProfileItemLines); CWTResponse = clientProfile.SaveProfile(); } } catch (Exception ex) { 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("There was a problem with your request, please see the log file or contact an administrator for details"); } //Update Client Profile Publish Date if (CWTResponse != null && CWTResponse.Result != CWTResponse.ResultStatus.Error) { try { //Don't update timestamp for verify process if (!verify) { clientProfileGroupRepository.UpdateGroupPublishDate(clientProfileGroup); } } catch (SqlException ex) { //Versioning Error if (ex.Message == "SQLVersioningError") { ViewData["ReturnURL"] = "/ClientProfileGroup.mvc/Publish/" + clientProfileGroup.ClientProfileGroupId; return("Version Error"); } 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("Error"); } } else if (CWTResponse != null && CWTResponse.MessageList != null && CWTResponse.MessageList.Count > 0) { errorMessage = string.Format("These errors were returned by the GDS for PCC when retrieving profile:"); foreach (string message in CWTResponse.MessageList) { errorMessage += string.Format("{0}<br/>", message); } errorMessage += "<br/>Please correct the profile and try to re-publish again."; LogRepository logRepository = new LogRepository(); logRepository.LogError(errorMessage); return(errorMessage); } else { errorMessage = "There was a problem with your request, please see the log file or contact an administrator for details."; LogRepository logRepository = new LogRepository(); logRepository.LogError(errorMessage); return(errorMessage); } return("true"); }