public IntegrationLoginResponse RequestIntegrationToken([FromBody] IntegrationLoginRequest request) { IntegrationLoginResponse response = new IntegrationLoginResponse(); try { if (!string.IsNullOrEmpty(request.Key) && !string.IsNullOrEmpty(request.Source) && !string.IsNullOrEmpty(request.User)) { int tokenTimeout = Convert.ToInt32(_configuration["JWTTokenTimeout"]); var result = _UserRepository.GetIntegrationLoginDetails(request.Key, request.User, request.Source); if (result != null && result.Any()) { var curUser = _UserRepository.GetUserDetails(result.First().UserName); string userRoles = ""; int i = 0; foreach (UserRoleDetails role in curUser.UserRoleDetails) { i++; userRoles = userRoles + role.RoleName; if (i != curUser.UserRoleDetails.Count) { userRoles = userRoles + ", "; } } var token = CreateToken.GenerateToken(result.First().UserName, _configuration["SecurityKey"], _configuration["ValidIssuer"], _configuration["ValidAudience"], curUser.CompanyName, userRoles, tokenTimeout); response.Token = new JwtSecurityTokenHandler().WriteToken(token); response.Expiry = tokenTimeout.ToString(); response.UserInfo = result.FirstOrDefault(); response.Message = "Success"; return(response); } else { response.Token = null; response.Expiry = null; response.Message = "Invalid Credentials"; return(response); } } else { response.Token = null; response.Expiry = null; response.Message = "UnAuthorized Request"; return(response); } } catch (Exception ex) { response.Token = null; response.Expiry = null; response.Message = ex.Message; return(response); } }
public async Task <IntegrationLoginResponse> GetIntegrationToken(IntegrationLoginRequest objTokenRequest) { IntegrationLoginResponse objLoginResponse = new IntegrationLoginResponse(); objLoginResponse = await serviceProxy.PostData(_configuration.GetValue <string>("ServiceGetIntegrationToken"), objTokenRequest, typeof(IntegrationLoginResponse)); return(objLoginResponse); }
public async Task <IActionResult> UpdateOpportunityInfo([FromBody] OpportunityPartnerReq model) { ManageOpportunityReq request = new ManageOpportunityReq(); OpportunityPartnerRes response = new OpportunityPartnerRes(); try { if (!ModelState.IsValid) { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "Request is not valid"; return(BadRequest(ModelState)); } else { if (model != null) { request = SetOpportunityInfoWithModel(model); IntegrationLoginResponse objTokenResponse = loginProviders.GetIntegrationToken(request.CredentialInfo).Result; if (string.Compare(objTokenResponse.Message, "Success", true) == 0 && objTokenResponse.Token != "") { request.CreatedUser = objTokenResponse.UserInfo.UserName; request.Application = request.CredentialInfo.Source; request.Token = objTokenResponse.Token; request.LoggedInUserContactId = objTokenResponse.UserInfo.Contact_Id; response = quoteProviders.UpdatePartnerOpportunityDetails(request, objTokenResponse.Token).Result; if (response.ResponseStatus != null && !string.IsNullOrEmpty(response.ResponseStatus.Status) && response.ResponseStatus.Status.ToLower() == "failed") { return(BadRequest(response.ResponseStatus)); } } else { return(Unauthorized()); } } else { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "Opportunity details can not be save due to error."; return(BadRequest(response.ResponseStatus)); } } } catch (Exception ex) { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "An error occurs " + ex.Message.ToString(); return(BadRequest(response.ResponseStatus)); } return(Ok(new { Status = response.ResponseStatus.Status, ErrorMessage = response.ResponseStatus.ErrorMessage, StatusMessage = response.ResponseStatus.StatusMessage, Id = request.OpportunityInfo.OpportunityId })); }
public async Task <IActionResult> CreateUpdateAgentInfo([FromBody] AgentPartnerReq model) { ManageAgentReq request = new ManageAgentReq(); var response = new ManageAgentRes(); try { if (!ModelState.IsValid) { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "Request is not valid"; return(BadRequest(ModelState)); } else { if (model != null) { request = SetAgentInfoWithModel(model); IntegrationLoginResponse objTokenResponse = loginProviders.GetIntegrationToken(request.CredentialInfo).Result; if (string.Compare(objTokenResponse.Message, "Success", true) == 0 && objTokenResponse.Token != "") { request.CreatedUser = objTokenResponse.UserInfo.UserName; request.Application = request.CredentialInfo.Source; request.Token = objTokenResponse.Token; request.LoggedInUserContactId = objTokenResponse.UserInfo.Contact_Id; var countryInfo = agentProviders.GetPartnerCountryDetails(new Attributes { Attribute_Id = request.AgentInfo.Country }, objTokenResponse.Token).Result; if (countryInfo != null && !string.IsNullOrEmpty(countryInfo.ResortInfo.Voyager_Resort_Id)) { request.AgentInfo.CountryName = countryInfo.ResortInfo.ResortName; } else { return(BadRequest(countryInfo.ResponseStatus)); } var cityInfo = agentProviders.GetPartnerCityDetails(new Attributes { Attribute_Id = request.AgentInfo.City }, request.AgentInfo.Country, countryInfo.ResortInfo.ResortCode, objTokenResponse.Token).Result; if (cityInfo != null && !string.IsNullOrEmpty(cityInfo.ResortInfo.Voyager_Resort_Id)) { request.AgentInfo.CityName = cityInfo.ResortInfo.ResortName; } else { return(BadRequest(cityInfo.ResponseStatus)); } request.AgentInfo.Country = countryInfo.ResortInfo.Voyager_Resort_Id; request.AgentInfo.City = cityInfo.ResortInfo.Voyager_Resort_Id; response = agentProviders.CreateUpdatePartnerAgentDetails(request, objTokenResponse.Token).Result; if (response.ResponseStatus != null && !string.IsNullOrEmpty(response.ResponseStatus.Status) && response.ResponseStatus.Status.ToLower() == "duplicate") { return(StatusCode(Microsoft.AspNetCore.Http.StatusCodes.Status422UnprocessableEntity, response.ResponseStatus)); } if (response.ResponseStatus != null && !string.IsNullOrEmpty(response.ResponseStatus.StatusMessage) && response.ResponseStatus.StatusMessage.ToLower() == "companycodeerror") { return(BadRequest(response.ResponseStatus)); } } else { return(Unauthorized()); } } else { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "AgentInfo details can not be save due to error."; return(BadRequest(response.ResponseStatus)); } } } catch (Exception ex) { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "An error occurs " + ex.Message.ToString(); return(BadRequest(response.ResponseStatus)); } return(Ok(new { Status = response.ResponseStatus.Status, ErrorMessage = response.ResponseStatus.ErrorMessage, StatusMessage = response.ResponseStatus.StatusMessage, Id = response.CompanyInfo.Company_Id })); }
public async Task <IActionResult> UpdateAgentContactInfo([FromBody] AgentContactPartnerReq model) { ManageAgentContactReq request = new ManageAgentContactReq(); var response = new AgentThirdPartyGetRes(); try { if (!ModelState.IsValid) { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "Request is not valid"; return(BadRequest(ModelState)); } else { if (model != null) { request = SetAgentContactInfoWithModel(model); IntegrationLoginResponse objTokenResponse = loginProviders.GetIntegrationToken(request.CredentialInfo).Result; if (string.Compare(objTokenResponse.Message, "Success", true) == 0 && objTokenResponse.Token != "") { request.ContactMappingInfo.CreateUser = objTokenResponse.UserInfo.UserName; request.ContactMappingInfo.Application = request.CredentialInfo.Source; request.Token = objTokenResponse.Token; request.LoggedInUserContactId = objTokenResponse.UserInfo.Contact_Id; //request.ContactMappingInfo.CreateUser = objTokenResponse.UserInfo.u AgentThirdPartyGetReq CompanyInfoRequest = new AgentThirdPartyGetReq(); CompanyInfoRequest.PartnerEntityCode = request.CompanyId; CompanyInfoRequest.Application = request.ContactMappingInfo.Application; var CompanyInfo = agentProviders.GetPartnerAgentDetails(CompanyInfoRequest, objTokenResponse.Token).Result; if (CompanyInfo != null && string.IsNullOrEmpty(CompanyInfo.CompanyId)) { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "Company/Agent details doesn't exists."; return(NotFound(response.ResponseStatus)); } request.SelectedCompanyId = CompanyInfo.CompanyId; AgentThirdPartyGetReq ContactInfoRequest = new AgentThirdPartyGetReq(); ContactInfoRequest.PartnerEntityCode = request.ContactMappingInfo.PartnerEntityCode; ContactInfoRequest.PartnerEntityName = request.ContactMappingInfo.PartnerEntityName; ContactInfoRequest.Application = request.ContactMappingInfo.Application; var ContactInfo = agentProviders.GetPartnerAgentContactDetails(ContactInfoRequest, objTokenResponse.Token).Result; request.SelectedContactId = ContactInfo.ContactId; if (ContactInfo != null && !string.IsNullOrEmpty(request.SelectedCompanyId) && string.IsNullOrEmpty(ContactInfo.ContactId)) { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "Contact details doesn't exists."; return(NotFound(response.ResponseStatus)); } //Update Contact against the agent/contact response = agentProviders.UpdatePartnerAgentContactDetails(request, objTokenResponse.Token).Result; } else { return(Unauthorized()); } } else { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "Contact Info details can not be save due to error."; return(BadRequest(response.ResponseStatus)); } } } catch (Exception ex) { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "An error occurs " + ex.Message.ToString(); return(BadRequest(response.ResponseStatus)); } //return Ok(response.ResponseStatus); return(Ok(new { Status = response.ResponseStatus.Status, ErrorMessage = response.ResponseStatus.ErrorMessage, StatusMessage = response.ResponseStatus.StatusMessage, Id = response.ContactId })); }
public async Task <IActionResult> IntegrationLogin(IntegrationLoginViewModel model, string returnUrl) { IntegrationLoginRequest objLoginRequest = new IntegrationLoginRequest(); objLoginRequest.User = !string.IsNullOrEmpty(model.User) ? model.User.Replace(' ', '+') : string.Empty; // User secret key Encrypted objLoginRequest.Key = !string.IsNullOrEmpty(model.Key) ? model.Key.Replace(' ', '+') : string.Empty; //Application Key Encrypted objLoginRequest.Source = model.Source; objLoginRequest.Module = model.Module; objLoginRequest.Operation = model.Operation; if (string.IsNullOrEmpty(returnUrl)) { DeleteAllCookies(); } else { return(RedirectToLocal(returnUrl)); } List <ProductAttributeDetails> commonSession = new List <ProductAttributeDetails>(); if (!string.IsNullOrEmpty(returnUrl) && HttpContext.Session.GetComplexData <List <ProductAttributeDetails> >(SessionName) != null) { commonSession = HttpContext.Session.GetComplexData <List <ProductAttributeDetails> >(SessionName); return(RedirectToLocal(returnUrl)); } IntegrationLoginResponse objTokenResponse = loginProviders.GetIntegrationToken(objLoginRequest).Result; if (objTokenResponse.Message == "Success" && objTokenResponse.Token != "") { Response.Cookies.Append("JWTToken", objTokenResponse.Token, new CookieOptions { Expires = DateTimeOffset.Now.AddMinutes(Convert.ToInt32(1000)) }); commonSession.Add(new ProductAttributeDetails { AttributeId = "JWTToken", Value = objTokenResponse.Token }); UserDetailsRequest objUserDetailsRequest = new UserDetailsRequest(); objUserDetailsRequest.UserName = objTokenResponse.UserInfo.Email; UserDetailsResponse objUserDetailsResponse = loginProviders.GetUserDetails(objUserDetailsRequest, objTokenResponse.Token).Result; if (objUserDetailsResponse == null) { throw new ApplicationException("UserDetailsResponse is null"); } string EmailId = objTokenResponse.UserInfo.Email; int time = Convert.ToInt32(objTokenResponse.Expiry); SetCookiesForLoginUser(objUserDetailsResponse, EmailId, Convert.ToInt32(objTokenResponse.Expiry)); commonSession.Add(new ProductAttributeDetails { AttributeId = "EmailId", Value = EmailId }); commonSession.Add(new ProductAttributeDetails { AttributeId = "UserName", Value = objUserDetailsResponse.FirstName + " " + objUserDetailsResponse.LastName }); commonSession.Add(new ProductAttributeDetails { AttributeId = "ContactDisplayMessage", Value = objUserDetailsResponse.ContactDisplayMessage }); commonSession.Add(new ProductAttributeDetails { AttributeId = "CompanyName", Value = objUserDetailsResponse.CompanyName }); commonSession.Add(new ProductAttributeDetails { AttributeId = "Currency", Value = objUserDetailsResponse.Currency }); commonSession.Add(new ProductAttributeDetails { AttributeId = "BalanceAmount", Value = objUserDetailsResponse.BalanceAmount }); commonSession.Add(new ProductAttributeDetails { AttributeId = "CreditAmount", Value = objUserDetailsResponse.CreditAmount }); commonSession.Add(new ProductAttributeDetails { AttributeId = "Photo", Value = objUserDetailsResponse.Photo ?? "" }); commonSession.Add(new ProductAttributeDetails { AttributeId = "UserRoles", Value = objUserDetailsResponse.UserRoleDetails.Count > 0 ? string.Join(",", objUserDetailsResponse.UserRoleDetails.Select(a => a.RoleName)) : "No Role" }); commonSession.Add(new ProductAttributeDetails { AttributeId = "VoyagerUser_Id", Value = objUserDetailsResponse.VoyagerUser_Id }); commonSession.Add(new ProductAttributeDetails { AttributeId = "CompanyId", Value = objUserDetailsResponse.CompanyId }); commonSession.Add(new ProductAttributeDetails { AttributeId = "ContactId", Value = objUserDetailsResponse.ContactId }); HttpContext.Session.SetComplexData(SessionName, commonSession); //Set user login date in mUsers UserSetReq request = new UserSetReq(); request.User.VoyagerUser_Id = objUserDetailsResponse.VoyagerUser_Id; request.User.LastLoginDate = DateTime.Now; UserSetRes response = loginProviders.UpdateUser(request, objTokenResponse.Token).Result; // create claims List <Claim> claims = new List <Claim> { new Claim(ClaimTypes.Name, objTokenResponse.UserInfo.Email), new Claim(ClaimTypes.Email, objTokenResponse.UserInfo.Email) }; // create identity ClaimsIdentity identity = new ClaimsIdentity(claims, "cookie"); // create principal ClaimsPrincipal principal = new ClaimsPrincipal(identity); // sign-in await HttpContext.SignInAsync( principal : principal, properties : new AuthenticationProperties { ExpiresUtc = DateTime.UtcNow.AddMinutes(Convert.ToInt32(objTokenResponse.Expiry)) }); if (returnUrl != null) { return(RedirectToLocal(returnUrl)); } else { return(CommonRedirectionBasedOnSource(objLoginRequest, objTokenResponse.Token)); } } else { ViewBag.Unautherized = true; return(View("IntegrationError")); } }