// Kullanıcı engelleme public ServiceStatus AddBlockedUser(int blockedUserId) { var serviceStatus = new ServiceStatus(); var httpUser = _httpContextAccessor.HttpContext.User; var userId = int.Parse(httpUser.Claims.ToList().Where(x => x.Type == ClaimTypes.NameIdentifier).FirstOrDefault().Value); if (userId != blockedUserId) { var blocked = _blockedUserRepository.Get(x => x.BlockedUserId == blockedUserId && x.UserId == userId); if (blocked == null) { var blockedUser = new BlockedUser(); blockedUser.BlockedUserId = blockedUserId; blockedUser.UserId = userId; blockedUser.CreateDate = DateTime.Now; _blockedUserRepository.Add(blockedUser); try { _blockedUserRepository.SaveChanges(); serviceStatus.Status = true; return(serviceStatus); } catch (Exception) { throw; } } } return(serviceStatus); }
//Todo: ekleme, güncelleme,silme gibi işlemlerde önyüzdeki kullanıcıya işlem başarıyla gerçekleşti veya başarısız bilgisi vermek isteyebiliriz. böyle durumlarda alttaki metot için void dönmek yerine ya boolean true false ya da int 1,0, -1 gibi bir şeyler dönecek halde kullanmak daha iyi olur. Projenin sonraki aşamalarda nasıl gelişebileceğini düşünerek kod yazmak avantaj sağlar. public void AddBlock(UserBlockVM model) { var blockRecord = _blockedUserRepository.Get(x => x.UserId == model.UserId && x.BlockedUserId == model.BlockedUserId); if (blockRecord != null) { return; } var blockedUser = new BlockedUser() { BlockedUserId = model.BlockedUserId, UserId = model.UserId }; //blockedUser.BlockedUserId = model.BlockedUserId, //blockedUser.UserId = model.UserId blockedUser.CreateDate = DateTime.Now; if (blockedUser.BlockedUserId != blockedUser.UserId) { var entity = _blockedUserRepository.Add(blockedUser); try { _blockedUserRepository.SaveChanges(); //return new EntryViewModel() { Id = entity.Id, Content = entity.Content }; } catch (Exception ex) { var errorMessage = ex.Message; throw; } } }