/// <summary> /// This method will send a cancellation mail to both players in a confirmed match /// </summary> /// <param name="offer"></param> private void SendMatchCancellation(Offer offer) { var fbContext = FacebookWebContext.Current; var tennisUsers = ModelUtils.GetTennisUsers(this.DB); TennisUserModel tennisUser1 = tennisUsers.Where(u => u.FacebookId == offer.FacebookId).FirstOrDefault(); TennisUserModel tennisUser2 = tennisUsers.Where(u => u.FacebookId == offer.AcceptedById).FirstOrDefault(); string location = OfferModel.GetLocationLink(LocationModel.Create(offer)); Dictionary <string, string> tokens = new Dictionary <string, string>(); tokens.Add("FacebookId1", tennisUser1.FacebookId.ToString()); tokens.Add("Rating1", IndexModel.FormatRating(tennisUser1.Rating)); tokens.Add("Name1", tennisUser1.Name.ToString()); tokens.Add("FacebookId2", tennisUser2.FacebookId.ToString()); tokens.Add("Rating2", IndexModel.FormatRating(tennisUser2.Rating)); tokens.Add("Name2", tennisUser2.Name.ToString()); tokens.Add("Date", IndexModel.FormatLongDate(offer.MatchDateUtc, tennisUser1.TimeZoneOffset)); tokens.Add("Location", location); tokens.Add("Comments", offer.Message); tokens.Add("OfferId", offer.OfferId.ToString()); string subject = string.Format("TennisLoop: Match Cancelled"); string template = Server.MapPath("/content/matchcancelled.htm"); SendMessage(new long[] { tennisUser1.FacebookId, tennisUser2.FacebookId }, subject, template, tokens); }
private static bool SendMessage(IEnumerable <long> pushIds, string subject, string templatePath, Offer offer, TennisUserModel tennisUser) { string location = OfferModel.GetLocationLink(LocationModel.Create(offer)); Dictionary <string, string> tokens = new Dictionary <string, string>(); tokens.Add("FacebookId", tennisUser.FacebookId.ToString()); tokens.Add("Rating", IndexModel.FormatRating(tennisUser.Rating)); tokens.Add("Date", IndexModel.FormatLongDate(offer.MatchDateUtc, tennisUser.TimeZoneOffset).Replace(",", " @ ")); tokens.Add("Name", tennisUser.Name.ToString()); tokens.Add("Location", location); tokens.Add("Comments", offer.Message); tokens.Add("OfferId", offer.OfferId.ToString()); return(SendMessage(pushIds, subject, templatePath, tokens)); }
public ActionResult SendMessage(long userId, string comments) { var fbContext = FacebookWebContext.Current; TennisUserModel tennisUser = ModelUtils.GetTennisUsers(this.DB).Where(u => u.FacebookId == fbContext.UserId).FirstOrDefault(); TennisUserModel sendToUser = ModelUtils.GetTennisUsers(this.DB).Where(u => u.FacebookId == userId).FirstOrDefault(); if (null != tennisUser && null != sendToUser) { string template = Server.MapPath("/content/usermessage.htm"); Dictionary <string, string> tokens = new Dictionary <string, string>(); tokens.Add("From.Id", tennisUser.FacebookId.ToString()); tokens.Add("From.Rating", IndexModel.FormatRating(tennisUser.Rating)); tokens.Add("Message", comments); SendMessage(new long[] { userId }, string.Format("TennisLoop: Message from <fb:name uid='{0}' capitalize='true'></fb:name>", tennisUser.FacebookId), template, tokens); } return(Json("")); }