private void deleteMessageForUser(long mid) { aqufitEntities entities = new aqufitEntities(); MessageRecipiant mr = entities.MessageRecipiants.Where(m => m.Message.Id == mid && m.UserSettingsKey == this.UserSettings.Id).First(); entities.DeleteObject(mr); entities.SaveChanges(); litStatus.Text = "Message has been deleted."; }
public string SendMessage(long usid, long[] toArray, string subject, string txt) { aqufitEntities entities = new aqufitEntities(); if (string.IsNullOrEmpty(subject)) { subject = "(No Subject)"; } subject = Utils.Web.WebUtils.MakeWebSafeString(subject); txt = Utils.Web.WebUtils.MakeWebSafeString(txt); string shortTxt = Utils.Web.WebUtils.MakeWebSafeString( txt.Length > 128 ? txt.Substring(0, 128) + "..." : txt ); DateTime dt = DateTime.Now.ToUniversalTime(); UserSettings settings = entities.UserSettings.FirstOrDefault(us => us.Id == usid); Message message = new Message() { UserSetting = settings, PortalKey = settings.PortalKey, Status = 0, // TODO: make nice message status ( 0 = unread ) DateTime = dt, ParentKey = 0, // This is not a reply so set parent to 0 Subject = subject, Text = txt, LastText = shortTxt, LastDateTime = dt, LastUserKey = settings.Id, LastUserName = settings.UserName, SecondDateTime = dt, SecondText = shortTxt, SecondUserKey = settings.Id, SecondUserName = settings.UserName }; MessageRecipiant recipiant2 = new MessageRecipiant() { UserSettingsKey = settings.Id, Message = message }; message.MessageRecipiants.Add(recipiant2); entities.AddToMessages(message); IList<UserFriends> friendList = new List<UserFriends>(); UserSettings you = settings; foreach (long tid in toArray) { // First thing we want to do here is to varify that the people are really friends UserFriends friend = entities.UserFriends.FirstOrDefault(f => ((f.SrcUserSettingKey == you.Id && f.DestUserSettingKey == tid) || (f.SrcUserSettingKey == tid && f.DestUserSettingKey == you.Id)) && f.Relationship == (int)Affine.Utils.ConstsUtil.Relationships.FRIEND ); if (friend != null) { friendList.Add(friend); long toId = settings.Id == friend.DestUserSettingKey ? friend.SrcUserSettingKey : friend.DestUserSettingKey; MessageRecipiant recipiant = new MessageRecipiant() { UserSettingsKey = toId, Message = message }; message.MessageRecipiants.Add(recipiant); // create a notification Publish setting 3 so does not show in stream... User toUser = entities.UserSettings.OfType<User>().FirstOrDefault(us => us.Id == toId); Notification workoutNotification = new Notification() { PortalKey = toUser.PortalKey, UserSetting = toUser, Date = DateTime.Now.ToUniversalTime(), Title = settings.UserName +" has sent you a message.", Description = settings.UserName +" ("+ settings.UserFirstName + " " + settings.UserLastName + ") has sent you a message.", TimeStamp = DateTime.Now.ToUniversalTime(), NotificationType = (int)Affine.Utils.ConstsUtil.NotificationTypes.NEW_MESSAGE, PublishSettings = (int) Affine.Utils.ConstsUtil.PublishSettings.NO_STREAM, Message = message }; entities.AddToUserStreamSet(workoutNotification); } } entities.SaveChanges(); sendEmailAsync(message); return "{ 'status':'success' }"; }