Exemplo n.º 1
0
        //Set profile pic of user to path
        public async Task <IActionResult> Post([FromQuery] String username, [FromBody] String path)
        {
            // First check if username exists in DB
            if (!await dbContext.UsersTbl.AnyAsync(User => User.UserName.Equals(username)))
            {
                return(StatusCode(StatusCodes.Status404NotFound, "No Such User"));
            }

            try
            {
                //Change user profile pic in users table
                UsersTbl user = await dbContext.UsersTbl.Where(u => u.UserName.Equals(username)).FirstAsync();

                user.ProfilePicPath = path;

                //Change user profile pic in tweets table
                await dbContext.TweetsTbl.Where(tweet => tweet.UserName.Equals(username)).ForEachAsync(tweet => tweet.ProfilePicPath = path);

                await dbContext.SaveChangesAsync();

                return(StatusCode(StatusCodes.Status200OK, "Profile pic path changed"));
            }
            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status404NotFound, ex.Message));
            }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Post([FromBody] UsersTbl value)
        {
            // check if the User exists in the DB
            if (await dbContext.UsersTbl.AnyAsync(User => User.UserName.Equals(value.UserName)))
            {
                UsersTbl user = await dbContext.UsersTbl.Where(u => u.UserName.Equals(value.UserName)).FirstAsync();

                //calculate hash password and compare to DB
                var client_post_hash_password = Convert.ToBase64String(Common.SaltHashPassword(
                                                                           Encoding.ASCII.GetBytes(value.Password),
                                                                           Convert.FromBase64String(user.Salt)));

                if (client_post_hash_password.Equals(user.Password))
                {
                    return(StatusCode(StatusCodes.Status200OK, user.UserName));
                }
                else
                {
                    return(StatusCode(StatusCodes.Status400BadRequest, "Wrong Password"));
                }
            }
            else
            {
                return(StatusCode(StatusCodes.Status400BadRequest, "User does not exist in DB"));
            }
        }
Exemplo n.º 3
0
        //Get bio of username
        public async Task <IActionResult> Get([FromQuery] String username)
        {
            try
            {
                UsersTbl user = await dbContext.UsersTbl.Where(u => u.UserName.Equals(username)).FirstAsync();

                return(StatusCode(StatusCodes.Status200OK, user.Bio));
            }
            catch (Exception)
            {
                return(StatusCode(StatusCodes.Status404NotFound, "Couldn't retrieve Bio"));
            }
        }
Exemplo n.º 4
0
        public async Task <bool> Create(UserCreateSaveModel userCreateSaveModel, int operatingUserId)
        {
            //check for duplicate username
            if (await _context.UsersTbl
                .Include(udt => udt.UserDetailsTbl)
                .AsNoTracking()
                .AnyAsync(u =>
                          u.Username == userCreateSaveModel.User.Username &&
                          u.UserId != userCreateSaveModel.User.UserId &&
                          !u.UserDetailsTbl.IsDeleted
                          )
                )
            {
                throw new BadRequestException(string.Format(UserValidationMessage.USERNAME_ALREADY_TAKEN, userCreateSaveModel.User.Username));
            }


            //byte[] passwordHash, passwordSalt;
            //CreatePasswordHash(password, out passwordHash, out passwordSalt);

            //user.PasswordHash = passwordHash;
            //user.PasswordSalt = passwordSalt;

            UsersTbl usersTbl = new UsersTbl
            {
                UserDetailsTbl = new UserDetailsTbl()
                {
                    UserContentTbl = await _userContentService.GetNewUserContent(userCreateSaveModel.User.UserId)
                }
            };

            //populate table objects
            _mapper.Map(userCreateSaveModel.User, usersTbl);
            _mapper.Map(userCreateSaveModel.UserDetailsBaseAdmin, usersTbl.UserDetailsTbl);

            usersTbl.UserDetailsTbl.CreatedBy  = operatingUserId;
            usersTbl.UserDetailsTbl.ModifiedBy = operatingUserId;

            await _context.AddAsync(usersTbl);

            await _context.SaveChangesAsync();

            //after save update models with data
            //_mapper.Map(usersTbl, userSaveModel.User);
            //_mapper.Map(usersTbl.UserDetailsTbl, userSaveModel.UserDetail);

            return(true);
        }
