예제 #1
0
        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            var userManager = context.OwinContext.GetUserManager <Business.User.UserManager>();

            Contracts.User foundUser = await userManager.FindAsync(context.UserName, context.Password);

            if (foundUser == null)
            {
                context.Rejected();
                context.SetError("The user name or password is incorrect.");
                //context.SetError("invalid_grant", "The user name or password is incorrect.");
                return;
            }

            var    userRepo    = new Data.Repository.UserRepository();
            string deviceToken = context.OwinContext.Get <string>("device_token");

            userRepo.SetDeviceToken(foundUser.Id, deviceToken);

            Business.User.User user = new Business.User.User(foundUser);

            ClaimsIdentity oAuthIdentity = await user.GenerateUserIdentityAsync(userManager, OAuthDefaults.AuthenticationType);

            oAuthIdentity.AddClaim(new Claim(ClaimTypes.NameIdentifier, user.Id));
            oAuthIdentity.AddClaim(new Claim(ClaimTypes.Email, user.Email));

            AuthenticationProperties properties = CreateProperties(user);
            AuthenticationTicket     ticket     = new AuthenticationTicket(oAuthIdentity, properties);

            context.Validated(ticket);
            //context.Request.Context.Authentication.SignIn(cookiesIdentity);
        }
예제 #2
0
        public async Task <IActionResult> UpdateAsync([FromBody] Contracts.User user)
        {
            try
            {
                var userDocument = _userRepository.Get(new Guid(user.Token));

                if (userDocument == default(User))
                {
                    return(NotFound());
                }

                if (userDocument.Banned)
                {
                    return(Forbid());
                }

                //userDocument.SetPropertyValue("lastSeenTimeStamp", DateTime.UtcNow);

                //await _userRepository
                //    .UpsertAsync(userDocument)
                //    .ConfigureAwait(false);

                return(Ok(userDocument));
            }
            catch
            {
                return(BadRequest());
            }
        }
예제 #3
0
        public async Task <IHttpActionResult> Profile([FromBody] profie userModel)
        {
            if (!ModelState.IsValid || userModel == null)
            {
                App_Start.PrettyHttpError error = new App_Start.PrettyHttpError(ModelState);
                return(ResponseMessage(Request.CreateResponse(HttpStatusCode.BadRequest, error)));
            }

            var userManager = UserManager.Create();

            Contracts.User user = userManager.FindById(userModel.Id);

            if (user == null)
            {
                object response1 = new { message = "This Userid does not exist in Db" };

                return(ResponseMessage(Request.CreateResponse(HttpStatusCode.NotFound, response1, Configuration.Formatters.JsonFormatter)));
                //return NotFound();
            }
            else
            {
                object rUser = new { Email = user.Email, Id = user.Id, PhoneNumber = user.PhoneNumber, Notification = user.notify_me };
                return(ResponseMessage(Request.CreateResponse(HttpStatusCode.OK, rUser, Configuration.Formatters.JsonFormatter)));
            }
        }
예제 #4
0
        public void CreateDiscount_WhenProvidedValidData_ShouldCreateNewUser()
        {
            _fixture.Customize(new ValidUserObjectCreator("Person", "One", "*****@*****.**", "8765432556", true));
            Entities.User  userEntity   = _fixture.Create <Entities.User>();
            Contracts.User userContract = UserMapping.Map(userEntity);

            Contracts.User user = _userService.CreateUser(userContract);

            Assert.IsNotNull(user);
            Assert.AreEqual(user.FirstName, userEntity.FirstName);
        }
예제 #5
0
 public static UserModel Map(Contracts.User source)
 {
     return(new UserModel
     {
         Id = source.Id,
         FirstName = source.FirstName,
         LastName = source.LastName,
         Email = source.Email,
         Phone = source.Phone,
         Active = source.Active
     });
 }
예제 #6
0
        public UserModel UpdateUser(Guid id, UserModel model)
        {
            if (ModelState.IsValid)
            {
                Contracts.User user = UserModelMapping.Map(model);
                user.Id = id;
                user    = _userService.UpdateUser(user);

                return(UserModelMapping.Map(user));
            }
            else
            {
                throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
            }
        }
예제 #7
0
        public async Task <bool> AddUserToBoard(Guid boardId, Contracts.User user)
        {
            var data = await database.StringGetAsync(boardId.ToString());

            if (data.IsNullOrEmpty)
            {
                return(false);
            }

            var board = JsonSerializer.Deserialize <ScrumBoard>(data);

            board.Users.Add(user);

            return(await AddBoard(board));
        }
