Ejemplo n.º 1
0
        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.";
        }
Ejemplo n.º 2
0
        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' }";
        }