Exemplo n.º 5
0
        public async Task <IActionResult> Post([FromBody] UsersTbl value)
        {
            // check if the User exists in the DB
            if (!await dbContext.UsersTbl.AnyAsync(User => User.UserName.Equals(value.UserName)))
            {
                if (!await dbContext.UsersTbl.AnyAsync(User => User.Email.Equals(value.Email)))
                {
                    UsersTbl user = new UsersTbl();
                    user.UserName = value.UserName;
                    user.Email    = value.Email;
                    // Generate salt and hash password with salt
                    user.Salt     = Convert.ToBase64String(Common.GetRandomSalt(16));
                    user.Password = Convert.ToBase64String(Common.SaltHashPassword(
                                                               Encoding.ASCII.GetBytes(value.Password),
                                                               Convert.FromBase64String(user.Salt)));

                    user.ProfilePicPath = value.ProfilePicPath;
                    user.Bio            = value.Bio;
                    //add to DB
                    try
                    {
                        await dbContext.AddAsync(user);

                        await dbContext.SaveChangesAsync();

                        return(StatusCode(StatusCodes.Status200OK, "Registered Successfully"));
                    }
                    catch (Exception ex)
                    {
                        return(StatusCode(StatusCodes.Status400BadRequest, ex.Message));
                    }
                }
                else
                {
                    return(StatusCode(StatusCodes.Status409Conflict, "Email already exists in DB"));
                }
            }
            else
            {
                return(StatusCode(StatusCodes.Status409Conflict, "Username already exists in DB"));
            }
        }
Exemplo n.º 6
0
        private static UserDetailsView getUserDetails(Entities context, UsersTbl User)
        {
            try
            {
                UserDetailsView userDetails = new UserDetailsView();
                userDetails.DaysSumForDiscount = User.DaysSumForDiscount;
                userDetails.Acceptmessages     = User.Acceptmessages;
                userDetails.UserFirstName      = User.UserFirstName;
                userDetails.UserLastName       = User.UserLastName;
                userDetails.UserEmail          = User.UserEmail;
                userDetails.UserID             = User.UserID;
                userDetails.UserPhone2         = User.UserPhone2;
                userDetails.UserPhone1         = User.UserPhone1;
                userDetails.UserComments       = User.UserComments;
                userDetails.UserCity           = User.UserCity;
                userDetails.UserAddress        = User.UserAddress;
                userDetails.UserName           = User.UserName;
                userDetails.UserStatusCode     = User.UserStatusCode;
                var vet = context.veterinarTbl
                          .Where(v => v.VeterinarId == User.UserVeterinarId).FirstOrDefault();
                userDetails.UserVeterinarId  = User.UserVeterinarId;
                userDetails.VeterinarAddress = vet.VeterinarAddress;
                userDetails.VeterinarCity    = vet.VeterinarCity;
                userDetails.VeterinarEmail   = vet.VeterinarEmail;
                userDetails.VeterinarName    = vet.VeterinarName;
                userDetails.VeterinarPhone1  = vet.VeterinarPhone1;

                var dogs = context.UserDogs
                           .Where(userDog => userDog.DogUserID == User.UserID && userDog.DogStatus == 21).Count();
                userDetails.DogsNumber = dogs;

                var reservations = context.OrdersTbl
                                   .Where(userres => userres.OrderUserId == User.UserID).Count();
                userDetails.ReservationsNumber = context.OrdersTbl.Count();

                //HttpContext.Current.Session["userDetails"] = userDetails;
                return(userDetails);
            }
            catch (Exception ex)
            { throw ex; }
        }
Exemplo n.º 7
0
        public async Task <bool> Update(UserModel userModel, int operatingUserId)
        {
            //check for duplicate username
            if (await _context.UsersTbl
                .Include(udt => udt.UserDetailsTbl)
                .AsNoTracking()
                .AnyAsync(u =>
                          u.Username == userModel.Username &&
                          u.UserId != userModel.UserId &&
                          !u.UserDetailsTbl.IsDeleted
                          )
                )
            {
                throw new BadRequestException(string.Format(UserValidationMessage.USERNAME_ALREADY_TAKEN, userModel.Username));
            }


            UsersTbl usersTbl = await _context.UsersTbl
                                .Include(udt => udt.UserDetailsTbl)
                                .Where(u =>
                                       u.UserId == userModel.UserId &&
                                       !u.UserDetailsTbl.IsDeleted)
                                .SingleOrDefaultAsync();

            //if no user is found then show error
            if (usersTbl == null)
            {
                throw new NotFoundException(UserValidationMessage.USER_NOT_FOUND);
            }

            //populate table objects
            _mapper.Map(userModel, usersTbl);

            usersTbl.UserDetailsTbl.ModifiedBy   = operatingUserId;
            usersTbl.UserDetailsTbl.ModifiedDate = DateTime.Now;

            await _context.SaveChangesAsync();

            return(true);
        }
Exemplo n.º 8
0
        //Set bio of username
        public async Task <IActionResult> Post([FromQuery] String username, [FromBody] String bio)
        {
            if (!await dbContext.UsersTbl.AnyAsync(User => User.UserName.Equals(username)))
            {
                return(StatusCode(StatusCodes.Status404NotFound, "No Such User"));
            }

            try
            {
                UsersTbl user = await dbContext.UsersTbl.Where(u => u.UserName.Equals(username)).FirstAsync();

                user.Bio = bio;

                await dbContext.SaveChangesAsync();

                return(StatusCode(StatusCodes.Status200OK, "Profile bio changed"));
            }
            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status404NotFound, ex.Message));
            }
        }
Exemplo n.º 9
0
        //הוספת משתמש
        public void InsertUserDetails(UserDetailsView userDetails)

        {
            try
            {
                using (Entities context = new Entities())
                {
                    UsersTbl usersTbl = new UsersTbl();
                    usersTbl.UserAddress        = userDetails.UserAddress;
                    usersTbl.UserCity           = userDetails.UserCity;
                    usersTbl.UserComments       = userDetails.UserComments;
                    usersTbl.UserEmail          = userDetails.UserEmail;
                    usersTbl.UserFirstName      = userDetails.UserFirstName;
                    usersTbl.UserLastName       = userDetails.UserLastName;
                    usersTbl.UserPaswrd         = userDetails.UserPaswrd;
                    usersTbl.UserPhone1         = userDetails.UserPhone1;
                    usersTbl.UserPhone2         = userDetails.UserPhone2;
                    usersTbl.UserStatusCode     = 21;
                    usersTbl.UserName           = userDetails.UserName;
                    usersTbl.Acceptmessages     = userDetails.Acceptmessages;
                    usersTbl.DaysSumForDiscount = 0;
                    //int vet = GetVetID(userDetails.VeterinarName, userDetails.VeterinarPhone1);
                    //if (vet == 0) //אם עדין אין במאגר וטרינר כזה
                    //{
                    //    veterinarTbl veterinarTbl = new veterinarTbl();
                    //    veterinarTbl.VeterinarAddress = userDetails.VeterinarAddress;
                    //    veterinarTbl.VeterinarCity = userDetails.VeterinarCity;
                    //    veterinarTbl.VeterinarEmail = userDetails.VeterinarEmail;
                    //    veterinarTbl.VeterinarName = userDetails.VeterinarName;
                    //    veterinarTbl.VeterinarPhone1 = userDetails.VeterinarPhone1;

                    //    context.veterinarTbl.Add(veterinarTbl);
                    //    context.SaveChanges();

                    //}
                    veterinarService veterinarService = new veterinarService();

                    VeterinarDetailsView vet = veterinarService.GetVet(userDetails.VeterinarName, userDetails.VeterinarPhone1);
                    if (vet != null)
                    {
                        usersTbl.UserVeterinarId = vet.VeterinarId;
                    }
                    else
                    {
                        veterinarTbl veterinarTbl = new veterinarTbl();
                        veterinarTbl.VeterinarAddress = userDetails.VeterinarAddress;
                        veterinarTbl.VeterinarCity    = userDetails.VeterinarCity;
                        veterinarTbl.VeterinarEmail   = userDetails.VeterinarEmail;
                        veterinarTbl.VeterinarName    = userDetails.VeterinarName;
                        veterinarTbl.VeterinarPhone1  = userDetails.VeterinarPhone1;

                        context.veterinarTbl.Add(veterinarTbl);
                        context.SaveChanges();
                        vet = veterinarService.GetVet(userDetails.VeterinarName, userDetails.VeterinarPhone1);
                        usersTbl.UserVeterinarId = vet.VeterinarId;
                    }
                    context.UsersTbl.Add(usersTbl);
                    context.SaveChanges();
                }
            }
            catch (SqlException ex)
            { throw ex; }
        }