コード例 #1
0
        public IActionResult EditPetProfile(int id)
        {
            PetProfile petProfile = _repo.PetProfile.GetPetByIdIncludeAll(id);

            var userId     = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
            var petOwnerId = _repo.PetOwner.GetPetOwnerById(userId).Id;

            ViewModelPetProfile petProfileUpdating = new ViewModelPetProfile();

            petProfileUpdating.PetOwnerId   = petOwnerId;
            petProfileUpdating.PetProfileId = id;
            petProfileUpdating.Name         = petProfile.Name;
            petProfileUpdating.Age          = petProfile.Age;

            ViewData["PetType"] = new SelectList(_repo.PetType.GetAllPetTypes(), "Id", "TypeName");

            Dictionary <int, string> genderDictionary = CreateNullableBoolDictionary("N/A", "Male", "Female");

            ViewData["GenderSelection"] = new SelectList(genderDictionary, "Key", "Value");

            Dictionary <int, string> adoption = CreateNullableBoolDictionary("N/A", "Adopted", "Avaliable");

            ViewData["AdoptionStatus"] = new SelectList(adoption, "Key", "Value");

            //petProfile.PetOwner = new PetOwner();
            return(View(petProfileUpdating));
        }
コード例 #2
0
        public IActionResult CreatePetProfile(ViewModelPetProfile viewModel)
        {
            try
            {
                var userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier);

                var    petOwnerId     = _repo.PetOwner.GetPetOwnerById(userId).Id;
                string uniqueFileName = UploadedPicture(viewModel);

                PetProfile petProfile = new PetProfile
                {
                    Name           = viewModel.Name,
                    Age            = viewModel.Age,
                    IsMale         = viewModel.IsMale,
                    IsAdopted      = viewModel.IsAdopted,
                    PetOwnerId     = petOwnerId,
                    PetTypeId      = viewModel.PetTypeId,
                    ProfilePicture = uniqueFileName,
                };

                _repo.PetProfile.CreatePetProfile(petOwnerId, petProfile.PetTypeId, petProfile.Name, petProfile.Age, petProfile.IsMale, petProfile.IsAdopted, uniqueFileName);
                _repo.Save();

                return(RedirectToAction(nameof(DisplayPetProfiles)));
            }
            catch
            {
                ViewData["PetType"] = new SelectList(_repo.PetType.GetAllPetTypes(), "Id", "TypeName");
                Dictionary <int, string> genderDictionary = CreateNullableBoolDictionary("N/A", "Male", "Female");
                ViewData["GenderSelection"] = new SelectList(genderDictionary, "Key", "Value");
                Dictionary <int, string> adoption = CreateNullableBoolDictionary("N/A", "Adopted", "Avaliable");
                ViewData["AdoptionStatus"] = new SelectList(adoption, "Key", "Value");
                return(View(viewModel));
            }
        }
コード例 #3
0
        public IActionResult DisplayNotMyPetProfileDetails(int id)
        {
            //PetProfile pet = _repo.PetProfile.GetPetAndIncludeAll().Where(p => p.Id == id).FirstOrDefault();

            PetProfile petProfile = _repo.PetProfile.GetPetByIdIncludeAll(id);

            ViewModelPetProfile petProfileViewing = new ViewModelPetProfile();

            petProfileViewing.PetProfileId = id;
            petProfileViewing.Name         = petProfile.Name;
            petProfileViewing.Age          = petProfile.Age;
            petProfileViewing.PetOwnerId   = petProfile.PetOwnerId;

            ViewData["PetType"] = new SelectList(_repo.PetType.GetAllPetTypes(), "Id", "TypeName");

            Dictionary <int, string> genderDictionary = CreateNullableBoolDictionary("N/A", "Male", "Female");

            ViewData["GenderSelection"] = new SelectList(genderDictionary, "Key", "Value");

            Dictionary <int, string> adoption = CreateNullableBoolDictionary("N/A", "Adopted", "Avaliable");

            ViewData["AdoptionStatus"] = new SelectList(adoption, "Key", "Value");


            return(View(petProfileViewing));
        }
