예제 #1
0
        public async Task Details_UserId_OpenUserInformationView()
        {
            var userController = CreateUserController();
            var user           = new ApplicationUser()
            {
                UserName = "******"
            };
            var user2 = new ApplicationUser()
            {
                UserName = "******"
            };

            context.Users.Add(user);
            context.Users.Add(user2);
            await context.SaveChangesAsync();

            var result = await userController.Details(user.Id);

            var viewResult    = (ViewResult)result;
            var retrievedUser = (ApplicationUser)viewResult.Model;

            Assert.IsType <ViewResult>(result);
            Assert.IsType <ApplicationUser>(retrievedUser);
            Assert.Equal(retrievedUser.Id, user.Id);
        }
예제 #2
0
        public async Task <IActionResult> CreateAsync(int id, Comments comment)
        {
            if (ModelState.IsValid)
            {
                var comments = new Comments
                {
                    Listingid = id,
                    Userid    = this.User.FindFirstValue(ClaimTypes.NameIdentifier),
                    Text      = comment.Text,
                    Date      = DateTime.Now
                };
                _context.Add(comments);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Details", "Listings", new { id = id }));
            }

            // turetu sito nepasiekti
            return(RedirectToAction("Index", "Home"));
        }
예제 #3
0
        public async Task <IActionResult> CreateAdmin([Bind("Message,RecipientId")] CreateMessageModel model)
        {
            var sender = _context.Users.FirstOrDefaultAsync(user => user.Id == _userManager.GetUserId(User));

            model.UsersHasMessages = new UsersHasMessages {
                Sender = await sender
            };

            if (ModelState.IsValid)
            {
                model.Message.DateSent = DateTime.Now;
                _context.Add(model.Message);
                await _context.SaveChangesAsync();

                model.UsersHasMessages.IsAdminMessage = 1;
                model.UsersHasMessages.IsDeleted      = 0;
                model.UsersHasMessages.AlreadyRead    = 0;
                model.UsersHasMessages.Messages       = model.Message;
                model.UsersHasMessages.MessagesId     = model.Message.Id;

                IList <ApplicationUser> users = _context.Users.ToList();
                foreach (var user in users)
                {
                    //Data for UsersHasMessages table
                    model.UsersHasMessages.RecipientId = user.Id;

                    _context.Add(model.UsersHasMessages);
                    await _context.SaveChangesAsync();
                }
                return(RedirectToAction(nameof(Index)));
            }

            return(View(model));
        }
예제 #4
0
        public async Task Create_ListingId_CommentOpenView()
        {
            // Arrange
            var commentController = this.CreateCommentController(true);
            var listing           = new Listings()
            {
                Name        = "Cool train",
                Description = "The greatest train of all time",
                Userid      = this.fakeUser.Id,
                Display     = 1,
                Verified    = 1,
                Price       = 500000.0
            };

            mockadvert_siteContext.Listings.Add(listing);
            await mockadvert_siteContext.SaveChangesAsync();

            // Act
            var result = commentController.Create(listing.Id);

            // Assert
            Assert.IsType <ViewResult>(result);
        }
예제 #5
0
        public async Task Index_RequestQuery_OpenAllListingView(string type, string key, int?id, bool loggedIn, int expectedResult)
        {
            var httpContext = new Mock <HttpContext>();

            httpContext.Setup(x => x.Request.Query["type"]).Returns(type);
            httpContext.Setup(x => x.Request.Query["key"]).Returns(key);
            var controllerContext = new ControllerContext()
            {
                HttpContext = httpContext.Object
            };

            var listingsController = this.CreateListingsController(loggedIn);
            var category           = new Category()
            {
                Id   = 5,
                Name = "cars"
            };
            var subcategory = new Subcategory()
            {
                Id         = 10,
                Categoryid = 5,
                Name       = "BMW"
            };
            var subcategory2 = new Subcategory()
            {
                Id         = 11,
                Categoryid = 5,
                Name       = "Audi"
            };

            context.Category.Add(category);
            context.Subcategory.Add(subcategory);
            context.Subcategory.Add(subcategory2);
            await context.SaveChangesAsync();

            List <Listings> list = new List <Listings>()
            {
                GenerateListing(subcategoryid: 4, verified: 1, display: 1, name: "mouse"),
                GenerateListing(subcategoryid: 10, verified: 1, display: 1),
                GenerateListing(subcategoryid: 10, verified: 1, display: 1, name: "keyboard"),
                GenerateListing(subcategoryid: 10, verified: 1, display: 1),
                GenerateListing(subcategoryid: 10, verified: 1, display: 1),
                GenerateListing(subcategoryid: 10, verified: 1, display: 1, name: "Mouse123"),
                GenerateListing(subcategoryid: 3, verified: 1, display: 1, name: "ASDASDASD"),
                GenerateListing(subcategoryid: 11, verified: 1, display: 1, name: "test", description: "good mouse"),
                GenerateListing(subcategoryid: 11, verified: 1, display: 1),
                GenerateListing(subcategoryid: 11, verified: 0, display: 0),
            };

            if (loggedIn)
            {
                list[0].Userid = fakeUser.Id;
                list[1].Userid = fakeUser.Id;
            }
            context.Listings.AddRange(list);
            await context.SaveChangesAsync();

            listingsController.ControllerContext = controllerContext;

            var result = await listingsController.Index(id);

            var viewResult = (ViewResult)result;
            var listings   = (List <Listings>)viewResult.Model;

            // Assert
            Assert.IsType <ViewResult>(result);
            Assert.Equal(expectedResult, listings.Count);
        }
