public ActionResult SuggestToRecipient(Suggestion s) { GifterEntities entities = new GifterEntities(); Gift gift = entities.Gifts.Where(model => model.ageFrom < s.age && model.ageTo > s.age && model.occasion.Contains(s.occasion) && model.relationship.Contains(s.relationship) && model.relationshipLengthFrom < s.relationshipLength && model.relationshipLengthTo > s.relationshipLength).FirstOrDefault(); if (gift == null) { return View(s); } else { s.idGift = gift.id; if (Session["LogedUserID"] != null) { s.idUser = Convert.ToInt32(Session["LogedUserID"]); } if (s.idRecipient == null) { return RedirectToAction("Index"); } s.timeStamp = DateTime.Now; entities.Suggestions.Add(s); entities.SaveChanges(); return RedirectToAction("AfterSuggest", s); } }
public ActionResult AddFeedback(Suggestion s) { if (Session["LogedUserID"] != null) { GifterEntities entities = new GifterEntities(); Suggestion oldSugg = entities.Suggestions.Where(model => model.id.Equals(s.id)).FirstOrDefault(); oldSugg.rating = s.rating; entities.SaveChanges(); ModelState.Clear(); return RedirectToAction("MySuggestions"); } else { return RedirectToAction("Index"); } }
public ActionResult Suggest(Suggestion s) { GifterEntities entities = new GifterEntities(); Gift gift = entities.Gifts.Where(model => model.ageFrom < s.age && model.ageTo > s.age && model.occasion.Contains(s.occasion) && model.relationship.Contains(s.relationship) && model.relationshipLengthFrom < s.relationshipLength && model.relationshipLengthTo > s.relationshipLength).FirstOrDefault(); List<Gift> possibleGifts = GetPossibleGifts(s); if (possibleGifts == null) { return AfterSuggest(s); } else { List<Suggestion> similarSuggestions = GetSimilarSuggestions(s); List<Gift> highestRatingGifts = GetGiftstWithHighestRating(similarSuggestions); possibleGifts = RemoveGiftsWithRatingLowerThenFive(similarSuggestions, possibleGifts); s.idGift = gift.id; if (Session["LogedUserID"] != null) { s.idUser = Convert.ToInt32(Session["LogedUserID"]); } entities.Suggestions.Add(s); try { entities.SaveChanges(); } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; } return RedirectToAction("AfterSuggest", s); } }