Esempio n. 1
0
        public static Dinner ToModel(this DinnerViewModel viewModel, NerdDinnerDataContext dataContext)
        {
            if (viewModel == null)
            {
                throw new ArgumentNullException("viewModel");
            }
            if (dataContext == null)
            {
                throw new ArgumentNullException("dataContext");
            }

            var dinnerRepository  = new DinnerRepository(dataContext);
            var countryRepository = new CountryRepository(dataContext);

            Dinner model = dinnerRepository.TryGetDinner(viewModel.DinnerID) ?? new Dinner();

            model.Address      = viewModel.Address;
            model.ContactPhone = viewModel.ContactPhone;
            model.Description  = viewModel.Description;
            model.EventDate    = viewModel.EventDate;
            model.Latitude     = viewModel.Latitude;
            model.Longitude    = viewModel.Longitude;
            model.Title        = viewModel.Title;
            model.HostedBy     = viewModel.HostedBy;
            model.Country      = viewModel.Country != null?countryRepository.GetCountry(viewModel.Country.CountryID) : null;

            return(model);
        }
        protected override IEnumerable <SearchSuggestion> GetSuggestions(string term)
        {
            var dinners = new DinnerRepository().FindDinnersByText(term).ToArray();

            return(from dinner in dinners
                   select new
                   SearchSuggestion
            {
                Description = dinner.Description,
                Term = dinner.Title + " " + Resources.Resources.with + " " + dinner.HostedBy,
            });
        }
        protected override IEnumerable <SearchResult> GetResults(string q)
        {
            var dinners = new DinnerRepository().FindDinnersByText(q).ToArray();

            return(from dinner in dinners
                   select new
                   SearchResult
            {
                Description = dinner.Description,
                Title = dinner.Title + " " + Resources.Resources.with + " " + dinner.HostedBy,
                Path = "/" + dinner.DinnerID
            });
        }
Esempio n. 4
0
        public ActionResult Index(int dinnerCount = 100)
        {
            const string name = "Nerd";
            var          membershipService = new AccountMembershipService();

            if (membershipService.ValidateUser(name, "password") == false)
            {
                membershipService.CreateUser(name, "password", "*****@*****.**");
            }
            var repo = new DinnerRepository();

            foreach (var d in repo.All)
            {
                repo.Delete(d.DinnerID);
            }
            for (var i = 0; i < dinnerCount; i++)
            {
                var dinner = new Dinner {
                    Title        = "Nerd-Out",
                    Description  = "Nerding out with the nerds",
                    EventDate    = DateTime.Now.Add(new TimeSpan(30, 0, 0, 0)),
                    ContactPhone = "403-999-9999",
                    Address      = "Calgary, AB",
                    Country      = "Canada",
                    HostedById   = name,
                    HostedBy     = name
                };
                var rsvp = new RSVP {
                    AttendeeNameId = name, AttendeeName = name
                };
                dinner.RSVPs = new List <RSVP> {
                    rsvp
                };
                repo.InsertOrUpdate(dinner);
            }
            try {
                repo.Save();
            }
            catch (DbEntityValidationException e) {
                var error = e.EntityValidationErrors.First().ValidationErrors.First();
                return(new ContentResult {
                    Content = string.Format("{0}: {1}", error.PropertyName, error.ErrorMessage)
                });
            }
            return(new ContentResult {
                Content = "Success"
            });
        }
Esempio n. 5
0
        public ActionResult RsvpFinish()
        {
            IAuthenticationResponse response = relyingParty.GetResponse();

            if (response == null)
            {
                return(RedirectToAction("Index"));
            }

            if (response.Status == AuthenticationStatus.Authenticated)
            {
                var    dinnerRepository = new DinnerRepository();
                int    id     = int.Parse(response.GetUntrustedCallbackArgument("DinnerId"));
                Dinner dinner = dinnerRepository.GetDinner(id);

                // The alias we're getting here is NOT a secure identifier, but a friendly one,
                // which is all we need for this scenario.
                string alias = response.FriendlyIdentifierForDisplay;
                var    sreg  = response.GetExtension <ClaimsResponse>();
                if (sreg != null && sreg.MailAddress != null)
                {
                    alias = sreg.MailAddress.User;
                }

                // NOTE: The alias we've generated for this user isn't guaranteed to be unique.
                // Need to trim to 30 characters because that's the max for Attendee names.
                if (!dinner.IsUserRegistered(alias))
                {
                    RSVP rsvp = new RSVP();
                    rsvp.AttendeeName   = alias;
                    rsvp.AttendeeNameId = response.ClaimedIdentifier;

                    dinner.RSVPs.Add(rsvp);
                    dinnerRepository.Save();
                }
            }

            return(RedirectToAction("Details", "Dinners", new { id = response.GetUntrustedCallbackArgument("DinnerId") }));
        }