예제 #6
0
        public async Task <IActionResult> CreatePost([Bind("Subcategoryid,Name,Description,Price,GoogleLatitude,GoogleLongitude,GoogleRadius,ListingPictures")] ListingNewModel newListing)
        {
            if (ModelState.IsValid)
            {
                Listings listings = new Listings()
                {
                    Subcategoryid   = newListing.Subcategoryid,
                    Name            = newListing.Name,
                    Description     = newListing.Description,
                    Price           = newListing.Price,
                    GoogleLatitude  = newListing.GoogleLatitude,
                    GoogleLongitude = newListing.GoogleLongitude,
                    GoogleRadius    = newListing.GoogleRadius * 1000
                };

                listings.Userid = this.User.FindFirstValue(ClaimTypes.NameIdentifier);

                listings.Date     = DateTime.Now;
                listings.Display  = 1;
                listings.Verified = 0;

                /*
                 * listings.GoogleLongitude = 0;// newListing.GoogleLongitude;
                 * listings.GoogleLatitude = 0;// newListing.GoogleLatitude;
                 * listings.GoogleRadius = 10000;// newListing.GoogleRadius;
                 */
                _context.Add(listings);
                _context.SaveChanges();


                if (newListing.ListingPictures != null && newListing.ListingPictures.Count() > 4) //jei nuotrauku daugiau nei 4 atmetam
                {
                    TempData["PictureError"] = "Nuotraukų negali būti daugiau nei 4!";
                    return(RedirectToAction(nameof(Create), newListing));
                }

                if (newListing.ListingPictures != null)
                {
                    foreach (var picture in newListing.ListingPictures)
                    {
                        if (picture.Length > ImageMaximumBytes) //jei dydid didesnis uz 10MB atmeta
                        {
                            TempData["PictureError"] = "Nuotraukos dydis negali būti didesnis nei 10Mb!";
                            return(RedirectToAction(nameof(Create), newListing));
                        }

                        if (!IsImage(picture))
                        {
                            TempData["PictureError"] = "Failas nėra nuotrauka!";
                            return(RedirectToAction(nameof(Create), newListing));
                        }
                    }

                    foreach (var picture in newListing.ListingPictures)
                    {
                        if (picture.Length > 0)
                        {
                            var pic = new ListingPictures {
                                ListingId = listings.Id, ContentType = picture.ContentType
                            };
                            _context.Add(pic);
                            await _context.SaveChangesAsync();

                            string[] filenameAndExtension = picture.FileName.Split('.');
                            filenameAndExtension[0] = pic.PictureId.ToString();

                            string fileName = filenameAndExtension[0] + "." + filenameAndExtension[1];

                            string path = "UserPictures" + "\\" + fileName;
                            path = Path.GetFullPath(path);

                            pic.FileName = fileName;
                            _context.ListingPictures.Update(pic);
                            using (var stream = new FileStream(path, FileMode.Create))
                            {
                                await picture.CopyToAsync(stream);
                            }
                        }
                    }
                }
                await _context.SaveChangesAsync();

                //TempData["Success"] = "Jūsų skelbimas bus patalpintas, kai administratorius jį patikrins";
                return(RedirectToAction(nameof(Index)));
            }

            ViewData["Subcategoryid"] = new SelectList(_context.Subcategory, "Id", "Id");
            ViewData["Userid"]        = new SelectList(_context.Users, "Id", "UserName");
            return(View(newListing));
        }