public Response Insert(Core.Entity.ConsumptionHistory consumptionHistory) { try { StoreProcedure storeProcedure = new StoreProcedure("weco.HISTORIAL_CONSUMO_API_ECOFUTURO_Insert"); storeProcedure.AddParameter("@HIAE_WEAP_NOMBRE_VC", consumptionHistory.ApiName); storeProcedure.AddParameter("@HIAE_HOST_VC", consumptionHistory.Host); storeProcedure.AddParameter("@HIAE_ID_CORRELACION_VC", consumptionHistory.CorrelationId); storeProcedure.AddParameter("@HIAE_APP_USUARIO_ID_VC", consumptionHistory.AppUserId); storeProcedure.AddParameter("@HIAE_SOLICITUD_VC", consumptionHistory.Request); storeProcedure.AddParameter("@HIAE_FECHA_SOLICITUD_DT", consumptionHistory.DateRequest); storeProcedure.AddParameter("@HIAE_RESPUESTA_VC", consumptionHistory.Response); storeProcedure.AddParameter("@HIAE_FECHA_RESPUESTA_DT", consumptionHistory.DateResponse); storeProcedure.AddParameter("@HIAE_CODIGO_RESPUESTA_VC", consumptionHistory.CodeResponse); DataTable dataTable = storeProcedure.ReturnData(_connection, _timeOut); Logger.Debug("StoreProcedure: {0} DataTable: {1}", SerializeJson.ToObject(storeProcedure), SerializeJson.ToObject(dataTable)); if (storeProcedure.Error.Length <= 0) { if (dataTable.Rows.Count > 0) { if (Convert.ToInt32(dataTable.Rows[0]["@@IDENTITY"]) > 0) { return(Response.Success(Convert.ToInt64(dataTable.Rows[0]["@@IDENTITY"].ToString()))); } else { Logger.Error("Message: {0}; DataTable: {1}", "", SerializeJson.ToObject(dataTable)); return(Response.Success(0)); } } else { Logger.Error("Message: {0}; DataTable: {1}", "", SerializeJson.ToObject(dataTable)); return(Response.Success(0)); } } else { Logger.Error("Message: {0} StoreProcedure.Error: {1}", Response.CommentMenssage("Sql"), storeProcedure.Error); return(Response.Error(storeProcedure.Error, "Sql")); } } catch (Exception ex) { Logger.Error("Message: {0} Exception: {1}", ex.Message, SerializeJson.ToObject(ex)); return(Response.Error(ex, "Error")); } }
public IActionResult SendCertificate([FromBody] SendCertificateRequest sendCertificateRequest) { Logger.Debug("Request: {0}", Framework.Common.SerializeJson.ToObject(sendCertificateRequest)); DateTime dateRequest = DateTime.Now; var response = new IResponse <SendCertificateResponse>(); string correlationId = string.Empty; try { #region Authorization Usuario y Contraseña if (string.IsNullOrEmpty(Request.Headers["Authorization"])) { var validate = Models.Response.Error(null, "NotAuthenticated"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } AuthenticationHeaderValue authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]); var credentials = Encoding.UTF8.GetString(Convert.FromBase64String(authHeader.Parameter)).Split(':'); correlationId = Request.Headers["Correlation-Id"].ToString(); Core.Entity.User user = new Core.Entity.User() { Public = sendCertificateRequest.PublicToken, UserName = credentials[0], Password = credentials[1] }; var userAuthenticate = _user.Authenticate(user); if (userAuthenticate.Data == null) { var validate = Models.Response.Error("NotAuthenticated"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } Core.Entity.UserPolicy userPolicy = new Core.Entity.UserPolicy() { AppUserId = sendCertificateRequest.AppUserId, IdUser = ((Core.Entity.User)userAuthenticate.Data).Id }; Core.Entity.Policy policy = new Core.Entity.Policy() { Name = Request.Path.Value }; var userPolicyAuthorize = _userPolicy.Authorize(userPolicy, policy); if (userPolicyAuthorize.Data == null) { var validate = Models.Response.Error("NotUnauthorized"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } #endregion var customeModuleEndDate = _clientModule.GetModuleEndDate(sendCertificateRequest.Email); if (customeModuleEndDate.Data == null) { response.Data = null; response.Message = customeModuleEndDate.Message; response.State = customeModuleEndDate.State; return(BadRequest(response)); } var customeModuleEndDateData = (CustomModuleEndDate)customeModuleEndDate.Data; var pdf = ToolImage.GetBase64Image(sendCertificateRequest.CertificateParameters, customeModuleEndDateData.Day, customeModuleEndDateData.Month); SendCertificateResponse responseImage = new SendCertificateResponse() { pdfCertificate = pdf }; response.Data = responseImage; response.Message = Models.Response.CommentMenssage("CertificateCreatedSuccesfuly"); response.State = "000"; return(Ok(response)); } catch (Exception ex) { Logger.Error("Message: {0}; Exception: {1}", ex.Message, Framework.Common.SerializeJson.ToObject(ex)); response.Data = null; response.Message = "Error General"; response.State = "099"; return(BadRequest(response)); } finally { DateTime dateResponse = DateTime.Now; Core.Entity.ConsumptionHistory consumptionHistory = new Core.Entity.ConsumptionHistory { ApiName = Request.Path.Value, Host = Dns.GetHostName() + ":" + Request.Host.Port, CorrelationId = correlationId, AppUserId = sendCertificateRequest.AppUserId, Request = Framework.Common.SerializeJson.ToObject(sendCertificateRequest), DateRequest = dateRequest, Response = Framework.Common.SerializeJson.ToObject(response), DateResponse = dateResponse, CodeResponse = response.State }; _consumptionHistory.Insert(consumptionHistory); Logger.Debug("Request: {0} Response: {1}", sendCertificateRequest, response); } }
public IActionResult PreRegistration([FromBody] PreRegistrationRequest preRegistrationRequest) { Logger.Debug("Request: {0}", Framework.Common.SerializeJson.ToObject(preRegistrationRequest)); DateTime dateRequest = DateTime.Now; var response = new IResponse <PreRegistrationResponse>(); string correlationId = string.Empty; try { #region Authorization Usuario y Contraseña if (string.IsNullOrEmpty(Request.Headers["Authorization"])) { var validate = Models.Response.Error(null, "NotAuthenticated"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } AuthenticationHeaderValue authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]); var credentials = Encoding.UTF8.GetString(Convert.FromBase64String(authHeader.Parameter)).Split(':'); correlationId = Request.Headers["Correlation-Id"].ToString(); Core.Entity.User user = new Core.Entity.User() { Public = preRegistrationRequest.PublicToken, UserName = credentials[0], Password = credentials[1] }; var userAuthenticate = _user.Authenticate(user); if (userAuthenticate.Data == null) { var validate = Models.Response.Error("NotAuthenticated"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } Core.Entity.UserPolicy userPolicy = new Core.Entity.UserPolicy() { AppUserId = preRegistrationRequest.AppUserId, IdUser = ((Core.Entity.User)userAuthenticate.Data).Id }; Core.Entity.Policy policy = new Core.Entity.Policy() { Name = Request.Path.Value }; var userPolicyAuthorize = _userPolicy.Authorize(userPolicy, policy); if (userPolicyAuthorize.Data == null) { var validate = Models.Response.Error("NotUnauthorized"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } #endregion if (!Framework.Common.Tools.WellWrittenEmail(preRegistrationRequest.Email)) { var validate = Models.Response.Error("InvalidEmail"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(BadRequest(response)); } if (preRegistrationRequest.Password != preRegistrationRequest.ConfirmPassword) { var validate = Models.Response.Error("PasswordNotConfirm"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(BadRequest(response)); } var passwordEncrypted = BC.HashPassword(preRegistrationRequest.Password); Core.Entity.Client client = new Core.Entity.Client() { Email = preRegistrationRequest.Email, Ci = preRegistrationRequest.Ci, CiExpedition = preRegistrationRequest.CiExpedition, Password = passwordEncrypted, AcceptTerms = preRegistrationRequest.AcceptTerms, VerificationTokenEmail = Framework.Common.Tools.RandomTokenString(), CreationUser = preRegistrationRequest.AppUserId }; var clientCreateAcountInsert = _client.InsertIfNotexist(client); if (clientCreateAcountInsert.Data == null) { response.Data = null; response.Message = clientCreateAcountInsert.Message; response.State = clientCreateAcountInsert.State; return(BadRequest(response)); } var newClient = (Core.Entity.Client)clientCreateAcountInsert.Data; var linkToken = _configuration.GetValue <string>("Connectors_Email:link") + string.Format("?token={0}", newClient.VerificationTokenEmail); var withOriginMessageVerificationEmail = _configuration.GetValue <string>("Connectors_Email:WithOriginMessageVerificationEmail"); var withoutOriginMessageVerificationEmail = _configuration.GetValue <string>("Connectors_Email:WithoutOriginMessageVerificationEmail"); _emailmanager.SendEmail(newClient.Email, "Verificacion de Correo", withOriginMessageVerificationEmail, withoutOriginMessageVerificationEmail, "VERIFICACIÓN DE CORREO PARA ACTIVAR SU CUENTA", Request.Headers["origin"], linkToken, newClient.VerificationTokenEmail); response.Data = new PreRegistrationResponse { Email = newClient.Email, Ci = newClient.Ci, }; response.Message = Models.Response.CommentMenssage("PreRegistredCompleted"); response.State = "000"; return(Ok(response)); } catch (Exception ex) { Logger.Error("Message: {0}; Exception: {1}", ex.Message, Framework.Common.SerializeJson.ToObject(ex)); response.Data = null; response.Message = "Error General"; response.State = "099"; return(BadRequest(response)); } finally { DateTime dateResponse = DateTime.Now; Core.Entity.ConsumptionHistory consumptionHistory = new Core.Entity.ConsumptionHistory { ApiName = Request.Path.Value, Host = Dns.GetHostName() + ":" + Request.Host.Port, CorrelationId = correlationId, AppUserId = preRegistrationRequest.AppUserId, Request = Framework.Common.SerializeJson.ToObject(preRegistrationRequest), DateRequest = dateRequest, Response = Framework.Common.SerializeJson.ToObject(response), DateResponse = dateResponse, CodeResponse = response.State }; _consumptionHistory.Insert(consumptionHistory); Logger.Debug("Request: {0} Response: {1}", preRegistrationRequest, response); } }
public IActionResult ResetPassword([FromBody] ResetPasswordRequest resetPasswordRequest) { Logger.Debug("Request: {0}", Framework.Common.SerializeJson.ToObject(resetPasswordRequest)); DateTime dateRequest = DateTime.Now; var response = new IResponse <ForgotPasswordResponse>(); string correlationId = string.Empty; try { #region Authorization Usuario y Contraseña if (string.IsNullOrEmpty(Request.Headers["Authorization"])) { var validate = Models.Response.Error(null, "NotAuthenticated"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } AuthenticationHeaderValue authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]); var credentials = Encoding.UTF8.GetString(Convert.FromBase64String(authHeader.Parameter)).Split(':'); correlationId = Request.Headers["Correlation-Id"].ToString(); Core.Entity.User user = new Core.Entity.User() { Public = resetPasswordRequest.PublicToken, UserName = credentials[0], Password = credentials[1] }; var userAuthenticate = _user.Authenticate(user); if (userAuthenticate.Data == null) { var validate = Models.Response.Error("NotAuthenticated"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } Core.Entity.UserPolicy userPolicy = new Core.Entity.UserPolicy() { AppUserId = resetPasswordRequest.AppUserId, IdUser = ((Core.Entity.User)userAuthenticate.Data).Id }; Core.Entity.Policy policy = new Core.Entity.Policy() { Name = Request.Path.Value }; var userPolicyAuthorize = _userPolicy.Authorize(userPolicy, policy); if (userPolicyAuthorize.Data == null) { var validate = Models.Response.Error("NotUnauthorized"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } #endregion if (resetPasswordRequest.Password != resetPasswordRequest.ConfirmPassword) { var validate = Models.Response.Error("PasswordNotConfirm"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(BadRequest(response)); } var passwordEncrypted = BC.HashPassword(resetPasswordRequest.Password); var clientChangePassword = _client.UpdateByEmailForChangePassword(resetPasswordRequest.Email, resetPasswordRequest.Token, passwordEncrypted); if (clientChangePassword.Data == null) { response.Data = null; response.Message = clientChangePassword.Message; response.State = clientChangePassword.State; return(BadRequest(response)); } response.Data = new ForgotPasswordResponse { Email = resetPasswordRequest.Email }; response.Message = Models.Response.CommentMenssage("PasswordResetSuccessful"); response.State = "000"; return(Ok(response)); } catch (Exception ex) { Logger.Error("Message: {0}; Exception: {1}", ex.Message, Framework.Common.SerializeJson.ToObject(ex)); response.Data = null; response.Message = "Error General"; response.State = "099"; return(BadRequest(response)); } finally { DateTime dateResponse = DateTime.Now; Core.Entity.ConsumptionHistory consumptionHistory = new Core.Entity.ConsumptionHistory { ApiName = Request.Path.Value, Host = Dns.GetHostName() + ":" + Request.Host.Port, CorrelationId = correlationId, AppUserId = resetPasswordRequest.AppUserId, Request = Framework.Common.SerializeJson.ToObject(resetPasswordRequest), DateRequest = dateRequest, Response = Framework.Common.SerializeJson.ToObject(response), DateResponse = dateResponse, CodeResponse = response.State }; _consumptionHistory.Insert(consumptionHistory); Logger.Debug("Request: {0} Response: {1}", resetPasswordRequest, response); } }
public IActionResult ForgotPassword([FromBody] ForgotPasswordRequest forgotPasswordRequest) { Logger.Debug("Request: {0}", Framework.Common.SerializeJson.ToObject(forgotPasswordRequest)); DateTime dateRequest = DateTime.Now; var response = new IResponse <ForgotPasswordResponse>(); string correlationId = string.Empty; try { #region Authorization Usuario y Contraseña if (string.IsNullOrEmpty(Request.Headers["Authorization"])) { var validate = Models.Response.Error(null, "NotAuthenticated"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } AuthenticationHeaderValue authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]); var credentials = Encoding.UTF8.GetString(Convert.FromBase64String(authHeader.Parameter)).Split(':'); correlationId = Request.Headers["Correlation-Id"].ToString(); Core.Entity.User user = new Core.Entity.User() { Public = forgotPasswordRequest.PublicToken, UserName = credentials[0], Password = credentials[1] }; var userAuthenticate = _user.Authenticate(user); if (userAuthenticate.Data == null) { var validate = Models.Response.Error("NotAuthenticated"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } Core.Entity.UserPolicy userPolicy = new Core.Entity.UserPolicy() { AppUserId = forgotPasswordRequest.AppUserId, IdUser = ((Core.Entity.User)userAuthenticate.Data).Id }; Core.Entity.Policy policy = new Core.Entity.Policy() { Name = Request.Path.Value }; var userPolicyAuthorize = _userPolicy.Authorize(userPolicy, policy); if (userPolicyAuthorize.Data == null) { var validate = Models.Response.Error("NotUnauthorized"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } #endregion var clientUpdateResetToken = _client.UpdateClientForgotPassword(forgotPasswordRequest.Email, Framework.Common.Tools.RandomTokenString()); if (clientUpdateResetToken.Data == null) { response.Data = null; response.Message = clientUpdateResetToken.Message; response.State = clientUpdateResetToken.State; return(BadRequest(response)); } var clientResetedToken = (Core.Entity.Client)clientUpdateResetToken.Data; var linkToken = _configuration.GetValue <string>("Connectors_Email:linkForgotPassword") + string.Format("?token={0}", clientResetedToken.ResetToken); var withOriginMessageVerificationEmail = _configuration.GetValue <string>("Connectors_Email:WithOriginMessagesendPasswordResetEmail"); var withoutOriginMessageVerificationEmail = _configuration.GetValue <string>("Connectors_Email:WithoutOriginMessagesendPasswordResetEmail"); _emailmanager.SendEmail(clientResetedToken.Email, "Restablecer Contraseña", withOriginMessageVerificationEmail, withoutOriginMessageVerificationEmail, "VERIFICACIÓN DE CORREO PARA RECUPERAR CONTRASEÑA", Request.Headers["origin"], linkToken, clientResetedToken.ResetToken); response.Data = new ForgotPasswordResponse { Email = clientResetedToken.Email }; response.Message = Models.Response.CommentMenssage("ForgotPasswordCheck"); response.State = "000"; return(Ok(response)); } catch (Exception ex) { Logger.Error("Message: {0}; Exception: {1}", ex.Message, Framework.Common.SerializeJson.ToObject(ex)); response.Data = null; response.Message = "Error General"; response.State = "099"; return(BadRequest(response)); } finally { DateTime dateResponse = DateTime.Now; Core.Entity.ConsumptionHistory consumptionHistory = new Core.Entity.ConsumptionHistory { ApiName = Request.Path.Value, Host = Dns.GetHostName() + ":" + Request.Host.Port, CorrelationId = correlationId, AppUserId = forgotPasswordRequest.AppUserId, Request = Framework.Common.SerializeJson.ToObject(forgotPasswordRequest), DateRequest = dateRequest, Response = Framework.Common.SerializeJson.ToObject(response), DateResponse = dateResponse, CodeResponse = response.State }; _consumptionHistory.Insert(consumptionHistory); Logger.Debug("Request: {0} Response: {1}", forgotPasswordRequest, response); } }
public IActionResult MyInformation([FromBody] MyInformationRequest myInformationRequest) { Logger.Debug("Request: {0}", Framework.Common.SerializeJson.ToObject(myInformationRequest)); DateTime dateRequest = DateTime.Now; var response = new IResponse <MyInformationResponse>(); string correlationId = string.Empty; try { #region Authorization Usuario y Contraseña if (string.IsNullOrEmpty(Request.Headers["Authorization"])) { var validate = Models.Response.Error(null, "NotAuthenticated"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } correlationId = Request.Headers["Correlation-Id"].ToString(); Core.Entity.User user = new Core.Entity.User() { Public = myInformationRequest.PublicToken, UserName = myInformationRequest.UserAplication, Password = myInformationRequest.PasswordAplication }; var userAuthenticate = _user.Authenticate(user); if (userAuthenticate.Data == null) { var validate = Models.Response.Error("NotAuthenticated"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } Core.Entity.UserPolicy userPolicy = new Core.Entity.UserPolicy() { AppUserId = myInformationRequest.AppUserId, IdUser = ((Core.Entity.User)userAuthenticate.Data).Id }; Core.Entity.Policy policy = new Core.Entity.Policy() { Name = Request.Path.Value }; var userPolicyAuthorize = _userPolicy.Authorize(userPolicy, policy); if (userPolicyAuthorize.Data == null) { var validate = Models.Response.Error("NotUnauthorized"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } #endregion AuthenticationHeaderValue authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]); var credentialToken = authHeader.Parameter; var responsetokenValidated = _tokenManager.GetPrincipalFromExpiredToken(credentialToken); if (responsetokenValidated.Data == null) { response.Data = null; response.Message = responsetokenValidated.Message; response.State = responsetokenValidated.State; return(BadRequest(response)); } var principal = (ClaimsPrincipal)responsetokenValidated.Data; var claimList = principal.Claims.ToList(); var verifyEmail = claimList[2].Value; if (!verifyEmail.Equals(myInformationRequest.Email.Trim())) { var validate = Models.Response.Error("ClientNotSession"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(BadRequest(response)); } var client = _client.GetInformationClient(myInformationRequest.Email); if (client.Data == null) { response.Data = null; response.Message = client.Message; response.State = client.State; return(BadRequest(response)); } var clientInformation = (MyInformationResponse)client.Data; response.Data = clientInformation; response.Message = Models.Response.CommentMenssage("CorrectUserInformation"); response.State = "000"; return(Ok(response)); } catch (Exception ex) { Logger.Error("Message: {0}; Exception: {1}", ex.Message, Framework.Common.SerializeJson.ToObject(ex)); response.Data = null; response.Message = "Error General"; response.State = "099"; return(BadRequest(response)); } finally { DateTime dateResponse = DateTime.Now; Core.Entity.ConsumptionHistory consumptionHistory = new Core.Entity.ConsumptionHistory { ApiName = Request.Path.Value, Host = Dns.GetHostName() + ":" + Request.Host.Port, CorrelationId = correlationId, AppUserId = "token", Request = Framework.Common.SerializeJson.ToObject(myInformationRequest), DateRequest = dateRequest, Response = Framework.Common.SerializeJson.ToObject(response), DateResponse = dateResponse, CodeResponse = response.State }; _consumptionHistory.Insert(consumptionHistory); Logger.Debug("Request: {0} Response: {1}", myInformationRequest, response); } }
public IActionResult RegistrationComplete([FromBody] RegistrationCompleteRequest registrationCompleteRequest) { Logger.Debug("Request: {0}", Framework.Common.SerializeJson.ToObject(registrationCompleteRequest)); DateTime dateRequest = DateTime.Now; var response = new IResponse <RegistrationCompleteResponse>(); string correlationId = string.Empty; try { #region Authorization Usuario y Contraseña if (string.IsNullOrEmpty(Request.Headers["Authorization"])) { var validate = Models.Response.Error(null, "NotAuthenticated"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } //AuthenticationHeaderValue authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]); //var credentials = Encoding.UTF8.GetString(Convert.FromBase64String(authHeader.Parameter)).Split(':'); correlationId = Request.Headers["Correlation-Id"].ToString(); Core.Entity.User user = new Core.Entity.User() { Public = registrationCompleteRequest.PublicToken, UserName = registrationCompleteRequest.UserAplication, Password = registrationCompleteRequest.PasswordAplication }; var userAuthenticate = _user.Authenticate(user); if (userAuthenticate.Data == null) { var validate = Models.Response.Error("NotAuthenticated"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } Core.Entity.UserPolicy userPolicy = new Core.Entity.UserPolicy() { AppUserId = registrationCompleteRequest.AppUserId, IdUser = ((Core.Entity.User)userAuthenticate.Data).Id }; Core.Entity.Policy policy = new Core.Entity.Policy() { Name = Request.Path.Value }; var userPolicyAuthorize = _userPolicy.Authorize(userPolicy, policy); if (userPolicyAuthorize.Data == null) { var validate = Models.Response.Error("NotUnauthorized"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } #endregion AuthenticationHeaderValue authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]); var credentialToken = authHeader.Parameter; var responsetokenValidated = _tokenManager.GetPrincipalFromExpiredToken(credentialToken); if (responsetokenValidated.Data == null) { response.Data = null; response.Message = responsetokenValidated.Message; response.State = responsetokenValidated.State; return(BadRequest(response)); } var principal = (ClaimsPrincipal)responsetokenValidated.Data; var claimList = principal.Claims.ToList(); var verifyEmail = claimList[2].Value; if (!verifyEmail.Equals(registrationCompleteRequest.Email.Trim())) { var validate = Models.Response.Error("ClientNotSession"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(BadRequest(response)); } /*if (registrationCompleteRequest.Age <= 18 && (DateTime.Now.Year - registrationCompleteRequest.Birthdate.Year) <= 18) * { * var validate = Models.Response.Error("UserNotAgeApropiate"); * response.Data = null; * response.Message = validate.Message; * response.State = validate.State; * return BadRequest(response); * }*/ Core.Entity.Client client = new Core.Entity.Client() { Email = registrationCompleteRequest.Email, NameComplete = registrationCompleteRequest.NameComplete, Gender = registrationCompleteRequest.Gender, Birthdate = registrationCompleteRequest.Birthdate, Age = registrationCompleteRequest.Age, Department = registrationCompleteRequest.Department, City = registrationCompleteRequest.City, Address = registrationCompleteRequest.Address, CellPhone = registrationCompleteRequest.CellPhone, Phone = registrationCompleteRequest.Phone, EducationLevel = registrationCompleteRequest.EducationLevel, Disability = registrationCompleteRequest.Disability, TypeDisability = registrationCompleteRequest.TypeDisability, ReferenceName = registrationCompleteRequest.ReferenceName, ReferencePhone = registrationCompleteRequest.ReferencePhone, ModificationUser = registrationCompleteRequest.AppUserId }; var clientCreateAcountInsert = _client.UpdateRegistrationComplete(client, registrationCompleteRequest.AppUserId); if (!(Convert.ToInt32(clientCreateAcountInsert.Data) > 0)) { response.Data = null; response.Message = clientCreateAcountInsert.Message; response.State = clientCreateAcountInsert.State; return(BadRequest(response)); } response.Data = new RegistrationCompleteResponse { Email = registrationCompleteRequest.Email, RegistrationComplete = true, NameComplete = registrationCompleteRequest.NameComplete }; response.Message = Models.Response.CommentMenssage("RegistrationCompleted"); response.State = "000"; return(Ok(response)); } catch (Exception ex) { Logger.Error("Message: {0}; Exception: {1}", ex.Message, Framework.Common.SerializeJson.ToObject(ex)); response.Data = null; response.Message = "Error General"; response.State = "099"; return(BadRequest(response)); } finally { DateTime dateResponse = DateTime.Now; Core.Entity.ConsumptionHistory consumptionHistory = new Core.Entity.ConsumptionHistory { ApiName = Request.Path.Value, Host = Dns.GetHostName() + ":" + Request.Host.Port, CorrelationId = correlationId, AppUserId = registrationCompleteRequest.AppUserId, Request = Framework.Common.SerializeJson.ToObject(registrationCompleteRequest), DateRequest = dateRequest, Response = Framework.Common.SerializeJson.ToObject(response), DateResponse = dateResponse, CodeResponse = response.State }; _consumptionHistory.Insert(consumptionHistory); Logger.Debug("Request: {0} Response: {1}", registrationCompleteRequest, response); } }
public IActionResult Login([FromBody] AuthenticateRequest authenticateRequest) { Logger.Debug("Request: {0}", Framework.Common.SerializeJson.ToObject(authenticateRequest)); DateTime dateRequest = DateTime.Now; var response = new IResponse <AuthenticateResponse>(); string correlationId = string.Empty; try { #region Authorization Usuario y Contraseña if (string.IsNullOrEmpty(Request.Headers["Authorization"])) { var validate = Models.Response.Error(null, "NotAuthenticated"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } AuthenticationHeaderValue authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]); var credentials = Encoding.UTF8.GetString(Convert.FromBase64String(authHeader.Parameter)).Split(':'); correlationId = Request.Headers["Correlation-Id"].ToString(); Core.Entity.User user = new Core.Entity.User() { Public = authenticateRequest.PublicToken, UserName = credentials[0], Password = credentials[1] }; var userAuthenticate = _user.Authenticate(user); if (userAuthenticate.Data == null) { var validate = Models.Response.Error("NotAuthenticated"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } Core.Entity.UserPolicy userPolicy = new Core.Entity.UserPolicy() { AppUserId = authenticateRequest.AppUserId, IdUser = ((Core.Entity.User)userAuthenticate.Data).Id }; Core.Entity.Policy policy = new Core.Entity.Policy() { Name = Request.Path.Value }; var userPolicyAuthorize = _userPolicy.Authorize(userPolicy, policy); if (userPolicyAuthorize.Data == null) { var validate = Models.Response.Error("NotUnauthorized"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } #endregion var clientValidated = _client.GetClientValitated(authenticateRequest.Email, authenticateRequest.Password); if (clientValidated.Data == null) { response.Data = null; response.Message = clientValidated.Message; response.State = clientValidated.State; return(BadRequest(response)); } var clientLogin = (Core.Entity.Client)clientValidated.Data; if (!clientLogin.IsVerified) { var validate = Models.Response.Error(null, "NotVerifyEmail"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(BadRequest(response)); } var claims = new List <Claim> { new Claim(JwtRegisteredClaimNames.Iat, Guid.NewGuid().ToString()), new Claim(JwtRegisteredClaimNames.UniqueName, clientLogin.NameComplete), new Claim(JwtRegisteredClaimNames.Email, clientLogin.Email), }; var accessToken = _tokenManager.GenerateAccessToken(claims); string ipAddress = ""; if (Request.Headers.ContainsKey("X-Forwarded-For")) { ipAddress = Request.Headers["X-Forwarded-For"]; } else { ipAddress = HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString(); } var refreshToken = _tokenManager.GenerateRefreshToken(ipAddress, _timeExpirationTokenRefresh); refreshToken.CreationUser = authenticateRequest.AppUserId; refreshToken.EmailClient = authenticateRequest.Email; var refreshTokenInsertClient = _refreshToken.Insert(refreshToken); if (refreshTokenInsertClient.Data == null) { response.Data = null; response.State = refreshTokenInsertClient.State; response.Message = refreshTokenInsertClient.Message; return(BadRequest(response)); } var refreshTokenRemove = _refreshToken.RemoveOldRefreshTokens(authenticateRequest.Email, _configuration.GetValue <int>("JwtSettings:RefreshTokenTTL")); if (refreshTokenRemove.Data == null) { response.Data = null; response.State = refreshTokenRemove.State; response.Message = refreshTokenRemove.Message; return(BadRequest(response)); } var cookieOptions = new CookieOptions { //HttpOnly = true, Expires = DateTime.UtcNow.AddDays(_configuration.GetValue <double>("JwtSettings:TimeExpirationTokenRefresh")), SameSite = SameSiteMode.None, Secure = true, }; Response.Cookies.Append("refreshToken", refreshToken.Token, cookieOptions); var clientValidatedData = (Core.Entity.Client)clientValidated.Data; response.Data = new AuthenticateResponse() { Email = clientValidatedData.Email, CurrentModule = clientValidatedData.CurrentModule, Role = clientValidatedData.Role == Core.Entity.Role.Admin ? "Admin" : "User", Verify = clientValidatedData.IsVerified, RegistredCompleted = clientValidatedData.CompleteRegister, Token = accessToken, RefreshToken = refreshToken.Token }; response.Message = Models.Response.CommentMenssage("LoginSuccessful"); response.State = "000"; return(Ok(response)); } catch (Exception ex) { Logger.Error("Message: {0}; Exception: {1}", ex.Message, Framework.Common.SerializeJson.ToObject(ex)); response.Data = null; response.Message = "Error General"; response.State = "099"; return(BadRequest(response)); } finally { DateTime dateResponse = DateTime.Now; Core.Entity.ConsumptionHistory consumptionHistory = new Core.Entity.ConsumptionHistory { ApiName = Request.Path.Value, Host = Dns.GetHostName() + ":" + Request.Host.Port, CorrelationId = correlationId, AppUserId = "token", Request = Framework.Common.SerializeJson.ToObject(authenticateRequest), DateRequest = dateRequest, Response = Framework.Common.SerializeJson.ToObject(response), DateResponse = dateResponse, CodeResponse = response.State }; _consumptionHistory.Insert(consumptionHistory); Logger.Debug("Request: {0} Response: {1}", authenticateRequest, response); } }
public IActionResult AnswerQuestion([FromBody] AnswersRequest answersRequest) { Logger.Debug("Request: {0}", Framework.Common.SerializeJson.ToObject(answersRequest)); DateTime dateRequest = DateTime.Now; var response = new IResponse <AnswersResponse>(); string correlationId = string.Empty; try { #region Authorization Usuario y Contraseña if (string.IsNullOrEmpty(Request.Headers["Authorization"])) { var validate = Models.Response.Error(null, "NotAuthenticated"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } correlationId = Request.Headers["Correlation-Id"].ToString(); Core.Entity.User user = new Core.Entity.User() { Public = answersRequest.PublicToken, UserName = answersRequest.UserAplication, Password = answersRequest.PasswordAplication }; var userAuthenticate = _user.Authenticate(user); if (userAuthenticate.Data == null) { var validate = Models.Response.Error("NotAuthenticated"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } Core.Entity.UserPolicy userPolicy = new Core.Entity.UserPolicy() { AppUserId = answersRequest.AppUserId, IdUser = ((Core.Entity.User)userAuthenticate.Data).Id }; Core.Entity.Policy policy = new Core.Entity.Policy() { Name = Request.Path.Value }; var userPolicyAuthorize = _userPolicy.Authorize(userPolicy, policy); if (userPolicyAuthorize.Data == null) { var validate = Models.Response.Error("NotUnauthorized"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } #endregion AuthenticationHeaderValue authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]); var credentialToken = authHeader.Parameter; var responsetokenValidated = _tokenManager.GetPrincipalFromExpiredToken(credentialToken); if (responsetokenValidated.Data == null) { response.Data = null; response.Message = responsetokenValidated.Message; response.State = responsetokenValidated.State; return(BadRequest(response)); } var principal = (ClaimsPrincipal)responsetokenValidated.Data; var claimList = principal.Claims.ToList(); var verifyEmail = claimList[2].Value; if (!verifyEmail.Equals(answersRequest.Email.Trim())) { var validate = Models.Response.Error("ClientNotSession"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(BadRequest(response)); } var moduleClient = _clientModule.InsertClientModuleAnswers(answersRequest.Email, answersRequest.ModuleNumber, answersRequest.AppUserId); if (moduleClient.Data == null) { response.Data = null; response.Message = moduleClient.Message; response.State = moduleClient.State; return(BadRequest(response)); } var moduleData = (Core.Entity.Coupon)moduleClient.Data; var contestDate = _configuration.GetValue <string>("ContestDate"); var separateDate = contestDate.Split("/"); DateTime contestDateFormated = new DateTime(Convert.ToInt32(separateDate[2]), Convert.ToInt32(separateDate[1]), Convert.ToInt32(separateDate[0])); string dateInText = String.Format(new CultureInfo("es-BO"), "{0:D}", contestDateFormated); var messageCoupon = _configuration.GetValue <string>("Connectors_Email:MessageCoupon"); _emailmanager.SendEmail(claimList[2].Value, "Finalización de módulo", messageCoupon, messageCoupon, "¡FELICIDADES!", Request.Headers["origin"], "", "", moduleData.CouponNumber, moduleData.CouponRegistred, dateInText); AnswersResponse questionAswerResponse = new AnswersResponse() { Email = answersRequest.Email }; response.Data = questionAswerResponse; response.Message = Models.Response.CommentMenssage("AnswerRegistred"); response.State = "000"; return(Ok(response)); } catch (Exception ex) { Logger.Error("Message: {0}; Exception: {1}", ex.Message, Framework.Common.SerializeJson.ToObject(ex)); response.Data = null; response.Message = "Error General"; response.State = "099"; return(BadRequest(response)); } finally { DateTime dateResponse = DateTime.Now; Core.Entity.ConsumptionHistory consumptionHistory = new Core.Entity.ConsumptionHistory { ApiName = Request.Path.Value, Host = Dns.GetHostName() + ":" + Request.Host.Port, CorrelationId = correlationId, AppUserId = "token", Request = Framework.Common.SerializeJson.ToObject(answersRequest), DateRequest = dateRequest, Response = Framework.Common.SerializeJson.ToObject(response), DateResponse = dateResponse, CodeResponse = response.State }; _consumptionHistory.Insert(consumptionHistory); Logger.Debug("Request: {0} Response: {1}", answersRequest, response); } }
public IActionResult GetQuestionsAswer([FromBody] QuestionAswerRequest questionAswerRequest) { Logger.Debug("Request: {0}", Framework.Common.SerializeJson.ToObject(questionAswerRequest)); DateTime dateRequest = DateTime.Now; var response = new IResponse <QuestionAswerResponse>(); string correlationId = string.Empty; try { #region Authorization Usuario y Contraseña if (string.IsNullOrEmpty(Request.Headers["Authorization"])) { var validate = Models.Response.Error(null, "NotAuthenticated"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } AuthenticationHeaderValue authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]); //var credentials = Encoding.UTF8.GetString(Convert.FromBase64String(authHeader.Parameter)).Split(':'); correlationId = Request.Headers["Correlation-Id"].ToString(); Core.Entity.User user = new Core.Entity.User() { Public = questionAswerRequest.PublicToken, UserName = questionAswerRequest.UserAplication, Password = questionAswerRequest.PasswordAplication }; var userAuthenticate = _user.Authenticate(user); if (userAuthenticate.Data == null) { var validate = Models.Response.Error("NotAuthenticated"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } Core.Entity.UserPolicy userPolicy = new Core.Entity.UserPolicy() { AppUserId = questionAswerRequest.AppUserId, IdUser = ((Core.Entity.User)userAuthenticate.Data).Id }; Core.Entity.Policy policy = new Core.Entity.Policy() { Name = Request.Path.Value }; var userPolicyAuthorize = _userPolicy.Authorize(userPolicy, policy); if (userPolicyAuthorize.Data == null) { var validate = Models.Response.Error("NotUnauthorized"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } #endregion var answerAndQuestion = _module.GetAnswerAndQuestions(questionAswerRequest.ModuleNumber); if (answerAndQuestion.Data == null) { response.Data = null; response.Message = answerAndQuestion.Message; response.State = answerAndQuestion.State; return(Unauthorized(response)); } var answerAndQuestionResponse = (QuestionAswerResponse)answerAndQuestion.Data; foreach (QuestionAswerResponse.Question question in answerAndQuestionResponse.Questions) { foreach (string answer in question.AnswerWithoutProcess.Split("@")) { var answerResponse = answer.Split(":"); question.Answers.Add(new QuestionAswerResponse.Question.Answer { IdAnswer = Convert.ToInt64(answerResponse[0]), DetailAnswer = answerResponse[1].ToString(), State = answerResponse[2].Equals("1") }); } } response.Data = answerAndQuestionResponse; response.Message = Models.Response.CommentMenssage("QuestionsAnswersSuccessful"); response.State = "000"; return(Ok(response)); } catch (Exception ex) { Logger.Error("Message: {0}; Exception: {1}", ex.Message, Framework.Common.SerializeJson.ToObject(ex)); response.Data = null; response.Message = "Error General"; response.State = "099"; return(BadRequest(response)); } finally { DateTime dateResponse = DateTime.Now; Core.Entity.ConsumptionHistory consumptionHistory = new Core.Entity.ConsumptionHistory { ApiName = Request.Path.Value, Host = Dns.GetHostName() + ":" + Request.Host.Port, CorrelationId = correlationId, AppUserId = "token", Request = Framework.Common.SerializeJson.ToObject(questionAswerRequest), DateRequest = dateRequest, Response = Framework.Common.SerializeJson.ToObject(response), DateResponse = dateResponse, CodeResponse = response.State }; _consumptionHistory.Insert(consumptionHistory); Logger.Debug("Request: {0} Response: {1}", questionAswerRequest, response); } }
public IActionResult RevokeToken([FromBody] RevokeRequest revokeRequest) { Logger.Debug("Request: {0}", Framework.Common.SerializeJson.ToObject(revokeRequest)); DateTime dateRequest = DateTime.Now; var response = new IResponse <RevokeResponse>(); string correlationId = string.Empty; try { #region Authorization Usuario y Contraseña if (string.IsNullOrEmpty(Request.Headers["Authorization"])) { var validate = Models.Response.Error(null, "NotAuthenticated"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } //AuthenticationHeaderValue authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]); //var credentials = Encoding.UTF8.GetString(Convert.FromBase64String(authHeader.Parameter)).Split(':'); correlationId = Request.Headers["Correlation-Id"].ToString(); Core.Entity.User user = new Core.Entity.User() { Public = revokeRequest.PublicToken, UserName = revokeRequest.UserAplication, Password = revokeRequest.PasswordAplication }; var userAuthenticate = _user.Authenticate(user); if (userAuthenticate.Data == null) { var validate = Models.Response.Error("NotAuthenticated"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } Core.Entity.UserPolicy userPolicy = new Core.Entity.UserPolicy() { AppUserId = revokeRequest.AppUserId, IdUser = ((Core.Entity.User)userAuthenticate.Data).Id }; Core.Entity.Policy policy = new Core.Entity.Policy() { Name = Request.Path.Value }; var userPolicyAuthorize = _userPolicy.Authorize(userPolicy, policy); if (userPolicyAuthorize.Data == null) { var validate = Models.Response.Error("NotUnauthorized"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(Unauthorized(response)); } #endregion AuthenticationHeaderValue authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]); var credentialToken = authHeader.Parameter; var responsetokenValidated = _tokenManager.GetPrincipalFromExpiredToken(credentialToken); if (responsetokenValidated.Data == null) { response.Data = null; response.Message = responsetokenValidated.Message; response.State = responsetokenValidated.State; return(BadRequest(response)); } var principal = (ClaimsPrincipal)responsetokenValidated.Data; var claimList = principal.Claims.ToList(); var verifyEmail = claimList[2].Value; if (!verifyEmail.Equals(revokeRequest.Email.Trim())) { var validate = Models.Response.Error("ClientNotSession"); response.Data = null; response.Message = validate.Message; response.State = validate.State; return(BadRequest(response)); } var token = revokeRequest.Token ?? Request.Cookies["refreshToken"]; string ipAddress = ""; if (Request.Headers.ContainsKey("X-Forwarded-For")) { ipAddress = Request.Headers["X-Forwarded-For"]; } else { ipAddress = HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString(); } var revokeToken = _refreshToken.RevokeToken(token, ipAddress); if (revokeToken.Data == null) { response.Data = null; response.State = revokeToken.State; response.Message = revokeToken.Message; return(BadRequest(response)); } response.Data = new RevokeResponse { Token = revokeRequest.Token }; response.Message = Models.Response.CommentMenssage("TokenRevokeSuccessful"); response.State = "000"; return(Ok(response)); } catch (Exception ex) { Logger.Error("Message: {0}; Exception: {1}", ex.Message, Framework.Common.SerializeJson.ToObject(ex)); response.Data = null; response.Message = "Error General"; response.State = "099"; return(BadRequest(response)); } finally { DateTime dateResponse = DateTime.Now; Core.Entity.ConsumptionHistory consumptionHistory = new Core.Entity.ConsumptionHistory { ApiName = Request.Path.Value, Host = Dns.GetHostName() + ":" + Request.Host.Port, CorrelationId = correlationId, AppUserId = revokeRequest.AppUserId, Request = Framework.Common.SerializeJson.ToObject(revokeRequest), DateRequest = dateRequest, Response = Framework.Common.SerializeJson.ToObject(response), DateResponse = dateResponse, CodeResponse = response.State }; _consumptionHistory.Insert(consumptionHistory); Logger.Debug("Request: {0} Response: {1}", revokeRequest, response); } }