コード例 #4
0
        public IActionResult DeletePetProfile(ViewModelPetProfile viewModel)
        {
            //PetProfile petProfileToDelete = _repo.PetProfile.GetPetAndIncludeAll().FirstOrDefault(s => s.Id == petProfile.Id);
            //_repo.PetProfile.Delete(_repo.PetProfile.GetPetById(petProfile.Id));
            //_repo.Save();
            //return RedirectToAction(nameof(DisplayPetProfiles));

            PetProfile petProfileDeleting = _repo.PetProfile.GetPetAndIncludeAll().FirstOrDefault(s => s.Id == viewModel.PetProfileId);

            //petProfileDeleting.Id = viewModel.PetProfileId;

            _repo.PetProfile.Delete(petProfileDeleting);
            _repo.Save();
            return(RedirectToAction(nameof(DisplayPetProfiles)));
        }
コード例 #5
0
        private string UploadedPicture(ViewModelPetProfile model)
        {
            string uniqueFileName = null;

            if (model.ProfileImage != null)
            {
                string uploadsFolder = Path.Combine(webHostEnvironment.WebRootPath, "images");
                uniqueFileName = Guid.NewGuid().ToString() + "_" + model.ProfileImage.FileName;
                string filePath = Path.Combine(uploadsFolder, uniqueFileName);
                using (var fileStream = new FileStream(filePath, FileMode.Create))
                {
                    model.ProfileImage.CopyTo(fileStream);
                }
            }
            return(uniqueFileName);
        }
コード例 #6
0
        public IActionResult CreatePetProfile()
        {
            ViewModelPetProfile petProfile = new ViewModelPetProfile();

            _repo.PetType.GetAllPetTypes();
            ViewData["PetType"] = new SelectList(_repo.PetType.GetAllPetTypes(), "Id", "TypeName");

            Dictionary <int, string> genderDictionary = CreateNullableBoolDictionary("N/A", "Male", "Female");

            ViewData["GenderSelection"] = new SelectList(genderDictionary, "Key", "Value");

            Dictionary <int, string> adoption = CreateNullableBoolDictionary("N/A", "Adopted", "Avaliable");

            ViewData["AdoptionStatus"] = new SelectList(adoption, "Key", "Value");

            return(View(petProfile));
        }
コード例 #7
0
        public IActionResult EditPetProfile(int id, ViewModelPetProfile viewModel)
        {
            string uniqueFileName = UploadedPicture(viewModel);

            PetProfile petProfile = _repo.PetProfile.FindByCondition(p => p.Id == id).FirstOrDefault();

            petProfile.Name           = viewModel.Name;
            petProfile.Age            = viewModel.Age;
            petProfile.IsMale         = viewModel.IsMale;
            petProfile.IsAdopted      = viewModel.IsAdopted;
            petProfile.PetOwnerId     = viewModel.PetOwnerId;
            petProfile.PetTypeId      = viewModel.PetTypeId;
            petProfile.ProfilePicture = uniqueFileName;

            _repo.PetProfile.Update(petProfile);
            _repo.Save();
            return(RedirectToAction(nameof(DisplayPetProfiles)));
        }
コード例 #8
0
        public IActionResult DeletePetProfile(int id)
        {
            PetProfile petProfile = _repo.PetProfile.GetPetByIdIncludeAll(id);

            ViewModelPetProfile petProfileDeleting = new ViewModelPetProfile();

            petProfileDeleting.PetProfileId = id;
            petProfileDeleting.Name         = petProfile.Name;
            petProfileDeleting.Age          = petProfile.Age;

            ViewData["PetType"] = new SelectList(_repo.PetType.GetAllPetTypes(), "Id", "TypeName");

            Dictionary <int, string> genderDictionary = CreateNullableBoolDictionary("N/A", "Male", "Female");

            ViewData["GenderSelection"] = new SelectList(genderDictionary, "Key", "Value");

            Dictionary <int, string> adoption = CreateNullableBoolDictionary("N/A", "Adopted", "Avaliable");

            ViewData["AdoptionStatus"] = new SelectList(adoption, "Key", "Value");

            return(View(petProfileDeleting));
        }