Esempio n. 6
0
        // GET: /RSVP/RsvpTwitterFinish

        public ActionResult RsvpTwitterFinish(int id)
        {
            string screenName;
            int    userId;

            if (TwitterConsumer.TryFinishSignInWithTwitter(out screenName, out userId))
            {
                var    dinnerRepository = new DinnerRepository();
                Dinner dinner           = dinnerRepository.GetDinner(id);

                // NOTE: The alias we've generated for this user isn't guaranteed to be unique.
                string alias = "@" + screenName;
                if (!dinner.IsUserRegistered(alias))
                {
                    RSVP rsvp = new RSVP();
                    rsvp.AttendeeName = alias;

                    dinner.RSVPs.Add(rsvp);
                    dinnerRepository.Save();
                }
            }

            return(RedirectToAction("Details", "Dinners", new { id = id }));
        }
Esempio n. 7
0
 public DinnersController()
 {
     dinnerRepository = new DinnerRepository();
 }
 public DinnersController()
 {
     _dataContext       = new NerdDinnerDataContext();
     _dinnerRepository  = new DinnerRepository(_dataContext);
     _countryRepository = new CountryRepository(_dataContext);
 }
Esempio n. 9
0
 public RsvpController()
 {
     _dataContext      = new NerdDinnerDataContext();
     _dinnerRepository = new DinnerRepository(_dataContext);
 }
Esempio n. 10
0
        /*
         * -- Simple test query --
         *
         *  query TestQuery {
         *    reservations {
         *      id
         *      checkinDate
         *      checkoutDate
         *      guest {
         *        id
         *        name
         *        registerDate
         *      }
         *      room {
         *        id
         *        name
         *        number
         *        allowedSmoking
         *        status
         *      }
         *    }
         *  }
         *
         */

        public DinnerQuery(DinnerRepository dinnerRepository)
        {
            /*Version: 1 get all*/
            //Field<ListGraphType<ReservationType>>("reservations",
            //    resolve: context => reservationRepository.GetQuery());

            /*Version: 2 filtering*/
            Field <ListGraphType <DinnerType> >("dinners",
                                                arguments: new QueryArguments(new List <QueryArgument>
            {
                new QueryArgument <IdGraphType>
                {
                    Name = "id"
                },
                new QueryArgument <DateGraphType>
                {
                    Name = "checkinDate"
                },
                new QueryArgument <DateGraphType>
                {
                    Name = "checkoutDate"
                },
                new QueryArgument <BooleanGraphType>
                {
                    Name = "roomAllowedSmoking"
                }

                /*,
                 * new QueryArgument<RoomStatusType>
                 * {
                 *  Name = "roomStatus"
                 * }*/
            }),
                                                resolve: context =>
            {
                var query = dinnerRepository.GetQuery();

                var user = (ClaimsPrincipal)context.UserContext;
                var isUserAuthenticated = ((ClaimsIdentity)user.Identity).IsAuthenticated;

                var dinnerId = context.GetArgument <int?>("id") ?? (int?)123;
                if (dinnerId.HasValue)
                {
                    if (dinnerId.Value <= 0)
                    {
                        context.Errors.Add(new ExecutionError("reservationId must be greater than zero!"));
                        return(new List <Dinner>());
                    }

                    return(dinnerRepository.GetQuery().Where(d => d.Id == dinnerId.Value));
                }

                // var checkinDate = context.GetArgument<DateTime?>("checkinDate");
                // if (checkinDate.HasValue)
                // {
                //     return reservationRepository.GetQuery()
                //         .Where(r => r.CheckinDate.Date == checkinDate.Value.Date);
                // }

                // var allowedSmoking = context.GetArgument<bool?>("roomAllowedSmoking");
                // if (allowedSmoking.HasValue)
                // {
                //     return reservationRepository.GetQuery()
                //         .Where(r => r.Room.AllowedSmoking == allowedSmoking.Value);
                // }

                // var roomStatus = context.GetArgument<RoomStatus?>("roomStatus");
                // if (roomStatus.HasValue)
                // {
                //     return reservationRepository.GetQuery().Where(r => r.Room.Status == roomStatus.Value);
                // }

                return(query.ToList());
            }
                                                );
        }
 public Service()
 {
     repo   = new DinnerRepository();
     dinner = repo.GetDinner(5);
 }