Esempio n. 1
0
        public IHttpActionResult ConfirmEmail([FromUri] string guid)
        {
            ConfirmedUser user = null;

            FCS = FlyingCenterSystem.GetInstance();
            IAnonymousUserFacade af = FCS.GetFacade(null) as AnonymousUserFacade;

            user = af.ConfirmMyEmail(guid);

            if (user.UserName == null)
            {
                return(NotFound());
            }
            if (user.EmailCon == "was already confirmed")
            {
                return(Ok(user.EmailCon));
            }
            if (user.Type == "customer")
            {
                Customer newCustomer = Redis.RedisGetCustomer("localhost", user.UserName);
                newCustomer.ID = af.AddCustomerToData(newCustomer);

                return(Ok($"{user.UserName} was confirmed"));
            }

            AirLineCompany airline = Redis.RedisGetAirline("localhost", user.UserName);

            return(Ok($"{user.UserName} was confirmed one of our admins will get back to you. thank you!"));
        }
Esempio n. 2
0
        public void SendConfirmationCode(Guid userId)
        {
            if (userId == Guid.Empty)
            {
                throw new ArgumentNullException(nameof(userId));
            }
            try
            {
                _connection.BeginTransaction();
                var user = _connection.Table <User>().SingleOrDefault(usr => usr.UserId == userId);

                if (user == null)
                {
                    throw new DomainObjectMissingException(nameof(user));
                }

                if (!_connection.Table <ConfirmedUser>().Any(cu => cu.UserId == userId))
                {
                    var random        = new Random();
                    var confCode      = random.Next();
                    var ConfirmedUser = new ConfirmedUser(userId, confCode);
                    var message       = new MailMessage(_from, user.Email, "Please confirm your account.", $"Your confirmation code is: {confCode}.");
                    _mailer.Send(message);
                    _connection.Insert(ConfirmedUser);
                }

                _connection.Commit();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                _connection.Rollback();
                throw;
            }
        }
