public ActionResult RateUser(int?id, ShowsViewModel model) { User_Show show = db.User_Show.Where(s => s.ShowID == id).FirstOrDefault(); ShowsViewModel viewModel = new ShowsViewModel(show); // Converting string into int int numStars = getRating(model.RatingValue); string comment = model.Comment; Models.Rating userRating = new Models.Rating(); if (User.IsInRole("VenueOwner")) { User user = db.Users.Where(u => u.ID == viewModel.MusicianID).FirstOrDefault(); userRating.UserID = viewModel.MusicianID; userRating.Value = numStars; userRating.Comment = comment; show.VenueRated = true; user.AveRating = CalcAveRating(user.ID, numStars); } else if (User.IsInRole("Musician")) { User user = db.Users.Where(u => u.ID == viewModel.VenueID).FirstOrDefault(); userRating.UserID = viewModel.VenueID; userRating.Value = numStars; userRating.Comment = comment; show.MusicianRated = true; user.AveRating = CalcAveRating(user.ID, numStars); } db.Ratings.Add(userRating); db.SaveChanges(); return(RedirectToAction("MyShows")); }
public ActionResult RateUser(int?id) { User_Show show = db.User_Show.Where(s => s.ShowID == id).FirstOrDefault(); ShowsViewModel viewModel = new ShowsViewModel(show); return(View(viewModel)); }
// GET: Shows/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Show show = db.Shows.Find(id); if (show == null) { return(HttpNotFound()); } User_Show user_Show = db.User_Show.Where(u => u.ShowID == id).First(); ShowsViewModel viewModel = new ShowsViewModel(user_Show); viewModel.VenueList = new SelectList(db.Venues.Where(s => s.UserID == show.Venue.UserID), "ID", "VenueName"); return(View(viewModel)); }
public async Task <ActionResult> CreateShow(int?id, MusicianDetailViewModel viewModel) { // No user id passed through if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } User user = db.Users.Find(id); // If users doesn't exisit if (user == null) { return(HttpNotFound()); } // Viewmodel for Musician MusicianDetailViewModel model = new MusicianDetailViewModel(user); var IdentityID = User.Identity.GetUserId(); model.VenueList = new SelectList(db.Venues.Where(v => v.User.ASPNetIdentityID == IdentityID), "ID", "VenueName"); if (ModelState.IsValid) { // Get user's calendar credentials UserCredential credential = await GetCredentialForApiAsync(); // Create Google Calendar API service. var service = new CalendarService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = "Harmony", }); // Fetch the list of calendars. var calendars = await service.CalendarList.List().ExecuteAsync(); // create a new event to google calendar if (calendars != null) { Event newEvent = new Event() { Id = Guid.NewGuid().ToString().Replace('-', '0'), Summary = viewModel.Title, Description = viewModel.ShowDescription, Location = db.Venues.Find(viewModel.VenueID).VenueName, Start = new EventDateTime() { DateTime = viewModel.StartDateTime.AddHours(7.0), TimeZone = "America/Los_Angeles" }, End = new EventDateTime() { DateTime = viewModel.EndDateTime.AddHours(7.0), TimeZone = "America/Los_Angeles" }, Attendees = new List <EventAttendee>() { new EventAttendee() { Email = model.Email } }, GuestsCanModify = true }; var newEventRequest = service.Events.Insert(newEvent, "primary"); // This allows attendees to get email notification newEventRequest.SendNotifications = true; var eventResult = newEventRequest.Execute(); // add the new show to db Show newShow = new Show { Title = viewModel.Title, StartDateTime = viewModel.StartDateTime, EndDateTime = viewModel.EndDateTime, Description = viewModel.ShowDescription, DateBooked = newEvent.Created ?? DateTime.Now, VenueID = viewModel.VenueID, Status = "Pending", GoogleEventID = newEvent.Id, ShowOwnerID = db.Users.Where(u => u.ASPNetIdentityID == IdentityID).First().ID }; db.Shows.Add(newShow); User_Show user_Show = new User_Show { MusicianID = model.ID, VenueOwnerID = db.Users.Where(u => u.ASPNetIdentityID == IdentityID).First().ID, ShowID = newShow.ID, MusicianRated = false, VenueRated = false }; db.User_Show.Add(user_Show); db.SaveChanges(); } return(RedirectToAction("MusicianDetails", new { id = model.ID })); } return(View(model)); }