Example #1
0
        public static void Main(string[] args)
        {
            DotEnv.Config();
            var manager = new CommunicationManager();

            manager.NewServerNeeded += ManagerOnNewServerNeeded;
        }
Example #2
0
        public string AddNetworkAdmin(int networkId, string adminEmail)
        {
            try
            {

                if (adminEmail != null)
                {
                    User admin = userManager.GetUserByEmail(adminEmail);
                    if (admin != null)
                    {
                        Network network = networkAccessor.GetNetwork(networkId);
                        if (network != null)
                        {
                            if (network.admins.Contains(admin))
                            {
                                //User is already an admin of this network
                                return "admin exists";
                            }
                            else
                            {
                                bool added = networkAccessor.AddAdmin(networkId, admin.id);
                                return "success";
                            }
                        }
                        else
                        {
                            //Network not found in database
                            return "network not found";
                        }
                    }
                    else
                    {
                        Network network = networkAccessor.GetNetwork(networkId);
                        if (network != null)
                        {
                            CommunicationManager communicationManager = new CommunicationManager();
                            if (network.networkIdentifier == null)
                            {
                                string identifier = SetNetworkIdentifier(network);
                                communicationManager.SendRegisterNetworkAdminInvite(adminEmail, identifier);
                            }
                            else
                            {
                                communicationManager.SendRegisterNetworkAdminInvite(adminEmail, network.networkIdentifier);
                            }
                            return "success";
                        }
                        else
                        {
                            return "network not found";
                        }
                    }
                }
                else
                {
                    //need the email
                    return "error";
                }
            }
            catch (Exception ex)
            {
                logAccessor.CreateLog(DateTime.Now, "Network Manager - AddNetworkAdmin", ex.StackTrace);
                return "error";
            }
        }
