コード例 #1
0
        public ActionResult GetDogsWithOwner()
        {
            var dogsWithOwners = context.Dogs.Where(d => d.isReserved)
                                 .Include(d => d.Litter)
                                 .Include(d => d.Collar)
                                 .Include(d => d.Gender)
                                 .Include(d => d.Image)
                                 .Include(d => d.PotentialOwner)
                                 .ToList();

            if (dogsWithOwners.Count == 0)
            {
                return(View("ReservationList", dogsWithOwners));
            }

            List <Dog> dogsRefinedList = new List <Dog>();

            foreach (var dog in dogsWithOwners)
            {
                PotentialOwner owner = context.PotentialOwners.FirstOrDefault(p => p.Id == dog.PotentialOwnerId);
                if (!owner.IsOwner)
                {
                    dogsRefinedList.Add(dog);
                }
            }

            return(View("ReservationList", dogsRefinedList));
        }
コード例 #2
0
        //WatchLitter
        public ActionResult SelectWatchLitter(int?id)
        {
            var            applicationId  = User.Identity.GetUserId();
            PotentialOwner potentialOwner =
                context.PotentialOwners.FirstOrDefault(p => p.ApplicationId == applicationId);

            potentialOwner.WatchedLitterId = id;
            context.SaveChanges();
            return(RedirectToAction("GetLittersByPreference", "Litters"));
        }
コード例 #3
0
        public void AssignPreferenceId()
        {
            var            applicationId        = User.Identity.GetUserId();
            PotentialOwner potentialOwnerFromDb =
                context.PotentialOwners.FirstOrDefault(p => p.ApplicationId == applicationId);
            var mostRecentEntry = context.Preferences.Max(p => p.Id);

            potentialOwnerFromDb.PreferenceId = mostRecentEntry;
            context.SaveChanges();
        }
コード例 #4
0
 public async Task SendAppointmentEmail(PotentialOwner potentialOwner)
 {
     var breeder          = context.Breeders.FirstOrDefault();
     var client           = new SendGridClient(ApiKey.ApiKey.SendGrid);
     var from             = new EmailAddress(potentialOwner.EmailAddress, potentialOwner.FirstName);
     var subject          = "Appointment Request";
     var to               = new EmailAddress(breeder.EmailAddress, breeder.FirstName);
     var plainTextContent = "<strong>" + potentialOwner.FirstName + Email.AppointmentMessage + "</strong>";
     var htmlContent      = "<strong>" + potentialOwner.FirstName + Email.AppointmentMessage + "</strong>";
     var msg              = MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);
     var response         = await client.SendEmailAsync(msg);
 }
コード例 #5
0
        public async Task <ActionResult> SaveAppointment(Appointment appointment)
        {
            var            applicationUserId = User.Identity.GetUserId();
            PotentialOwner potentialOwner    =
                context.PotentialOwners.FirstOrDefault(p => p.ApplicationId == applicationUserId);

            appointment.PotentialOwnerId = potentialOwner.Id;
            context.Appointments.Add(appointment);
            context.SaveChanges();
            await SendAppointmentEmail(potentialOwner);

            return(View("AppointmentSentConfirmation"));
        }
コード例 #6
0
        public ActionResult UpgradePotentialOwner(int?id)
        {
            PotentialOwner potentialOwner = context.PotentialOwners.FirstOrDefault(p => p.Id == id);

            potentialOwner.IsOwner = true;

            ApplicationForm form =
                context.ApplicationForms.FirstOrDefault(f => f.PotentialOwnerId == potentialOwner.Id);

            context.ApplicationForms.Remove(form);
            context.SaveChanges();
            return(RedirectToAction("GetDogsWithOwner"));
        }
コード例 #7
0
        public ActionResult NewPreferences()
        {
            var            applicationId        = User.Identity.GetUserId();
            PotentialOwner potentialOwnerFromDb =
                context.PotentialOwners.FirstOrDefault(p => p.ApplicationId == applicationId);

            if (potentialOwnerFromDb.PreferenceId == null)
            {
                Preference preference = new Preference();
                return(View("PreferencesForm", preference));
            }

            Preference preferenceFromDb =
                context.Preferences.FirstOrDefault(p => p.Id == potentialOwnerFromDb.PreferenceId);

            return(View("PreferencesForm", preferenceFromDb));
        }
