public LoginResult Login(LoginModel model) { if (model == null) { return(new LoginResult() { Success = false, ErrMessages = new List <KeyMsg>() { ResponseError.GetError(TypeError.RequestEmpty) } }); } var result = new LoginResult(); using (var db = new BloodSearchContext()) { using (var dbContextTransaction = db.Database.BeginTransaction()) { try { var user = db.Users.FirstOrDefault(x => x.Email == model.Email.ToLower() && x.PasswordHash == model.PasswordHash); result.IsAuth = user != null; if (user == null) { result.ErrMessages.Add(ResponseError.GetError(TypeError.UserNotFound)); dbContextTransaction.Rollback(); return(result); } result.Token = Crypt.GetToken(); result.UserId = user.Id; db.AuthTokens.Add(new AuthToken() { Token = result.Token, CreatedDate = DateTime.UtcNow, ExpiryDate = DateTime.UtcNow.AddDays(1), Ip = model.Ip, UserId = user.Id }); db.SaveChanges(); dbContextTransaction.Commit(); } catch (Exception ex) { dbContextTransaction.Rollback(); return(new LoginResult() { Success = false, ErrMessages = new List <KeyMsg> { ResponseError.GetError(TypeError.DataSaveError) } }); } } } return(result); }
protected BadRequestObjectResult GetErrors(Exception exception) { return(ResponseError.GetError(new List <ResponseError> { new ResponseError { Type = exception.GetType().Name, Message = exception.Message } })); }
public BaseResponse Registration(RegistrationModel model) { if (model == null) { return(new BaseResponse() { Success = false, ErrMessages = new List <KeyMsg>() { ResponseError.GetError(TypeError.RequestEmpty) } }); } var result = new BaseResponse(); using (var db = new BloodSearchContext()) { using (var dbContextTransaction = db.Database.BeginTransaction()) { try { if (db.Users.All(x => x.Email != model.Email.ToLower())) { db.Users.Add(new User { PasswordHash = model.PasswordHash, Email = model.Email.ToLower(), RegisterFromIp = model.RegisterFromIp, CreatedDate = DateTime.UtcNow, ChangedDate = DateTime.UtcNow, Name = model.Name, Phone = model.Phone }); db.SaveChanges(); dbContextTransaction.Commit(); } else { dbContextTransaction.Rollback(); result.Success = false; result.ErrMessages.Add(ResponseError.GetError(TypeError.WhichUserIsAlready)); } } catch (Exception ex) { dbContextTransaction.Rollback(); return(new BaseResponse() { Success = false, ErrMessages = new List <KeyMsg> { ResponseError.GetError(TypeError.DataSaveError) } }); } } } return(result); }
public override void OnActionExecuting(HttpActionContext actionContext) { var model = (AuthRequest)actionContext.ActionArguments["model"]; if (new UserServices().UserIsNotAuthorized(model.Token)) { actionContext.Response = actionContext.Request.CreateResponse( HttpStatusCode.OK, new BaseResponse() { Success = false, ErrMessages = new List <KeyMsg>() { ResponseError.GetError(TypeError.UserIsNotAuthorized) } }, actionContext.ControllerContext.Configuration.Formatters.JsonFormatter ); } base.OnActionExecuting(actionContext); }
public BaseResponse EditUser(EditUserRequest model) { using (var db = new BloodSearchContext()) { var user = db.Users.FirstOrDefault(_ => _.Id == model.UserId); if (user == null) { return(new UserResult() { Success = false, ErrMessages = new List <KeyMsg>() { ResponseError.GetError(TypeError.UserNotFound) } }); } user.Name = model.Name?.Trim(); user.Phone = model.Phone?.Trim(); db.SaveChanges(); return(new BaseResponse() { Success = true }); } }
public UserResult GetUserById(int userId) { var result = new UserResult(); using (var db = new BloodSearchContext()) { var user = db.Users.FirstOrDefault(u => u.Id == userId); if (user == null) { return(new UserResult() { Success = false, ErrMessages = new List <KeyMsg>() { ResponseError.GetError(TypeError.UserNotFound) } }); } result.Id = user.Id; result.Email = user.Email; result.Name = user.Name; result.Phone = user.Phone; } return(result); }
public UserResult GetUserByContext(AuthRequest model) { var result = new UserResult(); using (var db = new BloodSearchContext()) { var user = db.Users.FirstOrDefault(u => u.AuthTokens.Any(t => t.Token == model.Token)); if (user == null) { return(new UserResult() { Success = false, ErrMessages = new List <KeyMsg>() { ResponseError.GetError(TypeError.UserNotFound) } }); } result.Id = user.Id; result.Email = user.Email; result.Name = user.Name; result.Phone = user.Phone; } return(result); }