예제 #8
0
        public async Task <IHttpActionResult> Register([FromBody] UserModel userModel)
        {
            if (!ModelState.IsValid || userModel == null)
            {
                //return BadRequest(ModelState);
                App_Start.PrettyHttpError error = new App_Start.PrettyHttpError(ModelState);
                return(ResponseMessage(Request.CreateResponse(HttpStatusCode.BadRequest, error)));
            }

            bool res = repo.PhoneNumberExist(userModel.PhoneNumber);

            if (res == true)
            {
                object response = new { message = "This phone number is already in use." };
                return(ResponseMessage(Request.CreateResponse(HttpStatusCode.NotFound, response, Configuration.Formatters.JsonFormatter)));
            }
            else
            {
                var user = new Contracts.User()
                {
                    UserName    = userModel.UserName,
                    Email       = userModel.UserName,
                    PhoneNumber = userModel.PhoneNumber,
                    notify_me   = true
                };

                IdentityResult result = await _repo.RegisterUser(user, userModel.Password, userModel.PhoneNumber);

                IHttpActionResult errorResult = GetErrorResult(result);


                if (errorResult != null)
                {
                    return(errorResult);
                }
                else
                {
                    object response = new { message = "You have registered Successfully", Email = userModel.UserName, Password = userModel.Password };

                    return(ResponseMessage(Request.CreateResponse(HttpStatusCode.OK, response, Configuration.Formatters.JsonFormatter)));
                }
            }
        }
예제 #9
0
        public async Task <IHttpActionResult> Checkemail([FromBody] sysEmail userModel)
        {
            if (!ModelState.IsValid || userModel == null)
            {
                App_Start.PrettyHttpError error = new App_Start.PrettyHttpError(ModelState);
                return(ResponseMessage(Request.CreateResponse(HttpStatusCode.BadRequest, error)));
            }

            var userManager = UserManager.Create();

            Contracts.User user = userManager.FindByEmail(userModel.Email);
            if (user == null)
            {
                object response1 = new { message = "This email does not exist in Db" };

                return(ResponseMessage(Request.CreateResponse(HttpStatusCode.OK, response1, Configuration.Formatters.JsonFormatter)));
            }

            object response2 = new { message = "This email already taken" };

            return(ResponseMessage(Request.CreateResponse(HttpStatusCode.NotFound, response2, Configuration.Formatters.JsonFormatter)));
        }
예제 #10
0
        public async Task <IHttpActionResult> Update([FromBody] updateProfile userModel)
        {
            if (!ModelState.IsValid || userModel == null)
            {
                App_Start.PrettyHttpError error = new App_Start.PrettyHttpError(ModelState);
                return(ResponseMessage(Request.CreateResponse(HttpStatusCode.BadRequest, error)));
            }
            var userManager = UserManager.Create();

            Contracts.User user = userManager.FindById(userModel.Id);
            if (user == null)
            {
                object response1 = new { message = "This Userid does not exist in Db" };

                return(ResponseMessage(Request.CreateResponse(HttpStatusCode.NotFound, response1, Configuration.Formatters.JsonFormatter)));
            }

            else
            {
                if (userModel.PhoneNumber != user.PhoneNumber)
                {
                    bool res = repo.PhoneNumberExist(userModel.PhoneNumber);

                    if (res == true)
                    {
                        object response1 = new { message = "This phone number is already in use." };

                        return(ResponseMessage(Request.CreateResponse(HttpStatusCode.NotFound, response1, Configuration.Formatters.JsonFormatter)));
                    }
                    else
                    {
                        bool result = repo.UpdateProfile(userModel.Id, userModel.PhoneNumber, userModel.noti);

                        if (result == false)
                        {
                            object response1 = new { message = "Something Went wrong" };

                            return(ResponseMessage(Request.CreateResponse(HttpStatusCode.NotFound, response1, Configuration.Formatters.JsonFormatter)));
                        }
                        else
                        {
                            object response2 = new { message = "You Profile is Updated Now" };

                            return(ResponseMessage(Request.CreateResponse(HttpStatusCode.OK, response2, Configuration.Formatters.JsonFormatter)));
                        }
                    }
                }
                else
                {
                    bool result = repo.UpdateProfile(userModel.Id, userModel.PhoneNumber, userModel.noti);

                    if (result == false)
                    {
                        object response1 = new { message = "Something Went wrong" };

                        return(ResponseMessage(Request.CreateResponse(HttpStatusCode.NotFound, response1, Configuration.Formatters.JsonFormatter)));
                    }
                    else
                    {
                        object response2 = new { message = "You Profile is Updated Now" };

                        return(ResponseMessage(Request.CreateResponse(HttpStatusCode.OK, response2, Configuration.Formatters.JsonFormatter)));
                    }
                }
            }
        }
예제 #11
0
 public IActionResult Register(Contracts.User newUser)
 {
     _manager.Register(newUser);
     return(Ok());
 }
예제 #12
0
 private void GetUserGangs(ref Contracts.User user)
 {
     user.UserGangs = _userProvider.GetGangsByUserGuid(user.UserGUID);
 }
        public async Task <IdentityResult> RegisterUser(Contracts.User userModel, String password, String PhoneNumber)
        {
            var result = await this.UserManager.CreateAsync(userModel, password);

            return(result);
        }