Esempio n. 1
0
        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"));
            }
        }
Esempio n. 2
0
        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;
        }