예제 #1
0
 public ActionResult Create(BookClub club)
 {
     try
     {
         var userId = User.Identity.GetUserId();
         if (userId == null)
         {
             return(RedirectToAction("Login", "Account"));
         }
         Member member = db.Members.FirstOrDefault(m => m.ApplicationUserId == userId);
         club.NameIsTaken = false;
         if (club.Id == default)
         {
             club.Id = Guid.NewGuid();
         }
         if (db.BookClubs.FirstOrDefault(c => c.Name == club.Name) != null)
         {
             club.NameIsTaken = true;
             return(View(club));
         }
         db.BookClubs.Add(club);
         db.ClubMembers.Add(new ClubMembers {
             Id = Guid.NewGuid(), Club = club, Member = member, IsManager = true
         });
         db.SaveChanges();
         return(RedirectToAction("Index", club));
     }
     catch
     {
         return(View());
     }
 }
예제 #2
0
        public ActionResult Index(Guid id)
        {
            BookClub           club      = db.BookClubs.Find(id);
            ClubIndexViewModel viewModel = GetClubIndexViewModel(club);

            return(View(viewModel));
        }
예제 #3
0
        public ActionResult Edit(BookClub club)
        {
            try
            {
                club.NameIsTaken = false;
                var userId = User.Identity.GetUserId();
                if (userId == null)
                {
                    return(RedirectToAction("Login", "Account"));
                }
                BookClub bookClubWithSameName = db.BookClubs.FirstOrDefault(bc => bc.Name == club.Name);
                if (bookClubWithSameName != null && bookClubWithSameName.Id != club.Id)
                {
                    club.NameIsTaken = true;
                    return(View(club));
                }
                Member      member      = db.Members.FirstOrDefault(m => m.ApplicationUserId == userId);
                ClubMembers clubMembers = db.ClubMembers.FirstOrDefault(cb => cb.MemberId == member.Id && cb.ClubId == club.Id);
                if (clubMembers.IsManager)
                {
                    BookClub clubFromDb = db.BookClubs.Find(club.Id);
                    clubFromDb.Name         = club.Name;
                    clubFromDb.PrivacyLevel = club.PrivacyLevel;
                    clubFromDb.Description  = club.Description;
                    db.SaveChanges();
                }

                return(RedirectToAction("Index", new { id = club.Id }));
            }
            catch
            {
                return(View());
            }
        }
예제 #4
0
        public ActionResult DeleteConfirmed(int id)
        {
            BookClub bookClub = db.BookClubs.Find(id);

            db.BookClubs.Remove(bookClub);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
예제 #5
0
 public ActionResult Edit([Bind(Include = "BookClubID,BookClubName,AdminEmail,Profile,Status,Province,County,Area,LibraryName,NextMeeting,CurrentRead")] BookClub bookClub)
 {
     if (ModelState.IsValid)
     {
         db.Entry(bookClub).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(bookClub));
 }
예제 #6
0
 public ActionResult Edit([Bind(Include = "Id,Name,AccessCode,Description")] BookClub bookClub)
 {
     if (ModelState.IsValid)
     {
         db.Entry(bookClub).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(bookClub));
 }
예제 #7
0
        public ActionResult Create([Bind(Include = "Id,Name,AccessCode,Description")] BookClub bookClub)
        {
            if (ModelState.IsValid)
            {
                db.BookClubs.Add(bookClub);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(bookClub));
        }
예제 #8
0
        //private methods
        private async Task NotifyMembers(Discussion discussion)
        {
            BookClub           club        = db.BookClubs.Find(discussion.ClubId);
            List <ClubMembers> clubMembers = db.ClubMembers.Include("Member").Where(cm => cm.ClubId == club.Id).ToList();

            discussion.Book = db.BookDiscussions.Include("Book").FirstOrDefault(bd => bd.DiscussionId == discussion.Id).Book;
            foreach (ClubMembers cm in clubMembers)
            {
                await BookSiteEmailService.SendEmail(BuildEmailModel(cm.Member, discussion));
            }
        }
예제 #9
0
 public ActionResult Edit([Bind(Include = "BookClubID,BookClubName,AdminEmail,Profile,Status,Province,County,Area,LibraryID,NextMeeting,CurrentRead")] BookClub bookClub)
 {
     if (ModelState.IsValid)
     {
         db.MarkAsModified(bookClub);
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.LibraryID = new SelectList(db.Libraries, "LibraryID", "LibraryName", bookClub.LibraryID);
     return(View(bookClub));
 }
예제 #10
0
        //Private Methods
        private ClubIndexViewModel GetClubIndexViewModel(BookClub club)
        {
            ClubIndexViewModel viewModel = new ClubIndexViewModel {
                Club = club, Discussions = new List <Discussion>(), Members = new List <Member>()
            };

            AddMembersToClubIndexViewModel(viewModel);
            AddDiscussionsToClubIndexViewModel(viewModel);
            AddBooksToClubIndexViewModel(viewModel);
            return(viewModel);
        }
예제 #11
0
        public ActionResult Create([Bind(Include = "BookClubName,AdminEmail,Profile,Status,Province,County,Area,LibraryName,NextMeeting,CurrentRead,")] BookClub bookClub)
        {
            if (ModelState.IsValid)
            {
                db.BookClubs.Add(bookClub);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(bookClub));
        }
예제 #12
0
        private List <BookClub> GetBookClubs(Member member)
        {
            List <BookClub>    clubs       = new List <BookClub>();
            List <ClubMembers> clubMembers = db.ClubMembers.Where(cm => cm.MemberId == member.Id).ToList();

            foreach (ClubMembers cm in clubMembers)
            {
                BookClub club = db.BookClubs.Include("NextBook").FirstOrDefault(c => c.Id == cm.ClubId);
                clubs.Add(club);
            }
            return(clubs);
        }
예제 #13
0
        // GET: BookClub/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            BookClub bookClub = db.BookClubs.Find(id);

            if (bookClub == null)
            {
                return(HttpNotFound());
            }
            return(View(bookClub));
        }
예제 #14
0
		public WishList Identify(WishList wishList, BookClub bookClub)
		{
			foreach (var bookClubBook in bookClub.Books)
			{
				foreach (var wishListBook in wishList.Books)
				{
					if (wishListBook.Book.IsSameTitleAndAuthor(bookClubBook))
					{
						wishListBook.IsBookClubSelection = true;
					}
				}
			}

			return wishList;
		}
예제 #15
0
        // GET: BookList/Create
        public ActionResult Create(int?id)      //bookclubid
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            BookClub bookClub = db.BookClubs.Find(id);

            if (bookClub == null)
            {
                return(HttpNotFound());
            }
            ViewBag.BookClubID = bookClub.BookClubID;
            return(View());
        }
