Пример #1
0
		public async Task<IHttpActionResult> StoreRatings([FromBody]IEnumerable<SessionRatingDto> ratings)
		{
			using (var context = new ConferenceContext())
			{
				foreach (var rating in ratings.Where(r => r.Rating > 0))
				{
					var existingRating = await context.Ratings.Include("Ticket").Include("Session").FirstOrDefaultAsync(
						rate => rate.Ticket.TicketId == rating.TicketId && rate.Session.SessionId == rating.SessionId);
					if (existingRating == null)
					{
						var ticket = await context.Tickets.FirstOrDefaultAsync(t => t.TicketId == rating.TicketId);
						var session = await context.Sessions.FirstOrDefaultAsync(s => s.SessionId == rating.SessionId);

						var newRating = new SessionRating() { Ticket = ticket, Session = session, Rating = rating.Rating };
						context.Ratings.Add(newRating);
					}
					else
					{
						existingRating.Rating = rating.Rating;
						context.Entry(existingRating).State = EntityState.Modified;
					}

					await context.SaveChangesAsync();
				}
			}

			return this.Ok();
		}
Пример #2
0
        public async Task <IHttpActionResult> StoreRatings([FromBody] IEnumerable <SessionRatingDto> ratings)
        {
            using (var context = new ConferenceContext())
            {
                foreach (var rating in ratings.Where(r => r.Rating > 0))
                {
                    var existingRating = await context.Ratings.Include("Ticket").Include("Session").FirstOrDefaultAsync(
                        rate => rate.Ticket.TicketId == rating.TicketId && rate.Session.SessionId == rating.SessionId);

                    if (existingRating == null)
                    {
                        var ticket = await context.Tickets.FirstOrDefaultAsync(t => t.TicketId == rating.TicketId);

                        var session = await context.Sessions.FirstOrDefaultAsync(s => s.SessionId == rating.SessionId);

                        var newRating = new SessionRating()
                        {
                            Ticket = ticket, Session = session, Rating = rating.Rating
                        };
                        context.Ratings.Add(newRating);
                    }
                    else
                    {
                        existingRating.Rating = rating.Rating;
                        context.Entry(existingRating).State = EntityState.Modified;
                    }

                    await context.SaveChangesAsync();
                }
            }

            return(this.Ok());
        }