private Avatar AddAvatar(ChangedAvatarDTO changedAvatar) { var avatar = Mapper.Map <Avatar>(changedAvatar); _databaseContext.Avatars.Add(avatar); _databaseContext.SaveChanges(); return(avatar); }
public ActionResult Index(ChangeAvatarViewModel viewModel) { var userID = _authService.GetCurrentUser().ID; switch (viewModel.Type) { case AvatarType.Default: { _avatarService.SetUserAvatarToDefault(userID); break; } case AvatarType.Gravatar: { var userEMail = _profileService.GetProfileByUserID(userID).EMail; var gravatarLink = _gravatarService.GetGravatarLink(userEMail); var changeAvatarDTO = new ChangedAvatarDTO { Type = AvatarTypeDTO.Gravatar, Source = gravatarLink }; _avatarService.SetUserAvatar(userID, changeAvatarDTO); break; } case AvatarType.Internal: { var stream = viewModel.AvatarFile.InputStream; var mimeType = viewModel.AvatarFile.ContentType; var serverPath = HttpContext.Server.MapPath("/"); if (viewModel.AvatarFile == null) { ModelState.AddModelError("AvatarFile", "You have to upload file."); return(View(viewModel)); } if (!_avatarService.CheckIfMimeTypeIsValid(mimeType)) { ModelState.AddModelError("AvatarFile", $"{mimeType} is not allowed."); return(View(viewModel)); } var pathToAvatarFile = _avatarFilesService.SaveAvatar(stream, mimeType, serverPath); var avatar = Mapper.Map <ChangedAvatarDTO>(viewModel); avatar.Source = pathToAvatarFile; _avatarService.SetUserAvatar(userID, avatar); break; } } return(RedirectToAction("Index")); }
public void SetUserAvatar_NotExistingUserID_ThrowsUserProfileNotFoundException() { var testDatabaseContext = DbContextFactory.Create(); var service = new AvatarService(testDatabaseContext); var userAvatar = new ChangedAvatarDTO { Type = AvatarTypeDTO.Gravatar, Source = "gravatarSource" }; var exception = Record.Exception(() => service.SetUserAvatar(1001, userAvatar)); Assert.IsType <UserProfileNotFoundException>(exception); }
public void SetUserAvatar_ExistingUserID_AvatarSuccessfullyChanged(int userID, AvatarTypeDTO avatarType, string avatarSource) { var testDatabaseContext = DbContextFactory.Create(); var service = new AvatarService(testDatabaseContext); var userAvatar = new ChangedAvatarDTO { Type = avatarType, Source = avatarSource }; service.SetUserAvatar(userID, userAvatar); var updatedUserAvatar = service.GetUserAvatar(userID); Assert.Equal(avatarType, updatedUserAvatar.Type); Assert.Equal(avatarSource, updatedUserAvatar.Source); }
/// <inheritdoc /> public void SetUserAvatar(int userID, ChangedAvatarDTO changedAvatar) { if (!_databaseContext.Users.Any(p => p.ID == userID)) { throw new UserProfileNotFoundException(); } var user = _databaseContext.Users.First(p => p.ID == userID); if (user.Avatar.Type != AvatarType.Default) { RemoveUserAvatar(user); } var avatar = AddAvatar(changedAvatar); user.AvatarID = avatar.ID; _databaseContext.SaveChanges(); }