예제 #16
0
        public WishList Identify(WishList wishList, BookClub bookClub)
        {
            foreach (var bookClubBook in bookClub.Books)
            {
                foreach (var wishListBook in wishList.Books)
                {
                    if (wishListBook.Book.IsSameTitleAndAuthor(bookClubBook))
                    {
                        wishListBook.IsBookClubSelection = true;
                    }
                }
            }

            return(wishList);
        }
예제 #17
0
        // GET: BookClub/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            BookClub bookClub = db.BookClubs.Find(id);

            if (bookClub == null)
            {
                return(HttpNotFound());
            }
            ViewBag.LibraryID = new SelectList(db.Libraries, "LibraryID", "LibraryName", bookClub.LibraryID);
            return(View(bookClub));
        }
예제 #18
0
        public void Setup()
        {
            _wishList = new WishList();
            _bookClub = new BookClub();

            _bookOne = new Book
            {
                Title  = "someTitle",
                Author = "someAuthor"
            };
            _bookTwo = new Book
            {
                Title  = "anotherTitle",
                Author = "anotherAuthor"
            };
        }
예제 #19
0
		public void Setup()
		{
			_wishList = new WishList();
			_bookClub = new BookClub();

			_bookOne = new Book
			{
				Title = "someTitle",
				Author = "someAuthor"
			};
			_bookTwo = new Book
			{
				Title = "anotherTitle",
				Author = "anotherAuthor"
			};
		}
예제 #20
0
        public bool CreateBookClub(BookClubCreate model)
        {
            var entity =
                new BookClub()
            {
                Name        = model.Name,
                OwnerId     = _userId,
                Description = model.Description,
                CreatedUtc  = DateTimeOffset.Now
            };

            using (var ctx = new ApplicationDbContext())
            {
                ctx.BookClubs.Add(entity);
                return(ctx.SaveChanges() == 1);
            }
        }
예제 #21
0
        public ActionResult ProcessClubCode(string accessCode)
        {
            BookClub bookClub = null;;

            if (accessCode == null)
            {
                return(RedirectToAction("Index", "Home", new { errorMessage = "Invalid Access Code" }));
            }
            else
            {
                bookClub = db.BookClubs.SingleOrDefault(b => b.AccessCode == accessCode);
                if (bookClub == null)
                {
                    return(RedirectToAction("Index", "Home", new { errorMessage = "Invalid Access Code" }));
                }
            }
            return(RedirectToAction("Details", new { Id = bookClub.Id }));
        }
예제 #22
0
 public ActionResult Create(NewDiscussionViewModel viewModel)
 {
     try
     {
         DateTime Start = new DateTime
                          (
             viewModel.Date.Year,
             viewModel.Date.Month,
             viewModel.Date.Day,
             viewModel.StartTime.Hour,
             viewModel.StartTime.Minute,
             0
                          );
         if ((Start - DateTime.Now).Ticks < 0)
         {
             return(View(viewModel));
         }
         Book       book       = db.Books.Find(viewModel.Book.Id);
         Discussion discussion = new Discussion
         {
             Id        = Guid.NewGuid(),
             ClubId    = viewModel.ClubId,
             Name      = viewModel.Name,
             StartTime = Start,
             Date      = Start.Date
         };
         BookDiscussions bookDiscussions = new BookDiscussions
         {
             Id         = Guid.NewGuid(),
             Book       = book,
             Discussion = discussion
         };
         db.Discussions.Add(discussion);
         db.BookDiscussions.Add(bookDiscussions);
         BookClub club = db.BookClubs.Find(viewModel.ClubId);
         club.NextBook = book;
         db.SaveChanges();
         return(RedirectToAction("Index", "Club", new { id = viewModel.ClubId }));
     }
     catch
     {
         return(View(viewModel));
     }
 }
예제 #23
0
        public ActionResult Join(BookClub club)
        {
            var userId = User.Identity.GetUserId();

            if (userId == null)
            {
                return(RedirectToAction("Login", "Account"));
            }
            Member member = db.Members.FirstOrDefault(m => m.ApplicationUserId == userId);

            club = db.BookClubs.Find(club.Id);
            if (db.ClubMembers.FirstOrDefault(cm => cm.MemberId == member.Id && cm.ClubId == club.Id) == null)
            {
                db.ClubMembers.Add(new ClubMembers {
                    Id = Guid.NewGuid(), Club = club, Member = member
                });
                db.SaveChanges();
            }
            return(RedirectToAction("Index", new { id = club.Id }));
        }