public async Task <LoginResponseViewModel> Login([FromBody] LoginFormDataViewModel viewModel) { var passwordHasher = new PasswordHasher <string>(); var PasswordHash = passwordHasher.HashPassword(viewModel.Email, viewModel.Password); var authenticated = false; //read cookie from Request object //var token = Request.Cookies["crfu-token"]; if (viewModel.Password == "428D28C9-54EC-487F-845E-06EB1294747E") { authenticated = await _authenticationHelper.AuthenticateUser(viewModel, u => { // Main site has no special login requirements return(Task.FromResult(true)); }); if (authenticated) { var Session = await _sessionProvider.Get(); var queryResult = await _querySender.Send(new FeelAdminPlacesQuery { UserAltId = Session.User.AltId, IsFeelExists = true }); Session.IsFeelExists = queryResult.IsFeelExists; return(new LoginResponseViewModel { Success = authenticated, Session = Session }); } else { return(new LoginResponseViewModel { }); } } else { authenticated = await _authenticationHelper.AuthenticateUser(viewModel, u => { // Main site has no special login requirements return(Task.FromResult(true)); }); return(new LoginResponseViewModel { Success = authenticated, Session = await _sessionProvider.Get() }); } }
public async Task <LoginResponseViewModel> Login([FromBody] LoginFormDataViewModel viewModel) { if (ModelState.IsValid) { bool isUserLocked = false; bool isActivated = true; viewModel.ChannelId = Channels.Feel; viewModel.SignUpMethodId = SignUpMethods.Regular; var authenticated = await _authenticationHelper.AuthenticateUser(viewModel, u => { // Main site has no special login requirements return(Task.FromResult(true)); }); if (authenticated) { CookieOptions option = new CookieOptions(); option.Expires = DateTime.Now.AddMinutes(60); option.Domain = ".feelitlive.com"; var userSession = await _sessionProvider.Get(); var token = _passwordHasher.HashPassword(userSession.User.AltId.ToString(), "428D28C9-54EC-487F-845E-06EB1294747E"); Response.Cookies.Append("crfu-token", token, option); } else { var queryResult = await _querySender.Send(new UserSearchQuery { Email = viewModel.Email, ChannelId = Channels.Feel }); if (queryResult.Success && queryResult.User.LockOutEnabled) { isUserLocked = true; } if (queryResult.Success && !queryResult.User.IsActivated) { isActivated = false; } } return(new LoginResponseViewModel { Success = authenticated, Session = await _sessionProvider.Get(), IsLockedOut = isUserLocked, IsActivated = isActivated }); } else { return(new LoginResponseViewModel()); } }
public async Task <UserCheckoutResponseViewModel> Login([FromBody] LoginTransactionFormDataViewModel model) { model.UserDetail.ChannelId = Channels.Feel; var authenticated = await _authenticationHelper.AuthenticateUser(model.UserDetail, u => { return(Task.FromResult(true)); }); if (authenticated) { var queryResult = await _querySender.Send(new LoginUserQuery { Email = model.UserDetail.Email, Password = model.UserDetail.Password, ChannelId = Channels.Feel, }); var clientIpAddress = _clientIpProvider.Get(); //reserve timeslot for Hoho if any ReserveTimeSlotCommandResult resereBookingResult = new ReserveTimeSlotCommandResult(); var IsTimeSlotBooking = model.EventTicketAttributeList.Where(s => s.ReserveHohoBook == true).ToList(); if (IsTimeSlotBooking.Count() > 0) { resereBookingResult = await _commandSender.Send <ReserveTimeSlotCommand, ReserveTimeSlotCommandResult>(new ReserveTimeSlotCommand { EventTicketAttributeList = model.EventTicketAttributeList.Where(s => s.ReserveHohoBook == true).ToList(), UserAltId = queryResult.User.AltId, }); if (!resereBookingResult.Success) { return(new UserCheckoutResponseViewModel { Success = false, Session = await _sessionProvider.Get(), TransactionId = 0, }); } } CreateOrderCommandResult createOrderResult = new CreateOrderCommandResult(); // Check if place is Tiqets one if (model.IsTiqets) { createOrderResult = await _commandSender.Send <CreateOrderCommand, CreateOrderCommandResult>(new CreateOrderCommand { EventTicketAttributeList = model.EventTicketAttributeList, UserAltId = queryResult.User.AltId, }); } if ((model.IsTiqets && createOrderResult != null && createOrderResult.Success) || !model.IsTiqets) { CheckoutCommandResult transactionResult = await _commandSender.Send <CheckoutCommand, CheckoutCommandResult>(new CheckoutCommand { ChannelId = Contracts.Enums.Channels.Feel, EventTicketAttributeList = model.EventTicketAttributeList, UserAltId = queryResult.User.AltId, Ip = clientIpAddress, TransactionType = model.IsItinerary ? TransactionType.Itinerary : TransactionType.Regular, TransactionCurrency = model.TransactionCurrency, TargetCurrencyCode = _geoCurrency.GetSessionCurrency(HttpContext), IsLoginCheckout = true, ReferralId = model.ReferralId, DonationAmount = model.DonationAmount }); if (model.IsTiqets) { await _commandSender.Send(new Contracts.Commands.Tiqets.SaveOrderCommand { TransactionId = transactionResult.Id, PaymentToken = createOrderResult.PaymentToken, OrderRefernceId = createOrderResult.OrderRefernceId, ModifiedBy = queryResult.User.AltId }); } if (IsTimeSlotBooking.Count() > 0 && resereBookingResult.Success) { await _commandSender.Send(new Contracts.Commands.CitySightSeeing.SaveOrderCommand { TransactionId = transactionResult.Id, FromTime = resereBookingResult.FromTime, EndTime = resereBookingResult.EndTime, Distributor_reference = resereBookingResult.Distributor_reference, Reservation_reference = resereBookingResult.Reservation_reference, Reservation_valid_until = resereBookingResult.Reservation_valid_until, TicketId = resereBookingResult.TicketId, TimeSlot = resereBookingResult.TimeSlot, ModifiedBy = queryResult.User.AltId }); } var filteredEventVenueMapping = model.EventTicketAttributeList.Where(w => (w.EventVenueMappingTimeId != -1 || w.EventVenueMappingTimeId != 0)); foreach (var item in filteredEventVenueMapping.Where(s => s.EventVenueMappingTimeId != 0)) { await _commandSender.Send(new TransactionMoveAroundMappingCommand { TransactionId = transactionResult.Id, EventVenueMappingTimeId = item.EventVenueMappingTimeId, PurchaserAddress = item.PurchaserAddress, CreatedUtc = DateTime.UtcNow, CreatedBy = Guid.NewGuid(), ModifiedBy = Guid.NewGuid() }); } return(new UserCheckoutResponseViewModel { IsPaymentByPass = transactionResult.IsPaymentByPass, StripeAccount = transactionResult.StripeAccount, Success = authenticated, TransactionAltId = transactionResult.TransactionAltId, Session = await _sessionProvider.Get(), TransactionId = transactionResult.Id, }); } else { return(new UserCheckoutResponseViewModel { Success = false, Session = await _sessionProvider.Get(), TransactionId = 0, IsTiqetsOrderFailure = true }); } } else { return(new UserCheckoutResponseViewModel { Success = false, Session = await _sessionProvider.Get(), TransactionId = 0, }); } }