public static void Main(string[] args) { DotEnv.Config(); var manager = new CommunicationManager(); manager.NewServerNeeded += ManagerOnNewServerNeeded; }
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"; } }
//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" }); } }