コード例 #9
0
        public async Task <IActionResult> SearchPetProfiles()
        {
            var userId     = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
            var petOwnerId = _repo.PetOwner.GetPetOwnerById(userId).Id;

            ViewModelPetProfile viewModel = new ViewModelPetProfile();

            var pets = await _repo.PetProfile.GetPetIncludeAll();

            IEnumerable <PetProfile> petProfiles = pets.ToList();

            //IQueryable<PetProfile> notMyPets = new PetProfile[] { }.AsQueryable();

            //foreach (var pet in petProfiles)
            //{
            //    if(pet.PetOwnerId != petOwnerId)
            //    {
            //        var notMyPet = _repo.PetProfile.GetPetById(pet.Id);
            //        notMyPets.Concat(notMyPet);
            //    }
            //}

            //viewModel.PetProfiles = petProfiles.ToList();
            viewModel.PetProfiles = petProfiles.ToList();
            viewModel.PetProfiles.Insert(0, (new PetProfile()));
            viewModel.PetTypes = _repo.PetType.GetAllPetTypes().ToList();
            viewModel.PetTypes.Insert(0, new PetType());
            viewModel.GenderOptions = new Dictionary <int, string>()
            {
                { 0, "" }, { 1, "N/A" }, { 2, "Male" }, { 3, "Female" }
            };
            viewModel.Adoption = new Dictionary <int, string>()
            {
                { 0, "" }, { 1, "N/A" }, { 2, "Adopted" }, { 3, "Avaliable" }
            };

            return(View(viewModel));
        }
コード例 #10
0
        public async Task <IActionResult> FilteredThroughPetProfiles(ViewModelPetProfile searchResults)
        {
            ViewModelPetProfile viewModel = new ViewModelPetProfile();

            var pets = await _repo.PetProfile.GetPetIncludeAll();

            IEnumerable <PetProfile> petProfiles = pets.ToList();

            if (searchResults.PetTypeId != 0)
            {
                petProfiles = petProfiles.Where(bt => bt.PetTypeId == searchResults.PetTypeId);
            }
            if (searchResults.GenderSelection != 0)
            {
                switch (searchResults.GenderSelection)
                {
                case 1:
                    petProfiles = petProfiles.Where(p => p.IsMale == null);
                    break;

                case 2:
                    petProfiles = petProfiles.Where(p => p.IsMale == true);
                    break;

                case 3:
                    petProfiles = petProfiles.Where(p => p.IsMale == false);
                    break;

                default:
                    break;
                }
            }
            if (searchResults.AdoptionStatus != 0)
            {
                switch (searchResults.AdoptionStatus)
                {
                case 1:
                    petProfiles = petProfiles.Where(p => p.IsAdopted == null);
                    break;

                case 2:
                    petProfiles = petProfiles.Where(p => p.IsAdopted == true);
                    break;

                case 3:
                    petProfiles = petProfiles.Where(p => p.IsAdopted == false);
                    break;

                default:
                    break;
                }
            }

            viewModel.PetProfiles = petProfiles.ToList();
            viewModel.PetProfiles.Insert(0, (new PetProfile()));
            viewModel.PetTypes = _repo.PetType.GetAllPetTypes().ToList();
            viewModel.PetTypes.Insert(0, new PetType());
            viewModel.GenderOptions = new Dictionary <int, string>()
            {
                { 0, "" }, { 1, "N/A" }, { 2, "Male" }, { 3, "Female" }
            };
            viewModel.Adoption = new Dictionary <int, string>()
            {
                { 0, "" }, { 1, "N/A" }, { 2, "Adopted" }, { 3, "Avaliable" }
            };
            return(View("SearchPetProfiles", viewModel));
        }