public void SaveUserTweeter(string userId, TweeterDTO tweeter) { if (string.IsNullOrEmpty(userId)) { throw new ArgumentNullException(nameof(userId)); } var assignTweeterToUser = this.unitOfWork.TweeterRepository.All().FirstOrDefault(x => x.Id == tweeter.Id); if (assignTweeterToUser == null) { assignTweeterToUser = this.tweeterService.CreateTweeter(tweeter); var userTweeter = new UserTweeter { UserId = userId, TweeterId = assignTweeterToUser.Id }; this.unitOfWork.UsersTweeterRepository.Add(userTweeter); this.unitOfWork.SaveChanges(); } else { if (assignTweeterToUser.IsDeleted) { assignTweeterToUser.IsDeleted = false; assignTweeterToUser.DeletedOn = null; this.unitOfWork.SaveChanges(); } if (!this.DbContainsUserTweeter(userId, tweeter.Id)) { var userTweeter = new UserTweeter { UserId = userId, TweeterId = assignTweeterToUser.Id }; this.unitOfWork.UsersTweeterRepository.Add(userTweeter); this.unitOfWork.SaveChanges(); } else { var restoreUserTweeter = this.unitOfWork.UsersTweeterRepository.All().FirstOrDefault(x => x.TweeterId == tweeter.Id && x.UserId == userId && x.IsDeleted); if (restoreUserTweeter != null) { restoreUserTweeter.IsDeleted = false; restoreUserTweeter.DeletedOn = null; this.unitOfWork.SaveChanges(); } } } }
public Tweeter CreateTweeter(TweeterDTO tweeter) { if (tweeter == null) { throw new ArgumentNullException("Tweeter cannot be null!"); } Tweeter newTweeter = new Tweeter { Id = tweeter.Id, Name = tweeter.Name, ScreenName = tweeter.ScreenName, Location = tweeter.Location, Description = tweeter.Description, ProfileImageUrl = tweeter.ProfileImageUrl, FollowersCount = tweeter.FollowersCount, StatusesCount = tweeter.StatusesCount }; this.UnitOfWork.TweeterRepository.Add(newTweeter); this.UnitOfWork.SaveChanges(); return(newTweeter); }