public async Task <IActionResult> New(CreateDogViewModel model) { var validImage = model.Image == null || model.Image.FileName.EndsWith(".jpg"); if (!ModelState.IsValid || !validImage || model.BirthDate > DateTime.UtcNow) { return(View(model)); } else { var user = await userManager.GetUserAsync(User); var dog = new Dog { Name = model.Name, BirthDate = model.BirthDate, Province = model.Province, Breed = model.Breed, IsDisinfected = model.IsDisinfected, IsVaccinated = model.IsVaccinated, OwnerNotes = model.OwnerNotes, IsCastrated = model.IsCastrated, Gender = model.Gender, Owner = user }; if (model.Image != null) { var acc = new CloudinaryDotNet.Account("dmm9z8uow", "367813196612582", "I3kSZZCbEN-OHiyD35eh8mzyO8k"); var cloud = new Cloudinary(acc); var file = new FileDescription(model.Image.FileName, model.Image.OpenReadStream()); var upload = new ImageUploadParams() { File = file }; var image = await cloud.UploadAsync(upload); var pic = new Pic { ImageUrl = image.Uri.AbsoluteUri }; dog.Images.Add(pic); } await context.Dogs.AddAsync(dog); await context.SaveChangesAsync(); return(RedirectToAction("Index", "Home")); } }
public void CtorShouldWork() { var dog = new CreateDogViewModel { Name = "Pesho", BirthDate = DateTime.UtcNow, Province = Province.Burgas, IsDisinfected = true, IsVaccinated = false, OwnerNotes = "BlaBla", Breed = DogBreed.JackRussellTerrier }; this.createDog = dog; var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase("ResqueDb") .Options; var db = new ApplicationDbContext(options); this.context = db; var store = new Mock <IUserStore <User> >(); var userManager = new Mock <UserManager <User> >(store.Object, null, null, null, null, null, null, null, null); var claims = new List <Claim>() { new Claim(ClaimTypes.Email, "*****@*****.**") }; var identity = new ClaimsIdentity(claims, "TestAuthType"); var claimsPrincipal = new ClaimsPrincipal(identity); var fakeUser = new User { Email = "*****@*****.**", FirstName = "Pesho", LastName = "Gosho", ImageUrl = "userpic", Province = Province.Blagoevgrad, BirthDate = DateTime.UtcNow }; this.context.Users.Add(fakeUser); this.context.SaveChanges(); userManager.Setup(u => u.GetUserAsync(claimsPrincipal)).ReturnsAsync(this.context.Users.FirstOrDefault(u => u.Email == "*****@*****.**")); userManager.Setup(u => u.GetUserId(claimsPrincipal)).Returns(this.context.Users.FirstOrDefault(u => u.Email == "*****@*****.**").Id); this.userManager = userManager.Object; var mController = new MessagesController(this.context, this.userManager); mController.ControllerContext = new ControllerContext { HttpContext = new DefaultHttpContext { User = claimsPrincipal } }; this.mController = mController; }