コード例 #1
0
        public ActionResult Details(int id)
        {
            var db = new PetShopDbContext();

            var pet = db.Pets
                      .Where(p => p.Id == id)
                      .Select(p => new DetailsPetModel
            {
                Id                 = p.Id,
                Age                = p.Age,
                AnimalType         = p.AnimalType,
                Breed              = p.Breed,
                Characteristics    = p.Characteristics,
                Coat               = p.Coat,
                Color              = p.Color,
                ImageUrl           = p.ImageUrl,
                Name               = p.Name,
                Price              = p.Price,
                Size               = p.Size,
                IsBought           = p.IsBought,
                ContactInformation = p.Owner.Email
            })
                      .FirstOrDefault();

            if (pet == null)
            {
                return(HttpNotFound());
            }

            return(View(pet));
        }
コード例 #2
0
        public PetTestController()
        {
            var context = new PetShopDbContext(dbContextOptions);

            _petServices          = new PetServices(context);
            _accomodationServices = new PetAccomodationServices(context);
        }
コード例 #3
0
        public ActionResult Create(CreatePetModel model)
        {
            if (this.ModelState.IsValid)
            {
                var ownerId = this.User.Identity.GetUserId();

                var pet = new Pet
                {
                    Name            = model.Name,
                    Age             = model.Age,
                    AnimalType      = model.AnimalType,
                    Breed           = model.Breed,
                    Price           = model.Price,
                    ImageUrl        = model.ImageUrl,
                    Color           = model.Color,
                    Size            = model.Size,
                    Coat            = model.Coat,
                    Characteristics = model.Characteristics,
                    OwnerId         = ownerId
                };

                var db = new PetShopDbContext();
                db.Pets.Add(pet);
                db.SaveChanges();

                return(RedirectToAction("Details", new { id = pet.Id }));
            }
            return(View(model));
        }
コード例 #4
0
        public ActionResult Buy(BuyPetModel buyPetModel)
        {
            var db = new PetShopDbContext();

            var pet = db.Pets
                      .Where(p => p.Id == buyPetModel.PetId)
                      .Select(p => new
            {
                p.IsBought,
                p.ImageUrl,
                FullName = p.Name,
                p.Price
            })
                      .FirstOrDefault();

            if (pet == null || pet.IsBought)
            {
                return(HttpNotFound());
            }

            buyPetModel.PetName  = pet.FullName;
            buyPetModel.Price    = pet.Price;
            buyPetModel.ImageUrl = pet.ImageUrl;

            return(View(buyPetModel));
        }
コード例 #5
0
        public ActionResult Buy(int petId)
        {
            var db = new PetShopDbContext();

            var pet = db.Pets
                      .Where(p => p.Id == petId)
                      .FirstOrDefault();

            var userId = this.User.Identity.GetUserId();

            if (pet == null || pet.IsBought || pet.OwnerId == userId)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var buying = new Buying
            {
                PetId    = petId,
                BoughtOn = DateTime.Now,
                UserId   = userId,
                Price    = pet.Price
            };

            pet.IsBought = true;

            db.BoughtPets.Add(buying);
            db.SaveChanges();

            return(RedirectToAction("Details", new { id = pet.Id }));
        }
コード例 #6
0
        public ActionResult Edit(EditPetModel editPetModel)
        {
            if (this.ModelState.IsValid)
            {
                var db = new PetShopDbContext();

                var pet = db.Pets
                          .FirstOrDefault(p => p.Id == editPetModel.Id);
                var ownerId = this.User.Identity.GetUserId();

                pet.Name            = editPetModel.Name;
                pet.Age             = editPetModel.Age;
                pet.AnimalType      = editPetModel.AnimalType;
                pet.Breed           = editPetModel.Breed;
                pet.Price           = editPetModel.Price;
                pet.ImageUrl        = editPetModel.ImageUrl;
                pet.Color           = editPetModel.Color;
                pet.Size            = editPetModel.Size;
                pet.Coat            = editPetModel.Coat;
                pet.Characteristics = editPetModel.Characteristics;

                db.Entry(pet).State = EntityState.Modified;
                db.SaveChanges();

                return(RedirectToAction("Details", new { id = editPetModel.Id }));
            }

            return(View(editPetModel));
        }
