public ResponseResult <UserFollowerVM> FollowUser(UserFollowerVM userFollowerVM, bool follow) { ResponseResult <UserFollowerVM> responseResult = new ResponseResult <UserFollowerVM> { Success = true, Data = userFollowerVM }; try { UserFollowerRepository userFollowerRepository = new UserFollowerRepository(dbContext); UserFollower userFollower = userFollowerRepository.GetFollower(userFollowerVM.FollowByUserId, userFollowerVM.FollowedUserId); if (follow) { if (userFollower == null) { userFollower = new UserFollower(); Mapper.Map(userFollowerVM, userFollower); userFollowerRepository.Insert(userFollower); userFollowerRepository.SaveChanges(); //Add User Action Log new LogsSerivce().RunAddLogTask(_LogActionType.Follow, userFollowerVM.FollowByUserId, userFollowerVM.FollowedUserId); } } else { if (userFollower != null) { userFollowerRepository.Delete(userFollower); userFollowerRepository.SaveChanges(); //Add User Action Log new LogsSerivce().RunAddLogTask(_LogActionType.UnFollow, userFollowerVM.FollowByUserId, userFollowerVM.FollowedUserId); } } userFollowerVM.Id = userFollower.Id; } catch { responseResult.Success = false; responseResult.Message = "Oops! You are unable to follow this user."; } return(responseResult); }
public ResponseResult <UserFollowerVM> AnonymizeProfile(string currentUserId) { ResponseResult <UserFollowerVM> responseResult = new ResponseResult <UserFollowerVM> { Success = true, }; try { ApplicationUser applicationUser = applicationUserRepository.GetUserWithProfilePicture(currentUserId); UserFollowerRepository userFollowerRepository = new UserFollowerRepository(dbContext); if (applicationUser != null) { string ProfileImageOriginal = applicationUser.ProfileImageOriginal; string ProfileImageSelected = applicationUser.ProfileImageSelected; //Anonymize User applicationUser.UrlUsername = "******"; applicationUser.UserName = Guid.NewGuid().ToString() + "_N/A"; applicationUser.Email = "N/A"; applicationUser.FullName = "N/A"; applicationUser.LockoutEnabled = true; applicationUser.LockoutEndDateUtc = DateTime.UtcNow; applicationUser.ProfileImageOriginal = null; applicationUser.ProfileImageSelected = null; applicationUser.ProfileImageData = null; applicationUser.UpdatedOn = DateTime.UtcNow; if (userFollowerRepository.SaveChanges() > 0) { //Remove the ProfilePictures try { if (!string.IsNullOrEmpty(ProfileImageOriginal)) { System.IO.File.Delete(HttpContext.Current.Server.MapPath("~" + _FileSavingPaths.ProfileImage + "/" + ProfileImageOriginal)); } }catch { } try { if (!string.IsNullOrEmpty(ProfileImageSelected)) { System.IO.File.Delete(HttpContext.Current.Server.MapPath("~" + _FileSavingPaths.ProfileImage + "/" + ProfileImageSelected)); } } catch { } //Remove all Profile Data applicationUserRepository.SP_DeleteUserProfileData(currentUserId); } //Add User Action Log new LogsSerivce().RunAddLogTask(_LogActionType.AccountDeleted, currentUserId); } else { responseResult.Success = false; responseResult.Message = "Oops! Account profile does not exist."; } } catch (Exception err) { responseResult.Success = false; responseResult.Message = "Oops! An error occured while removing your profile."; } return(responseResult); }