コード例 #8
0
        public ActionResult GetForumPosts()
        {
            if (User.IsInRole(RoleName.PotentialOwner))
            {
                var            applicationId  = User.Identity.GetUserId();
                PotentialOwner potentialOwner =
                    context.PotentialOwners.FirstOrDefault(p => p.ApplicationId == applicationId);

                if (!potentialOwner.IsOwner)
                {
                    return(View("NonOwner"));
                }
            }

            var gallery = context.ForumMessages.ToList();

            return(View("Gallery", gallery));
        }
コード例 #9
0
        public ActionResult Save(PotentialOwner potentialOwner)
        {
            if (potentialOwner.Id == 0)
            {
                potentialOwner.ApplicationId = User.Identity.GetUserId();
                potentialOwner.EmailAddress  = GetUserEmail();
                context.PotentialOwners.Add(potentialOwner);
            }
            else
            {
                PotentialOwner potentialOwnerFromDb =
                    context.PotentialOwners.FirstOrDefault(p => p.Id == potentialOwner.Id);

                potentialOwnerFromDb.FirstName = potentialOwner.FirstName;
                potentialOwnerFromDb.LastName  = potentialOwner.LastName;
            }

            context.SaveChanges();
            return(RedirectToAction("Index", "Litters"));
        }
コード例 #10
0
        public async Task ApplicationEmail(int?id, string confirmation)
        {
            PotentialOwner potentialOwner = context.PotentialOwners.FirstOrDefault(p => p.Id == id);
            var            breeder        = context.Breeders.FirstOrDefault();
            var            subjectTitle   = "Application Denied";
            var            text           = "<strong>" + Email.ApplicationDenied + "</strong>";

            if (confirmation == "yes")
            {
                subjectTitle = "Application Confirmed";
                text         = "<strong>" + Email.ApplicationConfirmed + "</strong>";
            }

            var client           = new SendGridClient(ApiKey.ApiKey.SendGrid);
            var from             = new EmailAddress(breeder.EmailAddress, breeder.FirstName);
            var subject          = subjectTitle;
            var to               = new EmailAddress(potentialOwner.EmailAddress, potentialOwner.FirstName);
            var plainTextContent = text;
            var htmlContent      = text;
            var msg              = MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);
            var response         = await client.SendEmailAsync(msg);
        }
コード例 #11
0
        public ActionResult GetLittersByPreference()
        {
            var            applicationId  = User.Identity.GetUserId();
            PotentialOwner potentialOwner = context.PotentialOwners.FirstOrDefault(e => e.ApplicationId == applicationId);
            Preference     preferences    = context.Preferences.FirstOrDefault(p => p.Id == potentialOwner.PreferenceId);

            if (preferences == null)
            {
                return(RedirectToAction("NewPreferences", "PotentialOwners"));
            }

            List <Litter> litters = FilterLitterPreferences(preferences);
            List <Litter> littersWithNumberOfDogs = new List <Litter>();

            foreach (Litter litter in litters)
            {
                Litter litterFromDb = context.Litters.FirstOrDefault(l => l.Id == litter.Id);
                litterFromDb.NumberOfDogs = GetNumberOfDogsFromLitter(litter);
                littersWithNumberOfDogs.Add(litterFromDb);
            }

            return(View("ListByPreference", littersWithNumberOfDogs));
        }
コード例 #12
0
        public async Task <ActionResult> Reserve(int?id)
        {
            var            applicationId  = User.Identity.GetUserId();
            PotentialOwner potentialOwner =
                context.PotentialOwners.FirstOrDefault(p => p.ApplicationId == applicationId);

            ApplicationForm form =
                context.ApplicationForms.FirstOrDefault(f => f.PotentialOwnerId == potentialOwner.Id);

            if (form == null || form.Confirmed == false)
            {
                return(View("NotApproved"));
            }

            Dog dog = context.Dogs.FirstOrDefault(d => d.Id == id);

            dog.isReserved       = true;
            dog.PotentialOwnerId = potentialOwner.Id;

            context.SaveChanges();
            await SendReserveSpotEmail(potentialOwner);

            return(View("SpotReserved"));
        }
コード例 #13
0
        //PotentialOwner
        public ActionResult New()
        {
            PotentialOwner potentialOwner = new PotentialOwner();

            return(View("PotentialOwnersForm", potentialOwner));
        }