コード例 #7
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var db = new PetShopDbContext();

            var pet = db.Pets
                      .Where(p => p.Id == id)
                      .First();

            if (pet == null)
            {
                return(HttpNotFound());
            }

            var editPetModel = new EditPetModel();

            editPetModel.Name            = pet.Name;
            editPetModel.Age             = pet.Age;
            editPetModel.AnimalType      = pet.AnimalType;
            editPetModel.Breed           = pet.Breed;
            editPetModel.ImageUrl        = pet.ImageUrl;
            editPetModel.Price           = pet.Price;
            editPetModel.Color           = pet.Color;
            editPetModel.Size            = pet.Size;
            editPetModel.Characteristics = pet.Characteristics;
            editPetModel.Coat            = pet.Coat;

            return(View(editPetModel));
        }
コード例 #8
0
        public ActionResult BoughtPets()
        {
            var db = new PetShopDbContext();

            var userId = this.User.Identity.GetUserId();

            var boughtPets = db.BoughtPets
                             .OrderByDescending(p => p.Id)
                             .Where(p => p.UserId == userId)
                             .Select(p => new BoughtPetsModel
            {
                PetName     = p.Pet.Name,
                Price       = p.Price,
                BoughtOn    = p.BoughtOn,
                PetImageUrl = p.Pet.ImageUrl
            })
                             .ToList();

            return(View(boughtPets));
        }
コード例 #9
0
        public ActionResult Delete(int Id)
        {
            var db = new PetShopDbContext();

            var pet = db.Pets
                      .Where(p => p.Id == Id)
                      .FirstOrDefault();

            var user = this.User.Identity.GetUserId();

            if (pet == null || user != pet.OwnerId)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            db.Pets.Remove(pet);
            db.SaveChanges();

            return(Redirect("/Pets/All"));
        }
コード例 #10
0
        public ActionResult Index()
        {
            var db = new PetShopDbContext();

            var pets = db.Pets
                       .Where(p => p.IsBought == false)
                       .OrderByDescending(p => p.Id)
                       .Take(3)
                       .Select(p => new ListingPetModel
            {
                Id       = p.Id,
                Age      = p.Age,
                Breed    = p.Breed,
                Name     = p.Name,
                ImageUrl = p.ImageUrl
            })
                       .ToList();

            return(View(pets));
        }
コード例 #11
0
        public ActionResult All(int page = 1, string user = null, string search = null)
        {
            var db = new PetShopDbContext();

            var pageSize = 4;

            var petsQuery = db.Pets.AsQueryable();

            if (search != null)
            {
                petsQuery = petsQuery
                            .Where(p => p.Name.ToLower().Contains(search.ToLower()) ||
                                   p.Breed.ToLower().Contains(search.ToLower()));
            }

            if (user != null)
            {
                petsQuery = petsQuery
                            .Where(p => p.Owner.Email == user);
            }

            var pets = petsQuery
                       .OrderByDescending(p => p.Id)
                       .Skip((page - 1) * pageSize)
                       .Take(pageSize)
                       .Select(p => new ListingPetModel
            {
                Id       = p.Id,
                ImageUrl = p.ImageUrl,
                Name     = p.Name,
                Age      = p.Age,
                Breed    = p.Breed,
                Price    = p.Price,
                IsBought = p.IsBought
            })
                       .ToList();

            ViewBag.CurrentPage = page;

            return(View(pets));
        }
コード例 #12
0
        public ActionResult Delete(DeletePetModel deletePetModel)
        {
            var db = new PetShopDbContext();

            var pet = db.Pets
                      .Where(p => p.Id == deletePetModel.Id)
                      .Select(p => new
            {
                p.Name,
                p.ImageUrl
            })
                      .FirstOrDefault();

            if (pet == null)
            {
                return(HttpNotFound());
            }

            deletePetModel.Name     = pet.Name;
            deletePetModel.ImageUrl = pet.ImageUrl;

            return(View(deletePetModel));
        }
コード例 #13
0
 public ClientRepository(PetShopDbContext context)
 {
     _context = context;
 }
コード例 #14
0
 public PetServices(PetShopDbContext context)
 {
     _context = context;
 }
コード例 #15
0
 public OwnerRepository(PetShopDbContext ctx)
 {
     _ctx = ctx;
 }
コード例 #16
0
 public PetRepository(PetShopDbContext ctx)
 {
     _ctx = ctx;
 }
コード例 #17
0
 public PetColorRepository(PetShopDbContext context)
 {
     _context = context;
 }
コード例 #18
0
 public PetTypeRepository(PetShopDbContext context)
 {
     _context = context;
 }
コード例 #19
0
 public UserRepository(PetShopDbContext context)
 {
     _context = context;
 }
コード例 #20
0
 public PetAccomodationServices(PetShopDbContext context)
 {
     _context = context;
 }
コード例 #21
0
 public ProductService(PetShopDbContext db, IMapper mapper)
 {
     this._db     = db;
     this._mapper = mapper;
 }