예제 #1
0
        public void sendMessage(int userId, MessageSendModel model, string keyDialog)
        {
            var db        = new MyDBModels.DB();
            var user      = db.user.Where(u => u.UserId == userId).First();
            var profileId = user.ProfileId;

            var currentCommunication = db.communication.Where(c => c.KeyDialog == keyDialog).First();

            MyDBModels.Message messsage = new MyDBModels.Message();
            messsage.DataMessage     = model.DataMessage;
            messsage.TimeWritten     = model.TimeWritten;
            messsage.IsReadProfileId = new int[] { profileId };
            messsage.ProfileId       = profileId;
            messsage.TypeMessage     = 1;
            db.message.Add(messsage);
            db.SaveChanges();

            var messageIdArray = currentCommunication.MessageIdArray.ToList();

            messageIdArray.Add(db.message.Where(m => m.ProfileId == profileId && m.TimeWritten == model.TimeWritten).FirstOrDefault().MessageId);//OrderByDescending need?
            currentCommunication.MessageIdArray = messageIdArray.ToArray();

            var dataAccess = new CommunicationDataAccess();

            if (!currentCommunication.IsGroup)
            {
                var friendProfileId = currentCommunication.ParticipantProfileIdArray.Where(p => p != profileId).First();
                dataAccess.searchAndConnectOldCommunication(profileId, friendProfileId);
            }

            db.SaveChanges();
        }
예제 #2
0
        public void confirmFriend(int userId, int confirmProfileId, bool addFriend)
        {
            var db              = new MyDBModels.DB();
            var myUserModel     = db.user.Where(u => u.UserId == userId).First();
            var myProfileModel  = db.profile.Where(p => p.ProfileId == myUserModel.ProfileId).First();
            var friendUserModel = db.user.Where(u => u.ProfileId == confirmProfileId).First();

            var possibleProfileIdArray = myUserModel.FriendPossibleIdArray;

            if (addFriend)
            {
                var friendArrayIdUpdate = myUserModel.FriendIdArray.ToList();
                friendArrayIdUpdate.Add(confirmProfileId);
                myUserModel.FriendIdArray = friendArrayIdUpdate.ToArray();

                var myFirendFriendArrayIdUpdate = friendUserModel.FriendIdArray.ToList();
                myFirendFriendArrayIdUpdate.Add(myUserModel.ProfileId);
                friendUserModel.FriendIdArray = myFirendFriendArrayIdUpdate.ToArray();

                if (friendUserModel.FriendPossibleIdArray.Contains(myUserModel.ProfileId))
                {
                    var firendPossibleArrayIdUpdate = friendUserModel.FriendPossibleIdArray.ToList();
                    firendPossibleArrayIdUpdate.Remove(myUserModel.ProfileId);
                    myUserModel.FriendPossibleIdArray = firendPossibleArrayIdUpdate.ToArray();
                }

                CommunicationDataAccess dataAccess = new CommunicationDataAccess();

                if (!dataAccess.searchAndConnectOldCommunication(myProfileModel.ProfileId, friendUserModel.ProfileId))
                {
                    CommunicationShortModel shortModel = new CommunicationShortModel();
                    var firendProfile = db.profile.Where(fp => fp.ProfileId == friendUserModel.ProfileId).First();

                    shortModel.Name     = String.Format("{0} {1} - {2} {3}", firendProfile.Name, firendProfile.LastName, myProfileModel.Name, myProfileModel.LastName);
                    shortModel.PhotoUrl = firendProfile.PhotoUrl;
                    shortModel.ParticipantProfileIdArray = new int[] { firendProfile.ProfileId, myUserModel.ProfileId };

                    dataAccess.createCommunication(userId, shortModel);

                    db.SaveChanges();
                }
            }

            var possibleArrayIdUpdate = possibleProfileIdArray.ToList();

            possibleArrayIdUpdate.Remove(confirmProfileId);
            myUserModel.FriendPossibleIdArray = possibleArrayIdUpdate.ToArray();

            db.SaveChanges();
        }