Example #3
0
 //public bool DeActivateIdentifier(Network network)
 //{
 //}
 public JsonModels.Network AddNetworkUsers(Network network, IEnumerable<string> userEmails)
 {
     try
     {
         if (network != null)
         {
             if (userEmails != null)
             {
                 foreach (string email in userEmails)
                 {
                     if (email != null)
                     {
                         ValidationEngine.ValidateEmail(email);
                         User addUser = userManager.GetUserByEmail(email);
                         if (addUser != null)
                         {
                             bool added = networkAccessor.AddNetworkUser(network.id, addUser.id);
                             if (network.GetType().Name.Contains("Network_SubNetwork"))
                             {
                                 Network_SubNetwork subNet = (Network_SubNetwork)network;
                                 bool added2 = networkAccessor.AddNetworkUser(subNet.Network_TopNetwork.id, addUser.id);
                             }
                             else if (network.GetType().Name.Contains("Network_Group"))
                             {
                                 Network_Group groupNet = (Network_Group)network;
                                 bool added3 = networkAccessor.AddNetworkUser(groupNet.Network_SubNetwork.id, addUser.id);
                                 bool added4 = networkAccessor.AddNetworkUser(groupNet.Network_SubNetwork.Network_TopNetwork.id, addUser.id);
                             }
                         }
                         else
                         {
                             CommunicationManager communicationManager = new CommunicationManager();
                             if (network.networkIdentifier == null)
                             {
                                 string identifier = SetNetworkIdentifier(network);
                                 communicationManager.SendRegisterNetworkInvite(email, identifier);
                             }
                             else
                             {
                                 communicationManager.SendRegisterNetworkInvite(email, network.networkIdentifier);
                             }
                         }
                     }
                 }
                 return GetNetworkJson(networkAccessor.GetNetwork(network.id));
             }
             else
             {
                 //no emails
                 return null;
             }
         }
         else
         {
             //no network
             return null;
         }
     }
     catch(Exception ex)
     {
         logAccessor.CreateLog(DateTime.Now, "Network Manager - AddNetworkUsers", ex.StackTrace);
         return null;
     }
 }
        public string ForgotPassword(string email)
        {
            if (Request.RequestType.Equals("OPTIONS", StringComparison.InvariantCultureIgnoreCase))  //This is a preflight request
            {
                return null;
            }
            try
            {
                CommunicationManager communicationManager = new CommunicationManager();

                User user = userManager.GetUserByEmail(email);
                if (user == null)
                {
                    return AddErrorHeader("Email not found", 1);
                }

                string resetPasswordHash = userManager.ResetPassword(user);
                user.forgotPasswordHash = resetPasswordHash;
                userManager.UpdateUser(user);

                communicationManager.SendForgotPassword(user.email, resetPasswordHash, user.firstName);

                return AddSuccessHeader("Email sent", true);
            }
            catch (Exception ex)
            {
                return AddErrorHeader("Error sending forgot password email", 1);
            }
        }
        public JsonResult Share(string link, string email)
        {
            try
            {

                if (ValidationEngine.ValidateEmail(email) != ValidationEngine.Success)
                {
                    return Json(new { Error = "Please enter a valid email." });
                }

                string senderName = null;
                try
                {
                    string userNombre = User.Identity.Name;
                    if (userNombre.Length > 0)
                    {
                        // user is logged in, so we'll put their name in the email
                        User user = userManager.GetUser(User.Identity.Name);
                        senderName = user.firstName;
                    }
                    else
                    {
                        // person who wants to share the profile isn't logged in
                        senderName = "Someone";
                    }
                    link = "vestn.com/v/" + link;
                }
                catch (Exception e)
                {
                    logAccessor.CreateLog(DateTime.Now, System.Reflection.MethodBase.GetCurrentMethod().Name.ToString(), e.ToString());
                }

                CommunicationManager cm = new CommunicationManager();
                if (cm.SendShareEmail(link, email, senderName))
                {
                    return Json(new { ShareStatus = "success" });
                }
                else
                {
                    return Json(new { Error = "Email failed to send." });
                }

            }
            catch (Exception ex)
            {
                logAccessor.CreateLog(DateTime.Now, this.GetType().ToString() + "." + System.Reflection.MethodBase.GetCurrentMethod().Name.ToString(), ex.ToString());
                return Json(new { Error = "Problem sharing link" });
            }
        }
        public JsonResult SendFeedbackToUser(string friendUsername, string message)
        {
            try
            {
                string userFirstName = null;
                string friendFirstName = null;
                string friendEmail = null;
                User user = userManager.GetUser(User.Identity.Name);
                try
                {
                    if (user == null)
                    {
                        userFirstName = "Someone";
                    }
                    else if (user.firstName == null)
                    {
                        userFirstName = user.userName;
                    }
                    else
                    {
                        userFirstName = userManager.GetUser(User.Identity.Name).firstName;
                    }

                    friendFirstName = userManager.GetUser(friendUsername).firstName;
                    friendEmail = userManager.GetUser(friendUsername).email;
                }
                catch (Exception e)
                {
                    logAccessor.CreateLog(DateTime.Now, System.Reflection.MethodBase.GetCurrentMethod().Name.ToString(), e.ToString());
                }

                CommunicationManager cm = new CommunicationManager();
                cm.SendFeedbackToUserEmail(userFirstName, friendFirstName, friendEmail, message);

                return Json(new { FeedbackStatus = "success" });
            }
            catch (Exception ex)
            {
                logAccessor.CreateLog(DateTime.Now, this.GetType().ToString() + "." + System.Reflection.MethodBase.GetCurrentMethod().Name.ToString(), ex.ToString());
                return Json(new { Error = "Problem submitting feedback" });
            }
        }
        public string Register(string email, string password, string networkJoinCode = null)
        {
            if (Request != null)
            {
                if (Request.RequestType.Equals("OPTIONS", StringComparison.InvariantCultureIgnoreCase))
                {
                    return null;
                }
            }
            try
            {
                CommunicationManager communicationManager = new CommunicationManager();
                string userName = email.Substring(0, email.IndexOf('@'));
                userName = userName.Replace("+", "");
                RegisterModel model = new RegisterModel { Email = email, UserName = userName, Password = password, ConfirmPassword = password };
                if (ValidationEngine.ValidateEmail(model.Email) != ValidationEngine.Success)
                {
                    return AddErrorHeader("Invalid Email", 1);
                }
                if (!userManager.CheckDuplicateEmail(model.Email))
                {
                    return AddErrorHeader("A user with that email already exists in our database", 1);
                }
                if (ValidationEngine.ValidateUsername(model.UserName) != ValidationEngine.Success)
                {
                    return AddErrorHeader(ValidationEngine.ValidateUsername(model.UserName), 1);
                }
                if (!userManager.CheckDuplicateUsername(model.UserName))
                {
                    return AddErrorHeader("A user with that username already exists in our database", 1);
                }
                if (ValidationEngine.ValidatePassword(model.Password) != ValidationEngine.Success)
                {
                    return AddErrorHeader(ValidationEngine.ValidateUsername(model.Password), 1);
                }
                if (model.Password != model.ConfirmPassword)
                {
                    return AddErrorHeader("Password fields do not match", 1);
                }
                if (ModelState.IsValid)
                {
                    User newUser = model.toUser();
                    newUser.profileURL = newUser.userName;

                    newUser = userManager.CreateUser(newUser, model.Password);

                    userManager.ActivateUser(newUser, true);
                    //communicationManager.SendVerificationMail(userManager.GetProviderUserKey(newUser), newUser.userName, newUser.email);

                    if (networkJoinCode != null)
                    {
                        NetworkManager nm = new NetworkManager();
                        Network network = nm.GetNetworkByIdentifier(networkJoinCode);
                        if (network != null)
                        {
                            string[] emailArray = { email };
                            nm.AddNetworkUsers(network, emailArray);
                        }
                    }
                    userManager.SendVerifyEmail(email);

                    AuthenticaitonEngine authEngine = new AuthenticaitonEngine();
                    string token = authEngine.logIn(newUser.id, newUser.userName);
                    JsonModels.RegisterResponse rr = new JsonModels.RegisterResponse();
                    rr.userId = newUser.id;
                    rr.token = token;
                    return AddSuccessHeader(Serialize(rr));
                }
                else
                {
                    return AddErrorHeader("User Model Not Valid", 1);
                }
            }
            catch (Exception ex)
            {
                logAccessor.CreateLog(DateTime.Now, this.GetType().ToString() + "." + System.Reflection.MethodBase.GetCurrentMethod().Name.ToString(), ex.ToString());
                return AddErrorHeader("Something went wrong while creating this user", 1);
            }
        }
        //This get use by both add feedback and Get help request
        public JsonResult AddFeedback(string message, string subject)
        {
            try
            {
                string name = null;
                string userEmail = null;
                try
                {
                    name = User.Identity.Name;
                    userEmail = userManager.GetUser(name).email;
                }
                catch (Exception e)
                {
                    logAccessor.CreateLog(DateTime.Now, System.Reflection.MethodBase.GetCurrentMethod().Name.ToString(), e.ToString());
                }
                FeedbackAccessor feedbackAccesor = new FeedbackAccessor();
                feedbackAccesor.CreateFeedback(name, message, subject);
                if (subject == "Error Report")
                {
                    CommunicationManager cm = new CommunicationManager();
                    cm.SendErrorEmail(name, message);
                }
                else if (subject == "Help Request")
                {
                    CommunicationManager cm = new CommunicationManager();
                    cm.SendHelpRequestEmail(userEmail, message);
                }
                else if (subject == "Feedback")
                {
                    CommunicationManager cm = new CommunicationManager();
                    cm.SendSiteFeedbackEmail(name, userEmail, message);
                }

                return Json(new { FeedbackStatus = "success" });
            }
            catch (Exception ex)
            {
                logAccessor.CreateLog(DateTime.Now, this.GetType().ToString() + "." + System.Reflection.MethodBase.GetCurrentMethod().Name.ToString(), ex.ToString());
                return Json(new { Error = "Problem submitting feedback" });
            }
        }