Advertisement
Guest User

Untitled

a guest
Mar 2nd, 2017
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.83 KB | None | 0 0
  1. [RoutePrefix("api/users")]
  2. [EnableCors(origins: "http://pincopalli.com", headers: "*", methods: "*")]
  3. public class UserController : ApiController
  4. {
  5. [Route("checkusername/{_username}")]
  6. [HttpGet]
  7. public bool CheckUsername(string _username)
  8. {
  9. try
  10. {
  11. using (BugMeEntities database = new BugMeEntities())
  12. {
  13. database.Database.Connection.Open();
  14.  
  15. if (database.users.Where(x => x.name.Equals(_username)).FirstOrDefault() != null)
  16. {
  17. return false;
  18. }
  19. }
  20.  
  21. return true;
  22. }
  23. catch(Exception ex)
  24. {
  25. return false;
  26. }
  27. }
  28.  
  29. [Route("checkemail/{_email}")]
  30. [HttpGet]
  31. public bool CheckEmail(string _email)
  32. {
  33. try
  34. {
  35. using (BugMeEntities database = new BugMeEntities())
  36. {
  37. database.Database.Connection.Open();
  38.  
  39. if (database.users.Where(x => x.email.Equals(_email)).FirstOrDefault() != null)
  40. {
  41. return false;
  42. }
  43. }
  44.  
  45. return true;
  46. }
  47. catch (Exception ex)
  48. {
  49. return false;
  50. }
  51. }
  52.  
  53. [DisableCors]
  54. [Route("register")]
  55. [HttpPost]
  56. public User.Response Register([FromBody]User.Register _user)
  57. {
  58. try
  59. {
  60. if(_user.GetType().GetProperties().Select(x => x.GetValue(_user)).Any(x => x != null))
  61. {
  62. using (BugMeEntities database = new BugMeEntities())
  63. {
  64. database.Database.Connection.Open();
  65.  
  66. if(database.users.Where(x => x.name.Equals(_user.username)).Count() == 0)
  67. {
  68. if (database.users.Where(x => x.email.Equals(_user.email)).Count() == 0)
  69. {
  70. string newPassword = randomPassword();
  71.  
  72. bool emailSent = Utility.newMail(_user.email, "Benvenuto su BugMe", $"Benvenuto <b>{_user.username}</b>,<br>La nuova password necessaria per accedere รจ: <b>{newPassword}</b>.");
  73.  
  74. if (emailSent)
  75. {
  76. users user = new users { name = _user.username, password = newPassword, email = _user.email, active = true };
  77. database.users.Add(user);
  78. database.SaveChanges();
  79. }
  80.  
  81. return new User.Response { status = true, message = $"Congratulazioni, ti sei registrato con successo! nAbbiamo inviato un'email a {_user.email} contenente la password necessaria per accedere." };
  82. }
  83. else
  84. {
  85. throw new ArgumentException("Email non disponibile.");
  86. }
  87. }
  88. else
  89. {
  90. throw new ArgumentException("Username non disponibile.");
  91. }
  92. }
  93. }
  94. else
  95. {
  96. throw new ArgumentException("Compilare tutti i campi del form.");
  97. }
  98. }
  99. catch(Exception ex)
  100. {
  101. return new User.Response { status = false, message = ex.Message };
  102. }
  103. }
  104.  
  105. [DisableCors]
  106. [Route("login")]
  107. [HttpPost]
  108. public User.Response Login([FromBody]User.Login _user)
  109. {
  110. try
  111. {
  112. if (_user.GetType().GetProperties().Select(x => x.GetValue(_user)).Any(x => x != null))
  113. {
  114. using (BugMeEntities database = new BugMeEntities())
  115. {
  116. database.Database.Connection.Open();
  117.  
  118. users userFetch = database.users.Where(x => x.name.Equals(_user.username) && x.password.Equals(_user.password) && x.active.Equals(true)).FirstOrDefault();
  119.  
  120. if (userFetch != null)
  121. {
  122. User.Session user = new User.Session
  123. {
  124. id = userFetch.id,
  125. username = userFetch.name,
  126. password = userFetch.password,
  127. email = userFetch.email
  128. };
  129.  
  130. return new User.Response { status = true, message = JsonConvert.SerializeObject(user) };
  131. }
  132. else
  133. {
  134. throw new ArgumentException("Utente non trovato.");
  135. }
  136. }
  137. }
  138. else
  139. {
  140. throw new ArgumentException("Compilare tutti i campi del form.");
  141. }
  142. }
  143. catch(Exception ex)
  144. {
  145. return new User.Response { status = false, message = ex.Message };
  146. }
  147. }
  148.  
  149. private static string randomPassword(int lunghezza = 8)
  150. {
  151. const string caratteri = "ABCDEFGHIJKLMNOPQRSTUVXYZ0123456789!$";
  152. string passsword = string.Empty;
  153. Random random = new Random();
  154.  
  155. for (int i = 0; i < lunghezza; i++)
  156. {
  157. char carattere = caratteri[random.Next(caratteri.Length)];
  158.  
  159. if (random.Next(0, 2) == 1) { carattere = Char.ToLower(carattere); }
  160.  
  161. passsword += carattere;
  162. }
  163.  
  164. return passsword;
  165. }
  166. }
  167.  
  168. $.ajax({
  169. type: 'POST',
  170. url: api_uri + 'users/register',
  171. data: JSON.stringify(_user),
  172. contentType: 'application/json'
  173. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement