private ActionResult IndexByGuid(Guid id) { FriendRatingInvitation invitation = friendRatingInvitationRepository.GetByKey(id.ToString()); invitation.Outfit = closetOutfitViewRepository.GetByClosetOutfitId(invitation.ClosetOutfit.Id); if (invitation.FriendRateOn > invitation.InvitationSentOn || invitation.Rate > 0) { return(View("Thanks", invitation)); } ViewData["Key"] = id; return(View(invitation)); }
private bool IsValidInvitation(FriendRatingInvitation invitation) { if (invitation == null || invitation.User.Id == this.UserId) { return(false); } if (invitation.FriendRateOn > invitation.InvitationSentOn || invitation.Rate > 0) { return(false); } return(true); }
public ActionResult InviteFriends(InviteFriends inviteFriends) { string[] emails = inviteFriends.FriendsEmails.Split(','); RegisteredUser user = GetUser(); ClosetOutfit co = closetOutfitRepository.Get(Convert.ToInt32(inviteFriends.OutfitId)); SmtpMailing mail = new SmtpMailing(); foreach (string email in emails) { string subject = user.FullName + " want that you rate her outfit"; string body = ""; foreach (Garment garment in co.Components) { body += "<img src='" + inviteFriends.SiteURL + "/" + Resources.GetGarmentPath(garment) + "' alt='" + garment.Title + "' /> "; } string key = Guid.NewGuid().ToString(); body += "<br /><br />Rate it NOW <a href='" + inviteFriends.SiteURL + "/rating/index/" + key + "/default.aspx' style='color: #F38333;' >here</a>!"; FriendRatingInvitation invitation = new FriendRatingInvitation(); invitation.FriendEmail = email; invitation.InvitationSentOn = DateTime.Now; invitation.FriendRateOn = invitation.InvitationSentOn; invitation.KeyCode = key; invitation.Message = inviteFriends.Message; invitation.User = user; invitation.ClosetOutfit = co; friendRatingInvitationRepository.SaveOrUpdate(invitation); mail.SendMail(email, "Rate my outfit", subject, body, false); } if (inviteFriends.SendMe) { string subject = user.FullName + " want that you rate her outfit"; string body = ""; foreach (Garment garment in co.Components) { body += "<img src='" + inviteFriends.SiteURL + "/" + Resources.GetGarmentPath(garment) + "' alt='" + garment.Title + "' /> "; } body += "<br /><br />Rate it NOW <span style='color: #F38333;' >here</span>! <span style='font-size=10px;'>(only your friends get the rating link)</span>"; mail.SendMail(user.EmailAddress, "Rate my outfit", subject, body, false); } return(Json(new { Success = true })); }
public ActionResult VoteFromInvitation(Guid id) { FriendRatingInvitation invitation = friendRatingInvitationRepository.GetByKey(id.ToString()); #if !DEBUG if (!IsValidInvitation(invitation)) { return(RedirectToAction("Index", "Home")); } #endif ClosetOutfitView cv = closetOutfitRepository.GetByClosetOutfitId(invitation.ClosetOutfit.Id); FriendRatingView viewData = LoadViewData(new FriendRatingView(), cv, 0); return(View("Vote", viewData)); }
public virtual void Rate(float ratingValue, FriendRatingInvitation f) { FriendRating rating = new FriendRating(); rating.RatingValue = f.Rate; rating.RequestedOn = f.InvitationSentOn; rating.ClosetOutfit = f.ClosetOutfit; rating.Observations = f.Message; this.friendRatings.Add(rating); float average = 0; foreach (FriendRating r in this.friendRatings) { average += (float)r.RatingValue; } average = average / this.friendRatings.Count; this.FriendRatingAverage = average; }
private ActionResult IndexByInt(int id) { FriendRatingInvitation invitation = new FriendRatingInvitation(); invitation.FriendEmail = "Generated by FaceBook"; invitation.InvitationSentOn = DateTime.Now; invitation.FriendRateOn = invitation.InvitationSentOn; invitation.KeyCode = Guid.NewGuid().ToString(); invitation.Message = "Generated by FaceBook"; invitation.ClosetOutfit = closetOutfitRepository.Get(id); invitation.User = invitation.ClosetOutfit.Closet.User; friendRatingInvitationRepository.SaveOrUpdate(invitation); invitation.Outfit = closetOutfitViewRepository.GetByClosetOutfitId(id); ViewData["Key"] = invitation.KeyCode; return(View(invitation)); }
public ActionResult Index(int friendsrating, string Comments, Guid Key) { FriendRatingInvitation invitation = friendRatingInvitationRepository.GetByKey(Key.ToString()); invitation.Rate = friendsrating; invitation.FriendRateOn = DateTime.Now; invitation.Message = ""; if (!string.IsNullOrEmpty(Comments)) { invitation.Message = Comments; } ClosetOutfit closetOutfit = invitation.ClosetOutfit; if (closetOutfit.Rating == null) { closetOutfit.Rating = new Rating(); } closetOutfit.Rating.Rate(friendsrating, invitation); friendRatingInvitationRepository.SaveOrUpdate(invitation); closetOutfitRepository.SaveOrUpdate(closetOutfit); return(View("Thanks", invitation)); }
public JsonResult InviteFriends(InviteFriends inviteFriends) { string[] contacts = inviteFriends.FriendsEmails.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); RegisteredUser user = registeredUserRepository.Get(this.UserId); ClosetOutfit co = closetOutfitRepository.Get(Convert.ToInt32(inviteFriends.OutfitId)); foreach (string contact in contacts) { if (string.IsNullOrEmpty(contact) || contact == " ") { continue; } string email = contact; if (contact.IndexOf("[") != -1 && contact.IndexOf("]") != -1) { email = contact.Split('[')[1].Split(']')[0]; } string key = Guid.NewGuid().ToString(); List <Garment> lst = new List <Garment>(); foreach (Garment garment in co.Components) { if (garment.Id != 0) { lst.Add(garment); } } EmailData data = new EmailData { Components = lst, KeyCode = key, Comments = HttpUtility.HtmlEncode(inviteFriends.Message), InvitationLink = "/Outfit/Rating/VoteFromInvitation/" + key + "/default.aspx", GarmentsUri = Resources.GetGarmentLargePath(), OutfitUpdater = outfitUpdaterRepository.GetRandomOutfitUpdaterFor(co.PreCombination) }; if (data.OutfitUpdater == null) { data.OutfitUpdater = new OutfitUpdater(); data.OutfitUpdater.BuyUrl = string.Empty; data.OutfitUpdater.ImageUrl = string.Empty; data.OutfitUpdater.Name = string.Empty; data.OutfitUpdater.Partner = new Partner(string.Empty, string.Empty); } data.OutfitUpdaterPrice = Convert.ToDecimal(data.OutfitUpdater.Price).ToString("$#,##0.00"); messageSenderService.SendWithTemplate("invite2rate", user, data, email); FriendRatingInvitation invitation = new FriendRatingInvitation(); invitation.FriendEmail = email; invitation.InvitationSentOn = DateTime.Now; invitation.FriendRateOn = invitation.InvitationSentOn; invitation.KeyCode = key; invitation.Message = inviteFriends.Message; invitation.User = user; invitation.ClosetOutfit = co; friendRatingInvitationRepository.DbContext.BeginTransaction(); friendRatingInvitationRepository.SaveOrUpdate(invitation); friendRatingInvitationRepository.DbContext.CommitTransaction(); } if (inviteFriends.SendMe) { EmailCopyData data = new EmailCopyData { Components = co.Components, Comments = HttpUtility.HtmlEncode(inviteFriends.Message), GarmentsUri = Resources.GetGarmentLargePath(), OutfitUpdater = outfitUpdaterRepository.GetRandomOutfitUpdaterFor(co.PreCombination) }; data.OutfitUpdaterPrice = Convert.ToDecimal(data.OutfitUpdater.Price).ToString("$#,##0.00"); messageSenderService.SendWithTemplate("copyinvite2rate", user, data, user.EmailAddress); } TrackingHelper.Save("MyOutfitsController", "InviteFriends", Guid.NewGuid().ToString(), "noIp", UserId.ToString(), "noChannel", null, string.Empty); return(Json(new { Success = true })); }
public ActionResult Vote(FriendRatingView view) { if (ModelState.IsValid) { FriendRatingInvitation invitation; // Check if this is a new invitation from an anonymous user if (view.InvitationId == 0) { invitation = new FriendRatingInvitation(); invitation.ClosetOutfit = closetOutfitRepository.Get(view.ClosetOutfitId); invitation.User = invitation.ClosetOutfit.Closet.User; invitation.FriendEmail = "Generated by FaceBook"; invitation.KeyCode = string.Empty; invitation.InvitationSentOn = DateTime.Today; } else { invitation = friendRatingInvitationRepository.Get(view.InvitationId); if (!IsValidInvitation(invitation)) { return(RedirectToAction("Index", "Home")); } } invitation.Rate = view.FriendRating; invitation.FriendRateOn = DateTime.Now; invitation.Message = ""; if (!string.IsNullOrEmpty(view.Comment)) { //invitation.Message = HttpUtility.HtmlEncode(view.Comment); invitation.Message = view.Comment; } ClosetOutfit closetOutfit = closetOutfitRepository.Get(view.ClosetOutfitId); closetOutfit.Rating.Rate(view.FriendRating, invitation); closetOutfitRepository.SaveOrUpdate(closetOutfit); using (SearchEngineService ses = SearchEngineService.GetByCloset(ClosetId)) ses.AddEntry(closetOutfit.ToSearchEngineEntry()); friendRatingInvitationRepository.SaveOrUpdate(invitation); ConfirmRatingData data = new ConfirmRatingData { Components = closetOutfit.Components, Comments = HttpUtility.HtmlEncode(view.Comment), GarmentsUri = Resources.GetGarmentLargePath(), RatingImg = Resources.GetRatingLargePath() + view.FriendRating + ".jpg", RatingText = Resources.GetRatingText(view.FriendRating) }; messageSenderService.SendWithTemplate("confirmrating", invitation.User, data, invitation.User.EmailAddress); return(RedirectToAction("Thanks")); } ClosetOutfitView cv = closetOutfitRepository.GetByClosetOutfitId(view.ClosetOutfitId); view = LoadViewData(view, cv, 0); return(View(view)); }
public ActionResult Thanks(FriendRatingInvitation invitation) { return(View(invitation)); }