Esempio n. 3
0
        public async Task <IHttpActionResult> ConfirmAttendance(int id, ConfirmedAttendees confirmed)
        {
            var e = db.Events.Find(id);

            if (e == null)
            {
                return(BadRequest());
            }
            foreach (string u in confirmed.Usernames)
            {
                ApplicationUser attendee = null;
                if (e.ConfirmedGuests.Count > 0)
                {
                    ConfirmedUser alreadyConfirmed = e.ConfirmedGuests.Where(x => x.User.UserName.Equals(u, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
                    if (alreadyConfirmed != null)
                    {
                        attendee = alreadyConfirmed.User;
                    }
                }
                if (attendee == null)
                {
                    ApplicationUser user = db.Users.FirstOrDefault(x => x.UserName.Equals(u, StringComparison.OrdinalIgnoreCase));
                    e.ConfirmedGuests.Add(new ConfirmedUser()
                    {
                        User = user, ConfirmedUserId = Guid.NewGuid()
                    });
                    try
                    {
                        db.SaveChanges();
                        var myMessage = new SendGridMessage();
                        myMessage.From = new MailAddress("*****@*****.**");
                        myMessage.AddTo(string.Format(@"{0} <{1}>", user.UserName, user.Email));
                        myMessage.Subject = string.Format("Attendance confirmation for {0}", e.EventTitle);
                        myMessage.Html    = String.Format("<p>You have just been confirmed as attending by the host of {0}</p>", e.EventTitle);
                        myMessage.Text    = String.Format("You have just been confirmed as attending by the host of {0}", e.EventTitle);
                        var apiKey       = System.Environment.GetEnvironmentVariable("SENDGRID_APIKEY");
                        var transportWeb = new Web(apiKey);

                        // Send the email.
                        await transportWeb.DeliverAsync(myMessage);
                        await PostNotification("gcm", String.Format("You have been confirmed as attending for {0}", e.EventTitle), user.Email);
                    }
                    catch (DbUpdateConcurrencyException)
                    {
                        if (!EventExists(id))
                        {
                            return(NotFound());
                        }
                        else
                        {
                            throw;
                        }
                    }
                }
            }
            return(Json(new { success = true }));
        }
        public async Task CreateAsync(User vaucherUser, string vaucheeId, bool isClubAdmin = false, bool isCityAdmin = false)
        {
            var confirmedUser = new ConfirmedUser {
                UserID = vaucheeId, ConfirmDate = DateTime.Now, isClubAdmin = isClubAdmin, isCityAdmin = isCityAdmin
            };
            var approver = new Approver {
                UserID = await _userManager.GetUserIdAsync(vaucherUser), ConfirmedUser = confirmedUser
            };

            confirmedUser.Approver = approver;
            await _repoWrapper.ConfirmedUser.CreateAsync(confirmedUser);

            await _repoWrapper.SaveAsync();

            await SendEmailConfirmedNotificationAsync(await _userManager.FindByIdAsync(vaucheeId), vaucherUser);
        }
Esempio n. 5
0
        public async Task CreateAsync(User user, string userId, bool isClubAdmin = false, bool isCityAdmin = false)
        {
            var id = await _userManager.GetUserIdAsync(user);

            var conUser = new ConfirmedUser {
                UserID = userId, ConfirmDate = DateTime.Now, isClubAdmin = isClubAdmin, isCityAdmin = isCityAdmin
            };
            var appUser = new Approver {
                UserID = id, ConfirmedUser = conUser
            };

            conUser.Approver = appUser;
            await _repoWrapper.ConfirmedUser.CreateAsync(conUser);

            await _repoWrapper.SaveAsync();
        }
Esempio n. 6
0
        // adding a new user to db after email authentication before adding as a customer
        public ConfirmedUser ConfirmEmail(string guid)
        {
            ConfirmedUser confirmedUser = new ConfirmedUser();

            //string userName = null;
            //string confirmed = null;
            using (cmd.Connection = new SqlConnection(FlightCenterConfig.DAO_CON))
            {
                cmd.Connection.Open();
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = $"SELECT * FROM SignUp WHERE GUID = '{guid}'";

                using (SqlDataReader reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        ConfirmedUser a = new ConfirmedUser
                        {
                            UserName = (string)reader["USER_NAME"],
                            Email    = (string)reader["EMAIL"],
                            Type     = (string)reader["TYPE"],
                            EmailCon = (string)reader["EMAIL_CON"],
                            Guid     = (string)reader["GUID"]
                        };
                        confirmedUser = a;
                    }
                }
                if (confirmedUser.EmailCon == "true")
                {
                    confirmedUser.EmailCon = "was already confirmed";
                    return(confirmedUser);
                }
                if (confirmedUser.EmailCon == "false")
                {
                    cmd.Connection.Close();
                    cmd.Connection.Open();
                    cmd.CommandText = $"UPDATE SignUp SET EMAIL_CON = 'true' where USER_NAME = '{confirmedUser.UserName}'";
                    cmd.ExecuteNonQuery();
                }
            }

            return(confirmedUser);
        }
Esempio n. 7
0
        public IActionResult ApproveUser(string userId)
        {
            if (userId != null)
            {
                var id = _userManager.GetUserId(User);

                var conUs = new ConfirmedUser {
                    UserID = userId, ConfirmDate = DateTime.Now
                };
                var appUs = new Approver {
                    UserID = id, ConfirmedUser = conUs
                };
                conUs.Approver = appUs;

                _repoWrapper.ConfirmedUser.Create(conUs);
                _repoWrapper.Save();
                return(RedirectToAction("UserProfile", "Account", new { userId = userId }));
            }
            return(RedirectToAction("HandleError", "Error", new { code = 505 }));
        }
        public async Task NotifyNewPlastMembersAndCityAdminsAsync_Valid_Test()
        {
            // Arrange
            var users = new List <User>()
            {
                new User()
                {
                    RegistredOn = DateTime.Now.Date.Subtract(new TimeSpan(366, 0, 0, 0))
                }
            };

            var user = new UserDTO
            {
                UserProfile = new UserProfileDTO
                {
                    Birthday = DateTime.Now
                },

                CityMembers = new[]
                {
                    new CityMembers
                    {
                        City = new DataAccess.Entities.City
                        {
                            Name = "CityName"
                        }
                    }
                }
            };

            var cityProfile = new CityProfileDTO
            {
                Admins = new List <CityAdministrationDTO>
                {
                    new CityAdministrationDTO
                    {
                        User = new CityUserDTO()
                    }
                },
                Head = new CityAdministrationDTO
                {
                    User = new CityUserDTO()
                }
            };

            var roles = new List <string>()
            {
                Roles.Supporter,
                Roles.FormerPlastMember
            };

            var confirmedUsers = new ConfirmedUser[]
            {
                new ConfirmedUser()
                {
                    isClubAdmin = true
                }
            }.AsQueryable <ConfirmedUser>();

            _mockRepoWrapper
            .Setup(x => x.User.GetAllAsync(It.IsAny <Expression <Func <User, bool> > >(),
                                           It.IsAny <Func <IQueryable <User>, IIncludableQueryable <User, object> > >()))
            .ReturnsAsync(users);
            _mockUserManager
            .Setup((x) => x.IsInRoleAsync(It.IsAny <User>(),
                                          It.IsAny <string>()))
            .ReturnsAsync(false);
            _mockUserManager
            .Setup(x => x.GetRolesAsync(It.IsAny <User>()))
            .ReturnsAsync(roles);
            _mockRepoWrapper
            .Setup(r => r.ConfirmedUser.FindByCondition(It.IsAny <Expression <Func <ConfirmedUser, bool> > >()))
            .Returns(confirmedUsers);
            _mockUserManager
            .Setup(u => u.FindByIdAsync(It.IsAny <string>()))
            .ReturnsAsync(new User());
            _mockUserManager
            .Setup(x => x.AddToRoleAsync(It.IsAny <User>(),
                                         It.IsAny <string>()));
            _mockUserService.Setup(x => x.GetUserAsync(It.IsAny <string>()))
            .ReturnsAsync(user);
            _mockCityService.Setup(x => x.GetCityAdminsAsync(It.IsAny <int>()))
            .ReturnsAsync(cityProfile);
            _mockEmailSendingService
            .Setup(x => x.SendEmailAsync(It.IsAny <string>(),
                                         It.IsAny <string>(),
                                         It.IsAny <string>(),
                                         It.IsAny <string>()))
            .ReturnsAsync(true);
            _mockEmailContentService.Setup(x => x.GetGreetingForNewPlastMemberEmailAsync(It.IsAny <string>()))
            .ReturnsAsync(new EmailModel());
            _mockEmailContentService
            .Setup(x => x.GetCityAdminAboutNewPlastMemberEmail(It.IsAny <string>(), It.IsAny <string>(),
                                                               It.IsAny <DateTime>())).Returns(new EmailModel());

            // Act
            await _newPlastMemberEmailGreetingService.NotifyNewPlastMembersAndCityAdminsAsync();

            // Assert
            _mockRepoWrapper.Verify();
            _mockUserManager.Verify();
            _mockEmailSendingService.Verify();
        }