Guest User

Untitled

a guest
Feb 5th, 2018
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.80 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using System.Net.Http;
  6. using System.Web.Http;
  7. using ZapTS.WebApi.Models;
  8. using System.Web.Http.Cors;
  9. using ZapTS.WebApi.Annotations;
  10. using Scrypt;
  11.  
  12. namespace ZapTS.WebApi.Controllers
  13. {
  14.     [EnableCors(origins: "*", headers: "*", methods: "*")]
  15.     public class UserController : ApiController
  16.     {
  17.         [HttpPost]
  18.         public HttpResponseMessage Login(LoginViewModel model)
  19.         {
  20.             using ( var db = new ProjectManagerEntities())
  21.             {
  22.                 ScryptEncoder encoder = new ScryptEncoder();
  23.                 var user = db.Users.FirstOrDefault(q => q.Username == model.Username);
  24.  
  25.                 if (user != null && encoder.Compare(model.Password, user.Password))
  26.                 {
  27.                     String SessionId = Guid.NewGuid().ToString();
  28.                     db.Sessions.Add(new Sessions() { SessionId = SessionId, UserId = user.Id });
  29.                     db.SaveChanges();
  30.  
  31.                     return Request.CreateResponse(HttpStatusCode.OK, SessionId);
  32.                 }
  33.  
  34.                 var message = string.Format("Wrong password/username");
  35.                 HttpError err = new HttpError(message);
  36.                 return Request.CreateResponse(HttpStatusCode.NotFound, err);
  37.             }
  38.         }
  39.  
  40.         [HttpPost]
  41.         public HttpResponseMessage Register(RegisterViewModel model)
  42.         {
  43.             using (var db = new ProjectManagerEntities())
  44.             {
  45.                 var users = db.Users;
  46.                 var existingUser = users.Any(q => q.Username == model.Username || q.Email == model.Email);
  47.                 if (!existingUser) {
  48.  
  49.                     ScryptEncoder encoder = new ScryptEncoder();
  50.  
  51.                     var newUser = new Users()
  52.                     {
  53.                         Username = model.Username,
  54.                         Name = model.Name,
  55.                         Surname = model.Surname,
  56.                         Email = model.Email,
  57.                         Password = encoder.Encode(model.Password)
  58.                     };
  59.  
  60.                     users.Add(newUser);
  61.                     db.SaveChanges();
  62.                     return Request.CreateResponse(HttpStatusCode.OK, true);
  63.                 }
  64.             }
  65.  
  66.             var message = string.Format("This Username/Email is not avaliable!");
  67.             HttpError err = new HttpError(message);
  68.             return Request.CreateResponse(HttpStatusCode.NotFound, err);
  69.         }
  70.  
  71.         public HttpResponseMessage GetImportantData()
  72.         {
  73.             String sessionId = Request.Headers.GetValues("SessionId").First();
  74.             System.Diagnostics.Debug.WriteLine(sessionId);
  75.             return Request.CreateResponse(HttpStatusCode.OK, true);
  76.         }
  77.  
  78.     }
  79. }
Add Comment
Please, Sign In to add comment