/// <summary> /// Gets User Configuration /// </summary> /// <returns>UserConfiguration</returns> public UserConfiguration GetUserConfiguration(string Username) { try { //Get Configs from MongoDB Mongo MongoWrite = new Mongo(); return MongoWrite.GetUserConfiguration(Username); } catch (Exception ex) { Logger.WriteErrorLog(ex); return null; } }
/// <summary> /// Updates username /// </summary> /// <param name="_username">User name</param> /// <returns>true if success</returns> public bool UpdateUsername(string _username, string _existingUsername) { try { //Update Username in SQL Server using (var cn = new SqlConnection(@"Data Source=(LocalDB)")) { string _sql = @"UPDATE [dbo].[System_Users] SET Username = @e WHERE [Username] = @c"; var cmd = new SqlCommand(_sql, cn); cmd.Parameters .Add(new SqlParameter("@e", SqlDbType.NVarChar)) .Value = _username; cmd.Parameters .Add(new SqlParameter("@c", SqlDbType.NVarChar)) .Value = _existingUsername; cn.Open(); cmd.ExecuteNonQuery(); } var mongo = new Mongo(); var config = mongo.GetUserConfiguration(_existingUsername); if (config.AccountInfoNotification) { MailgunAgent.SendChangeEmail(GetCurrentEmail(_username), "Your Queue View username has been updated."); } mongo.UpdateUsernameInAllCollections(_username, _existingUsername); return true; } catch (Exception ex) { Logger.WriteErrorLog(ex); return false; } }
/// <summary> /// Changes password /// </summary> /// <returns>true if success</returns> public bool SubmitSupportTicket(SupportTicket ticketData, string username) { try { //Write Ticket to MongoDB Mongo MongoWrite = new Mongo(); if (!string.IsNullOrEmpty(username)) { var config = MongoWrite.GetUserConfiguration(username); if (config.ClosedTicketNotification) { MailgunAgent.SendChangeEmail(GetCurrentEmail(username), "You have created a support ticket on the Queue View."); } } MongoWrite.WriteTicketData(ticketData); return true; } catch (Exception ex) { Logger.WriteErrorLog(ex); return false; } }
/// <summary> /// Updates user info to SQL Server /// </summary> /// <returns>EmailUpdateStatus</returns> public EmailUpdateStatus UpdateEmail(string _email, string _username) { try { var UpdateEmail = false; using (var cn = new SqlConnection(@"Data Source=(LocalDB)")) { string _sql = @"SELECT [Email] FROM [dbo].[System_Users] " + @"WHERE [Username] = @e"; var cmd = new SqlCommand(_sql, cn); cmd.Parameters .Add(new SqlParameter("@e", SqlDbType.NVarChar)) .Value = _username; cn.Open(); var reader = cmd.ExecuteReader(); while (reader.Read()) { if (_email != reader[0].ToString()) { UpdateEmail = true; break; } } } if (UpdateEmail) { using (var cn = new SqlConnection(@"Data Source=(LocalDB)")) { string _sql2 = @"UPDATE [dbo].[System_Users] SET Email = @e WHERE [Username] = @c"; var cmd2 = new SqlCommand(_sql2, cn); cmd2.Parameters .Add(new SqlParameter("@e", SqlDbType.NVarChar)) .Value = _email; cmd2.Parameters .Add(new SqlParameter("@c", SqlDbType.NVarChar)) .Value = _username; cn.Open(); cmd2.ExecuteNonQuery(); var mongo = new Mongo(); var config = mongo.GetUserConfiguration(_username); if (config.AccountInfoNotification) { MailgunAgent.SendChangeEmail(_email, "Your Queue View email has been updated."); } return EmailUpdateStatus.Changed; } } else { return EmailUpdateStatus.Same; } } catch (Exception ex) { Logger.WriteErrorLog(ex); return EmailUpdateStatus.Error; } }
public ActionResult SaveBillingCardInfo(UserModel.User user, System.Web.Mvc.FormCollection collection) { var billingID = user.GetBillingID(User.Identity.Name); if (billingID != String.Empty) { Customer customer = Gateway.BrainTreeGateway.Customer.Find(billingID); string token = customer.CreditCards[0].Token; var request = new CustomerRequest { CreditCard = new CreditCardRequest { CardholderName = collection["name"], Number = collection["number"], ExpirationMonth = collection["month"], ExpirationYear = collection["year"], CVV = collection["cvv"], Options = new CreditCardOptionsRequest { UpdateExistingToken = token } } }; Result<Customer> updateResult = Gateway.BrainTreeGateway.Customer.Update(billingID, request); if (updateResult.IsSuccess()) { var mongo = new Mongo(); var config = mongo.GetUserConfiguration(User.Identity.Name); if (config.AccountInfoNotification) { MailgunAgent.SendChangeEmail(user.GetCurrentEmail(User.Identity.Name), "Your Queue View credit card has been changed."); } return RedirectToAction("AccountDashboard", "User", new { ADCC = "ChangeCard" }); } else { //Fail to update with Braintree return RedirectToAction("AccountDashboard", "User", new { ADCCFAIL = updateResult.Message }); } } else { //Fail to retrieve Billing ID return RedirectToAction("Error", "User"); } }