/// <summary> /// Get user controller /// </summary> /// <param name="db">Database context</param> /// <param name="user">User</param> /// <returns></returns> private Mock <UserController> GetUserController(User user, UserManager <User> userManager) { var httpContext = MockHelper.GetHttpContextWithUserId(user != null ? user.Id : ""); var signInManager = new Mock <SignInManager <User> >(userManager, new HttpContextAccessor { HttpContext = httpContext.Object }, new Mock <IUserClaimsPrincipalFactory <User> >().Object, null, null, null); Func <object, JsonResult> toJson = (data) => { return(new JsonResult(data)); }; var manager = new CryptographManager(); var outputFactory = new OutputFactory(manager); var modelsFactory = new ModelsFactory(); var userService = new UserService(userManager); var usersValidator = new UserViewModelValidator(userManager, new ModelsFactory()); var userCtrl = new Mock <UserController>(signInManager.Object, userManager, outputFactory, userService, usersValidator); userCtrl.Object.ControllerContext = new ControllerContext() { HttpContext = httpContext.Object }; userCtrl.Setup(uCtrl => uCtrl.Json(It.IsAny <object>())).Returns(toJson); return(userCtrl); }
public NotesManager(DefaultContext context, CryptographManager cryptoMng, IModelsFactory modelsFactory, UserManager <User> userMng) { _dbContext = context; _cryptoMng = cryptoMng; _modelsFactory = modelsFactory; _userMng = userMng; }
/// <summary> /// Edit existed note. /// </summary> /// <param name="noteForEdit"></param> /// <param name="user"></param> /// <param name="cryptoManager"></param> public void EditNote(Note noteForEdit, User user, CryptographManager cryptoManager) { var encoder = cryptoManager.Get(CryptographType.Get(AlgorithName)); noteForEdit.Text = encoder.Encrypt(Text, SecretKey); noteForEdit.Title = encoder.Encrypt(Title, SecretKey); noteForEdit.User = user; noteForEdit.CryptoName = AlgorithName; }
public NoteForOutput(Note note, CryptographManager manager, string secretCode) { Id = note.Id; var cryptograph = manager.Get(CryptographType.Get(note.CryptoName)); try { Text = cryptograph.Decrypt(note.Text, secretCode); Title = cryptograph.Decrypt(note.Title, secretCode); } catch { Text = Encoding.ASCII.GetString(note.Text); Title = Encoding.ASCII.GetString(note.Title); } }
/// <summary> /// Return note, based on data from current class. /// </summary> /// <param name="manager">For get cryptographer</param> /// <param name="user">Owner of note</param> /// <returns></returns> public Note ToNote(CryptographManager manager, User user, IModelsFactory modelsFactory) { if (AlgorithmName == null) { AlgorithmName = CryptographType.AES.Type; } var encoder = manager.Get(CryptographType.Get(AlgorithmName)); var note = modelsFactory.CreateNote(); note.Title = encoder.Encrypt(Title, SecretKey); note.Text = encoder.Encrypt(Text, SecretKey); note.User = user; note.CryptoName = AlgorithmName; return(note); }
public OutputFactory(CryptographManager manager) { _cryptoManager = manager; }
public void GetBadCrypto() { var cryptoMng = new CryptographManager(); Assert.Throws <Exception>(() => { CryptographType.Get("test"); }); }
public NotesViewModelValidator(DefaultContext dbCtx, CryptographManager cryptoMng, IModelsFactory modelsFactory) { _dbContext = dbCtx; _cryptoMng = cryptoMng; _modelsFactory = modelsFactory; }