示例#1
0
        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));
        }
示例#2
0
        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);
        }
示例#3
0
        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 }));
        }
示例#4
0
        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));
        }
示例#5
0
        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;
        }
示例#6
0
        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));
        }
示例#7
0
        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));
        }
示例#8
0
        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 }));
        }
示例#9
0
        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));
        }
示例#10
0
 public ActionResult Thanks(FriendRatingInvitation invitation)
 {
     return(View(invitation));
 }