Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [RoutePrefix("api/users")]
- [EnableCors(origins: "http://pincopalli.com", headers: "*", methods: "*")]
- public class UserController : ApiController
- {
- [Route("checkusername/{_username}")]
- [HttpGet]
- public bool CheckUsername(string _username)
- {
- try
- {
- using (BugMeEntities database = new BugMeEntities())
- {
- database.Database.Connection.Open();
- if (database.users.Where(x => x.name.Equals(_username)).FirstOrDefault() != null)
- {
- return false;
- }
- }
- return true;
- }
- catch(Exception ex)
- {
- return false;
- }
- }
- [Route("checkemail/{_email}")]
- [HttpGet]
- public bool CheckEmail(string _email)
- {
- try
- {
- using (BugMeEntities database = new BugMeEntities())
- {
- database.Database.Connection.Open();
- if (database.users.Where(x => x.email.Equals(_email)).FirstOrDefault() != null)
- {
- return false;
- }
- }
- return true;
- }
- catch (Exception ex)
- {
- return false;
- }
- }
- [DisableCors]
- [Route("register")]
- [HttpPost]
- public User.Response Register([FromBody]User.Register _user)
- {
- try
- {
- if(_user.GetType().GetProperties().Select(x => x.GetValue(_user)).Any(x => x != null))
- {
- using (BugMeEntities database = new BugMeEntities())
- {
- database.Database.Connection.Open();
- if(database.users.Where(x => x.name.Equals(_user.username)).Count() == 0)
- {
- if (database.users.Where(x => x.email.Equals(_user.email)).Count() == 0)
- {
- string newPassword = randomPassword();
- bool emailSent = Utility.newMail(_user.email, "Benvenuto su BugMe", $"Benvenuto <b>{_user.username}</b>,<br>La nuova password necessaria per accedere รจ: <b>{newPassword}</b>.");
- if (emailSent)
- {
- users user = new users { name = _user.username, password = newPassword, email = _user.email, active = true };
- database.users.Add(user);
- database.SaveChanges();
- }
- 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." };
- }
- else
- {
- throw new ArgumentException("Email non disponibile.");
- }
- }
- else
- {
- throw new ArgumentException("Username non disponibile.");
- }
- }
- }
- else
- {
- throw new ArgumentException("Compilare tutti i campi del form.");
- }
- }
- catch(Exception ex)
- {
- return new User.Response { status = false, message = ex.Message };
- }
- }
- [DisableCors]
- [Route("login")]
- [HttpPost]
- public User.Response Login([FromBody]User.Login _user)
- {
- try
- {
- if (_user.GetType().GetProperties().Select(x => x.GetValue(_user)).Any(x => x != null))
- {
- using (BugMeEntities database = new BugMeEntities())
- {
- database.Database.Connection.Open();
- users userFetch = database.users.Where(x => x.name.Equals(_user.username) && x.password.Equals(_user.password) && x.active.Equals(true)).FirstOrDefault();
- if (userFetch != null)
- {
- User.Session user = new User.Session
- {
- id = userFetch.id,
- username = userFetch.name,
- password = userFetch.password,
- email = userFetch.email
- };
- return new User.Response { status = true, message = JsonConvert.SerializeObject(user) };
- }
- else
- {
- throw new ArgumentException("Utente non trovato.");
- }
- }
- }
- else
- {
- throw new ArgumentException("Compilare tutti i campi del form.");
- }
- }
- catch(Exception ex)
- {
- return new User.Response { status = false, message = ex.Message };
- }
- }
- private static string randomPassword(int lunghezza = 8)
- {
- const string caratteri = "ABCDEFGHIJKLMNOPQRSTUVXYZ0123456789!$";
- string passsword = string.Empty;
- Random random = new Random();
- for (int i = 0; i < lunghezza; i++)
- {
- char carattere = caratteri[random.Next(caratteri.Length)];
- if (random.Next(0, 2) == 1) { carattere = Char.ToLower(carattere); }
- passsword += carattere;
- }
- return passsword;
- }
- }
- $.ajax({
- type: 'POST',
- url: api_uri + 'users/register',
- data: JSON.stringify(_user),
- contentType: 'application/json'
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement