Exemple #1
0
        /// <summary>
        /// Updates name-surname-profilePhoto
        /// </summary>
        /// <param name="userMessage"></param>
        public void UpdateUser(EditUserMessage userMessage)
        {
            if (userMessage.UserId == 0 && string.IsNullOrWhiteSpace(userMessage.Username))
            {
                throw new ArgumentException($"Either user id or username must be provided");
            }

            if (userMessage.UserId == 0 && !string.IsNullOrWhiteSpace(userMessage.Username))
            {
                userMessage.UserId = GetUserIdByUserName(userMessage.Username);
            }

            var dbUser = _dbContext.Users.FirstOrDefault(x => x.UserId == userMessage.UserId);

            if (dbUser == null)
            {
                throw new ArgumentException($"User cannot be found with id {userMessage.UserId}");
            }

            dbUser.Name         = userMessage.Name ?? dbUser.Name;
            dbUser.Surname      = userMessage.Surname ?? dbUser.Surname;
            dbUser.ProfilePhoto = userMessage.ProfilePhoto ?? dbUser.ProfilePhoto;

            _dbContext.SaveChanges();
        }
        public IActionResult DeleteUser(EditUserMessage userMessage)
        {
            try
            {
                _obfuscateService.ObfuscateUser(userMessage);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message, userMessage);
                return(BadRequest(ex.Message));
            }

            return(Ok("User and related information removed from system successfully"));
        }
        public IActionResult UpdateUser(EditUserMessage userMessage)
        {
            try
            {
                _userService.UpdateUser(userMessage);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message, userMessage);
                return(BadRequest(ex.Message));
            }

            return(Ok("User saved successfully"));
        }
        public void ObfuscateUser(EditUserMessage userMessage)
        {
            if (userMessage.UserId == 0 && string.IsNullOrWhiteSpace(userMessage.Username))
            {
                throw new ArgumentException($"Either user id or username must be provided");
            }

            if (userMessage.UserId == 0 && !string.IsNullOrWhiteSpace(userMessage.Username))
            {
                userMessage.UserId = _userService.GetUserIdByUserName(userMessage.Username);
            }

            var dbUser = _dbContext.Users.Include(b => b.UserContacts).FirstOrDefault(x => x.UserId == userMessage.UserId);

            dbUser.Name         = OBFUSCATE_STRING;
            dbUser.Surname      = OBFUSCATE_STRING;
            dbUser.ProfilePhoto = OBFUSCATE_STRING;

            // Obfuscate user financial
            if (dbUser.UserFinancial != null)
            {
                dbUser.UserFinancial.IBAN          = OBFUSCATE_STRING;
                dbUser.UserFinancial.SortCode      = OBFUSCATE_STRING;
                dbUser.UserFinancial.AccountNumber = OBFUSCATE_STRING;
            }

            // Obfuscate user contacts
            if (dbUser.UserContacts != null)
            {
                foreach (var contactInfo in dbUser.UserContacts)
                {
                    contactInfo.PostCode        = OBFUSCATE_POSTCODE;
                    contactInfo.TelephoneNumber = OBFUSCATE_NUMBER;
                    contactInfo.EmailAddress    = OBFUSCATE_EMAIL;
                }
            }

            _dbContext.SaveChanges();
        }
Exemple #5
0
        public void AddUser(EditUserMessage userMessage)
        {
            // Check required info persist
            // Check username is not taken
            if (_dbContext.Users.AsNoTracking().Any(x => x.Username.ToLower().Equals(userMessage.Username.ToLower())))
            {
                throw new InvalidOperationException($"Username '{userMessage.Username}' is already taken");
            }

            // Check mobileNumber is unique
            // Check emailaddress is unique

            var newUser = new User
            {
                Name         = userMessage.Name,
                Surname      = userMessage.Surname,
                ProfilePhoto = userMessage.ProfilePhoto,
                Username     = userMessage.Username
            };

            if (!string.IsNullOrEmpty(userMessage.EmailAddress))
            {
                newUser.UserContacts = new List <UserContact>
                {
                    new UserContact {
                        EmailAddress    = userMessage.EmailAddress,
                        PostCode        = userMessage.PostCode,
                        TelephoneNumber = userMessage.TelephoneNumber,
                        RegionCode      = userMessage.RegionCode
                    }
                };
            }

            _dbContext.Users.Add(newUser);
            _dbContext.SaveChanges();
        }