コード例 #1
0
    protected void Button1_Click(object sender, EventArgs e)
    {
        try
        {
            dbcon.AppointmentTables.Load();
            dbcon.MessageTables.Load();
            int id   = Convert.ToInt32(GridView1.SelectedDataKey.Value);
            var appt = dbcon.AppointmentTables.Single(a => a.AppointmentId == id);
            var x    = from y in dbcon.AppointmentTables.Local
                       where y.DoctorUserName.Equals(appt.DoctorUserName) &&
                       y.DateAndTime.ToString().Equals(appt.DateAndTime.ToString()) &&
                       y.Confirmed == true
                       select y;
            if (x.ToList().Count == 0)
            {
                appt.Confirmed = true;

                //Send a message to patient
                MessageTable msg = new MessageTable();
                msg.MessageSubject = "Appointment Confirmed";
                msg.MessageBody    = "Your appointment with " + appt.DoctorUserName + " at " + appt.DateAndTime
                                     + "has been confirmed.";
                msg.Date         = DateTime.Now;
                msg.UserNameTo   = appt.PatientUserName;
                msg.UserNameFrom = appt.DoctorUserName;
                dbcon.MessageTables.Add(msg);

                dbcon.SaveChanges();
                LoadReqAppt();
                LoadConfirmedAppt();
                Response.Write("<script type=\"text/javascript\">alert" +
                               "('Appointment Confirmed!');</script>");
            }
            else
            {
                Response.Write("<script type=\"text/javascript\">alert" +
                               "('You have a previously scheduled appointment at this time');</script>");
            }
        }

        catch (NullReferenceException)
        {
        }
    }
コード例 #2
0
        void ReleaseDesignerOutlets()
        {
            if (BackButton != null)
            {
                BackButton.Dispose();
                BackButton = null;
            }

            if (Label != null)
            {
                Label.Dispose();
                Label = null;
            }

            if (LabelLastUpdate != null)
            {
                LabelLastUpdate.Dispose();
                LabelLastUpdate = null;
            }

            if (MessageTable != null)
            {
                MessageTable.Dispose();
                MessageTable = null;
            }

            if (NoItemsLabel1 != null)
            {
                NoItemsLabel1.Dispose();
                NoItemsLabel1 = null;
            }

            if (NoItemsLabel2 != null)
            {
                NoItemsLabel2.Dispose();
                NoItemsLabel2 = null;
            }

            if (NoItemsView != null)
            {
                NoItemsView.Dispose();
                NoItemsView = null;
            }
        }
コード例 #3
0
        // TODO: Base class voor table scrolls
        protected override void OnKeyboardChanged(bool visible, nfloat keyboardHeight)
        {
            View.SetNeedsUpdateConstraints();

            var contentOffset = MessageTable.ContentOffset;

            var keyboardHeightChange = visible ? (nfloat)Math.Abs(keyboardHeight - _currentKeyboardHeight) : (nfloat)Math.Abs(_currentKeyboardHeight - 0);

            if (visible)
            {
                InputBoxBottomConstraint.Constant = keyboardHeight + _originalInputBoxConstraint;

                //var contentInsets = new UIEdgeInsets(0.0f, 0.0f, keyboardHeight, 0.0f);

                //MessageTable.ContentInset = contentInsets;
                //MessageTable.ScrollIndicatorInsets = contentInsets;

                contentOffset.Y += keyboardHeightChange;
            }
            else
            {
                InputBoxBottomConstraint.Constant = _originalInputBoxConstraint;

                //MessageTable.ContentInset = UIEdgeInsets.Zero;
                //MessageTable.ScrollIndicatorInsets = UIEdgeInsets.Zero;

                contentOffset.Y -= keyboardHeightChange;
            }

            _currentKeyboardHeight = visible ? keyboardHeight : 0;

            //if (MessageTable.ContentOffset.Y >= MessageTable.ContentSize.Height - MessageTable.Frame.Size.Height)
            //{
            //user has scrolled to the bottom
            //    ScrollToBottom(false);
            //}
            //else
            //{
            MessageTable.SetContentOffset(contentOffset, false);
            //}

            View.LayoutIfNeeded();
        }
コード例 #4
0
        internal IMessage[] GetMessagesByFolder(IFolder folder, MessageListDirection direction)
        {
            lock (_lockObj)
            {
                List <IMessage>      msgs = new List <IMessage>();
                Mailbox.MessageRow[] rows = (Mailbox.MessageRow[])MessageTable.Select("FolderID = " + folder.ID);
                foreach (Mailbox.MessageRow row in rows)
                {
                    msgs.Add(new Message(_client, row.ID));
                }

                if (direction == MessageListDirection.Descending)
                {
                    msgs.Reverse();
                }

                return(msgs.ToArray());
            }
        }
コード例 #5
0
        private List <TreeNode> GenerateNodes(TableFile messageFile)
        {
            List <TreeNode> nodes = new List <TreeNode>();

            for (int i = 0; i < messageFile.Tables.Length; i++)
            {
                MessageTable messageTable = (messageFile.Tables[i] as MessageTable);

                if (messageTable == null)
                {
                    continue;
                }

                TreeNode tableNode = new TreeNode(string.Format("Table #{0}", i))
                {
                    Tag = messageTable
                };
                nodes.Add(tableNode);

                for (int j = 0; j < messageTable.NumMessages; j++)
                {
                    if (messageTable.MessageOffsets[j] == 0)
                    {
                        continue;
                    }

                    int truncatePosition = messageTable.Messages[j].ConvertedString.IndexOf(Environment.NewLine);
                    if (truncatePosition == -1)
                    {
                        truncatePosition = (gameDataManager.Version == GameDataManager.Versions.Japanese ? 12 : 24);
                    }
                    TreeNode messageNode = new TreeNode(messageTable.Messages[j].ConvertedString.Truncate(truncatePosition))
                    {
                        Tag = new Tuple <MessageTable, int>(messageTable, j)
                    };
                    tableNode.Nodes.Add(messageNode);
                }
            }

            return(nodes);
        }
コード例 #6
0
        public static T GetMessage <T> (FunDedicatedServerRpcMessage msg, MessageType msg_type)
        {
            try
            {
                object _msg = null;
                Extensible.TryGetValue(serializer_, MessageTable.GetType(msg_type), msg,
                                       (int)msg_type, DataFormat.Default, true, out _msg);

                FunDebug.Assert(_msg != null, "TryGetValue() failed. Please check the message type.");

                return((T)_msg);
            }
            catch (Exception e)
            {
                Type type = MessageTable.GetType(msg_type);
                FunDebug.LogError("FunapiDSRpcMessage.GetMessage - Failed to decode '{0}' ({1})\n{2}",
                                  type, msg_type, e.ToString());
            }

            return(default(T));
        }
コード例 #7
0
        protected void SendButton_Click(object sender, EventArgs e)
        {
            DoctorTable  currDoc     = GetCurrentUser();
            string       selected    = DropDownList1.SelectedValue;
            PatientTable currPatient = GetPatientFromLastName(selected);

            if (TextBox1.Text.Length < 50)
            {
                //PatientTable currentDoc = /*GetDoctorFromLastName(DropDownList1.SelectedValue.ToString())*/;
                MessageTable msg = new MessageTable();
                msg.Date        = DateTime.Now;
                msg.MessageTo   = currPatient.Email;
                msg.MessageFrom = currDoc.Email;
                msg.Message     = TextBox1.Text;
                //msg.MessageID
                medDB.MessageTables.Add(msg);
                medDB.SaveChanges();
            }
            UpdateDB();
            Server.TransferRequest(Request.Url.AbsolutePath, false);
        }
コード例 #8
0
        UpdateMessageAsync(MessageTable objMessageTable)
        {
            var ExistingMessageTable =
                _context.MessageTable
                .Where(x => x.Text == objMessageTable.Text)
                .FirstOrDefault();

            if (ExistingMessageTable != null)
            {
                ExistingMessageTable.Date =
                    objMessageTable.Date;
                ExistingMessageTable.ThemeId =
                    objMessageTable.ThemeId;
                _context.SaveChanges();
            }
            else
            {
                return(Task.FromResult(false));
            }
            return(Task.FromResult(true));
        }
コード例 #9
0
        public static FunDedicatedServerRpcMessage CreateMessage(object msg, MessageType msg_type)
        {
            if (msg is Enum)
            {
                msg = (Int32)msg;
            }

            try
            {
                FunDedicatedServerRpcMessage _msg = new FunDedicatedServerRpcMessage();
                Extensible.AppendValue(serializer_, _msg, (int)msg_type, DataFormat.Default, msg);
                return(_msg);
            }
            catch (Exception e)
            {
                Type type = MessageTable.GetType(msg_type);
                FunDebug.LogError("FunapiDSRpcMessage.CreateMessage - Failed to create '{0}' ({1})\n{2}",
                                  type, msg_type, e.ToString());
            }

            return(null);
        }
コード例 #10
0
        private async Task LoadMessageText(Message message, MessageTable chatMessage)
        {
            var userIds = new List <int>(message.AddedOccupantsIds);

            // Check if we loaded this users
            var isNeedLoad = false;

            foreach (var userInAddedCollectionId in message.AddedOccupantsIds)
            {
                var user = opponentUsers.FirstOrDefault(u => u.Id == userInAddedCollectionId);
                if (user == null)
                {
                    isNeedLoad = true;
                    break;
                }
            }

            userIds.Add(message.SenderId);

            if (isNeedLoad)
            {
                var users = await App.QbProvider.GetUsersByIdsAsync(string.Join(",", userIds));

                foreach (var user in users)
                {
                    var userInCollection = opponentUsers.FirstOrDefault(u => u.Id == user.Id);
                    if (userInCollection == null)
                    {
                        opponentUsers.Add(user);
                    }
                }
            }

            var addedUsers = opponentUsers.Where(u => userIds.Contains(u.Id) && u.Id != message.SenderId);
            var senderUser = opponentUsers.First(u => userIds.Contains(u.Id) && u.Id == message.SenderId);

            chatMessage.Text = senderUser.FullName + " added users: " +
                               string.Join(",", addedUsers.Select(u => u.FullName));
        }
コード例 #11
0
        public ActionResult AddMessage(int?id, string message)
        {
            if (ModelState.IsValid)
            {
                MessageTable messageTable = new MessageTable
                {
                    UserID  = Convert.ToInt32(User.Identity.GetUserId()),
                    EventID = (int)id,
                    Message = message,
                };

                db.MessageTable.Add(messageTable);
                db.SaveChanges();

                ViewBag.userName = db.UserProfile.FirstOrDefault(u => u.UserID == messageTable.UserID).Name;
            }



            return(PartialView("_ChatView", db.EventTable.Include("MessageTable").FirstOrDefault(e => e.EventID == id)));

            return(PartialView("_ChatView", db.EventTable.Include("MessageTable").FirstOrDefault(e => e.EventID == id)));
        }
コード例 #12
0
        private void SendMessageCommandExecute()
        {
            var message = this.MessageText != null?this.MessageText.Trim() : string.Empty;

            if (!string.IsNullOrEmpty(message))
            {
                var m = new MessageTable();
                m.SenderId          = (int)App.QbProvider.UserId;
                m.Text              = message;
                m.DialogId          = dialogId;
                m.RecepientFullName = "Me";

                long unixTimestamp = DateTime.UtcNow.Ticks - new DateTime(1970, 1, 1).Ticks;
                unixTimestamp /= TimeSpan.TicksPerSecond;
                m.DateSent     = unixTimestamp;
                m.ID           = Database.Instance().SaveMessage(m);

                var dialog = Database.Instance().GetDialog(this.dialogId);
                dialog.LastMessage     = m.Text;
                dialog.LastMessageSent = DateTime.UtcNow;
                Database.Instance().SaveDialog(dialog);

                try
                {
                    var encodedMessage = System.Net.WebUtility.UrlEncode(message);
                    groupChatManager.SendMessage(encodedMessage);
                }
                catch (Exception ex)
                {
                    new MessageDialog("Internet connection is lost. Please check it and restart the Application", "Error").ShowAsync();
                }
                finally
                {
                    MessageText = "";
                }
            }
        }
コード例 #13
0
        public async Task <List <MessageTable> > GetMessagesAsync(string dialogId)
        {
            List <MessageTable> messages = new List <MessageTable> ();
            var retrieveMessagesRequest  = new RetrieveMessagesRequest();
            var aggregator = new FilterAggregator();

            aggregator.Filters.Add(new FieldFilter <string> (() => new Message().ChatDialogId, dialogId));
            aggregator.Filters.Add(new SortFilter <long> (SortOperator.Desc, () => new Message().DateSent));
            retrieveMessagesRequest.Filter = aggregator;

            var responseResult = await client.ChatClient.GetMessagesAsync(retrieveMessagesRequest);

            if (await HandleResponse(responseResult, HttpStatusCode.OK))
            {
                foreach (var message in responseResult.Result.Items)
                {
                    if (!string.IsNullOrWhiteSpace(message.MessageText))
                    {
                        var chatMessage = new MessageTable();
                        chatMessage.Text      = message.MessageText;
                        chatMessage.DateSent  = message.DateSent;
                        chatMessage.SenderId  = message.SenderId;
                        chatMessage.MessageId = message.Id;
                        if (message.RecipientId.HasValue)
                        {
                            chatMessage.RecepientId = message.RecipientId.Value;
                        }
                        chatMessage.DialogId = message.ChatDialogId;
                        chatMessage.IsRead   = message.Read == 1;
                        messages.Add(chatMessage);
                    }
                }
            }

            return(messages);
        }
コード例 #14
0
 void SetupTableView()
 {
     MessageTable.RegisterNibForCellReuse(MessagePageCell.Nib, MessagePageCell.Key);
     MessageTable.Source = new MessageTableViewSource();
 }
コード例 #15
0
ファイル: Builder.cs プロジェクト: robertsmatt97/mm-rando
 public Builder(RandomizedResult randomized)
 {
     _randomized   = randomized;
     _settings     = randomized.Settings;
     _messageTable = new MessageTable();
 }
コード例 #16
0
        public async Task LoadMessages()
        {
            List <Message>      messages;
            List <MessageTable> chatMessages = new List <MessageTable>();

            try
            {
                messages = await App.QbProvider.GetMessagesAsync(dialogId);
            }
            catch (Exception ex)
            {
                new MessageDialog(ex.ToString(), "Error").ShowAsync();
                return;
            }

            using (await lockAddingObject.LockAsync())
            {
                if (messages != null)
                {
                    messages = messages.OrderBy(message => message.DateSent).ToList();
                    foreach (var message in messages)
                    {
                        var chatMessage = new MessageTable();
                        chatMessage.DateSent  = message.DateSent;
                        chatMessage.SenderId  = message.SenderId;
                        chatMessage.MessageId = message.Id;
                        if (message.RecipientId.HasValue)
                        {
                            chatMessage.RecepientId = message.RecipientId.Value;
                        }
                        chatMessage.DialogId = message.ChatDialogId;
                        chatMessage.IsRead   = message.Read == 1;

                        await this.SetRecepientName(chatMessage);

                        if (message.NotificationType == NotificationTypes.GroupCreate ||
                            message.NotificationType == NotificationTypes.GroupUpdate)
                        {
                            if (message.AddedOccupantsIds.Any())
                            {
                                var userIds = new List <int>(message.AddedOccupantsIds);
                                userIds.Add(message.SenderId);

                                var users = await App.QbProvider.GetUsersByIdsAsync(string.Join(",", userIds));

                                var addedUsers = users.Where(u => u.Id != message.SenderId);
                                var senderUser = users.First(u => u.Id == message.SenderId);
                                chatMessage.Text = senderUser.FullName + " added users: " +
                                                   string.Join(",", addedUsers.Select(u => u.FullName));
                            }
                            else if (message.DeletedOccupantsIds.Any())
                            {
                                var userIds = new List <int>(message.DeletedOccupantsIds);
                                var users   = await App.QbProvider.GetUsersByIdsAsync(string.Join(",", userIds));

                                chatMessage.Text = string.Join(",", users.Select(u => u.FullName)) + " left this room";
                            }
                        }
                        else
                        {
                            chatMessage.Text = System.Net.WebUtility.UrlDecode(message.MessageText);
                        }

                        chatMessages.Add(chatMessage);
                    }
                }

                await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
                                                                              () =>
                {
                    this.Messages.Clear();
                    foreach (var item in chatMessages)
                    {
                        this.Messages.Add(item);
                    }

                    var page = App.NavigationFrame.Content as GroupChatPage;
                    if (page != null)
                    {
                        page.ScrollList();
                    }
                });
            }
        }
コード例 #17
0
 public void SetMessageString(MessageTable table, int messageNo, string message)
 {
     table.Messages[messageNo].Update(message);
 }
コード例 #18
0
        private async void OnMessageReceived(object sender, MessageEventArgs messageEventArgs)
        {
            if (messageEventArgs.MessageType == MessageType.Chat ||
                messageEventArgs.MessageType == MessageType.Groupchat)
            {
                using (await lockAddingObject.LockAsync())
                {
                    string decodedMessage = System.Net.WebUtility.UrlDecode(messageEventArgs.Message.MessageText);

                    var messageTable = new MessageTable();
                    messageTable.SenderId  = messageEventArgs.Message.SenderId;
                    messageTable.DialogId  = messageEventArgs.Message.ChatDialogId;
                    messageTable.DateSent  = messageEventArgs.Message.DateSent;
                    messageTable.MessageId = messageEventArgs.Message.Id;

                    if (messageEventArgs.Message.NotificationType != 0)
                    {
                        if (messageEventArgs.Message.NotificationType == NotificationTypes.GroupUpdate)
                        {
                            if (messageEventArgs.Message.AddedOccupantsIds.Any())
                            {
                                var userIds = new List <int>(messageEventArgs.Message.AddedOccupantsIds);
                                userIds.Add(messageEventArgs.Message.SenderId);
                                var users = await App.QbProvider.GetUsersByIdsAsync(string.Join(",", userIds));

                                var addedUsers = users.Where(u => u.Id != messageEventArgs.Message.SenderId);
                                var senderUser = users.First(u => u.Id == messageEventArgs.Message.SenderId);
                                messageTable.Text = senderUser.FullName + " added users: " +
                                                    string.Join(",", addedUsers.Select(u => u.FullName));
                            }
                            else if (messageEventArgs.Message.DeletedOccupantsIds.Any())
                            {
                                var userIds = new List <int>(messageEventArgs.Message.DeletedOccupantsIds);
                                var users   = await App.QbProvider.GetUsersByIdsAsync(string.Join(",", userIds));

                                messageTable.Text = string.Join(",", users.Select(u => u.FullName)) + " left this room";
                            }
                        }
                    }
                    else
                    {
                        messageTable.Text = decodedMessage;
                    }

                    await SetRecepientName(messageTable);

                    await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
                                                                                  () =>
                    {
                        var message = this.Messages.FirstOrDefault(m => m.MessageId == messageTable.MessageId);
                        if (message == null)
                        {
                            this.Messages.Add(messageTable);
                        }

                        var page = App.NavigationFrame.Content as GroupChatPage;
                        if (page != null)
                        {
                            page.ScrollList();
                        }
                    });
                }
            }
        }
コード例 #19
0
 protected Actor()
 {
     actorMessageTable = MessageRegistry.Initialize(this);
 }
コード例 #20
0
        void ReleaseDesignerOutlets()
        {
            if (BlackList != null)
            {
                BlackList.Dispose();
                BlackList = null;
            }

            if (DateColumn != null)
            {
                DateColumn.Dispose();
                DateColumn = null;
            }

            if (FollowList != null)
            {
                FollowList.Dispose();
                FollowList = null;
            }

            if (LikeList != null)
            {
                LikeList.Dispose();
                LikeList = null;
            }

            if (MessageColumn != null)
            {
                MessageColumn.Dispose();
                MessageColumn = null;
            }

            if (MessageTable != null)
            {
                MessageTable.Dispose();
                MessageTable = null;
            }

            if (SectionColumn != null)
            {
                SectionColumn.Dispose();
                SectionColumn = null;
            }

            if (interval != null)
            {
                interval.Dispose();
                interval = null;
            }

            if (maxAutomatic != null)
            {
                maxAutomatic.Dispose();
                maxAutomatic = null;
            }

            if (maxCancel != null)
            {
                maxCancel.Dispose();
                maxCancel = null;
            }
        }
コード例 #21
0
        /// <summary>
        /// <para>Replaces current sound effect in a message with a new one</para>
        ///
        /// Throws InvalidOperationException if current sound cannot be replaced
        /// </summary>
        public static void ReplaceInMessageWith(this SoundEffect source, SoundEffect newSound, MessageTable messageTable)
        {
            if (!source.IsReplacableInMessage())
            {
                throw new InvalidOperationException($"Sound effect {source} is not replacable!");
            }

            var replacableAttribute = source.GetAttribute <ReplacableInMessageAttribute>();

            foreach (var messageId in replacableAttribute.MessageIds)
            {
                var message = messageTable.GetMessage(messageId);

                var oldSoundId       = replacableAttribute.SoundId;
                var oldSoundEffect   = (ushort)(oldSoundId & 0x0E00);
                var oldSoundBytes    = new string(new char[] { Convert.ToChar((oldSoundId & 0xFF00) >> 8), Convert.ToChar(oldSoundId & 0xFF) });
                var oldSoundLocation = message.Message.IndexOf(oldSoundBytes);

                if (oldSoundLocation < 0)
                {
                    throw new InvalidProgramException($"Sound effect {source} has invalid sound replacement setup!");
                }

                var newSoundId    = (uint)newSound;
                var newSoundBytes = new string(new char[] {
                    Convert.ToChar(((newSoundId | oldSoundEffect) & 0xFF00) >> 8),
                    Convert.ToChar(newSoundId & 0xFF)
                });

                var newMessage = message.Message.Replace(oldSoundBytes, newSoundBytes);
                message.Message = newMessage;
            }
        }
コード例 #22
0
        public override void AwakeFromNib()
        {
            base.AwakeFromNib();

            // Create the Message Table Data Source and populate it
            var DataSource = new MessageTableDataSource();

            DataSource.Messages.Add(new Message("yyyy/mm/dd hh:mm:ss", "情報", "xxxxx"));
            DataSource.Messages.Add(new Message("yyyy/mm/dd hh:mm:ss", "警告", "xxxxx"));
            DataSource.Messages.Add(new Message("yyyy/mm/dd hh:mm:ss", "エラー", "xxxxx"));
            DataSource.Messages.Add(new Message("yyyy/mm/dd hh:mm:ss", "情報", "xxxxx"));

            // Populate the Message Table
            MessageTable.DataSource = DataSource;
            MessageTable.Delegate   = new MessageTableDelegate(DataSource);

            // Auto select the first row
            MessageTable.SelectRow(0, false);

            var FollowDataSource = new MyListDataSource();

            FollowDataSource.ListItems.Add(new MyListItem("フォロー一覧"));
            FollowDataSource.ListItems.Add(new MyListItem("フォロー1", "https://randomuser.me/api/portraits/men/1.jpg"));
            FollowDataSource.ListItems.Add(new MyListItem("フォロー2", "https://randomuser.me/api/portraits/men/2.jpg"));
            FollowDataSource.ListItems.Add(new MyListItem("フォロー3", "https://randomuser.me/api/portraits/men/3.jpg"));
            FollowDataSource.ListItems.Add(new MyListItem("フォロー4", "https://randomuser.me/api/portraits/men/4.jpg"));
            FollowDataSource.ListItems.Add(new MyListItem("フォロー5", "https://randomuser.me/api/portraits/men/5.jpg"));

            if (FollowList != null)
            {
                FollowList.DataSource = FollowDataSource;
                FollowList.Delegate   = new MyListDelegate(FollowDataSource);
            }

            var LikeDataSource = new MyListDataSource();

            LikeDataSource.ListItems.Add(new MyListItem("いいね一覧"));
            LikeDataSource.ListItems.Add(new MyListItem("フォロワー1", "https://randomuser.me/api/portraits/men/6.jpg"));
            LikeDataSource.ListItems.Add(new MyListItem("フォロワー2", "https://randomuser.me/api/portraits/men/7.jpg"));
            LikeDataSource.ListItems.Add(new MyListItem("フォロワー3", "https://randomuser.me/api/portraits/men/8.jpg"));
            LikeDataSource.ListItems.Add(new MyListItem("フォロワー4", "https://randomuser.me/api/portraits/men/9.jpg"));
            LikeDataSource.ListItems.Add(new MyListItem("フォロワー5", "https://randomuser.me/api/portraits/men/10.jpg"));

            if (LikeList != null)
            {
                LikeList.DataSource = LikeDataSource;
                LikeList.Delegate   = new MyListDelegate(LikeDataSource);
            }

            var BlackDataSource = new MyListDataSource();

            BlackDataSource.ListItems.Add(new MyListItem("解除候補一覧"));
            BlackDataSource.ListItems.Add(new MyListItem("フォロワー1", "https://randomuser.me/api/portraits/men/11.jpg"));
            BlackDataSource.ListItems.Add(new MyListItem("フォロワー2", "https://randomuser.me/api/portraits/men/12.jpg"));
            BlackDataSource.ListItems.Add(new MyListItem("フォロワー3", "https://randomuser.me/api/portraits/men/13.jpg"));
            BlackDataSource.ListItems.Add(new MyListItem("フォロワー4", "https://randomuser.me/api/portraits/men/14.jpg"));
            BlackDataSource.ListItems.Add(new MyListItem("フォロワー5", "https://randomuser.me/api/portraits/men/15.jpg"));

            if (BlackList != null)
            {
                BlackList.DataSource = BlackDataSource;
                BlackList.Delegate   = new MyListDelegate(BlackDataSource);
            }
        }
コード例 #23
0
ファイル: Login.cs プロジェクト: wm9947/gochat_team
        //---------------------------------------------------------------------------------------------------------------
        // deserialize data

        public void deserializeData(string rcvMsg)
        {
            if (rcvMsg.Contains("type\":\"user"))
            {
                Debug.WriteLine("user");

                DB_UserTable = JsonConvert.DeserializeObject <UserTable>(rcvMsg);

                Debug.WriteLine(DB_UserTable.type);
                Debug.WriteLine(DB_UserTable.data.UserName);
                Rcheck_user = true;
            }
            else if (rcvMsg.Contains("type\":\"chat"))
            {
                Debug.WriteLine("chat");
                ChatTable temp = JsonConvert.DeserializeObject <ChatTable>(rcvMsg);
                foreach (chat tempH in temp.data)
                {
                    DB_ChatTable.Add(tempH);
                }

                //DisplayGroupList(DB_ChatTable);
                //DisplayFriendWithchat(DB_FrientTable, DB_ChatTable);
                Debug.WriteLine("Chat number" + DB_ChatTable.Count());
                Rcheck_chat = true;
            }
            else if (rcvMsg.Contains("type\":\"friend"))
            {
                Debug.WriteLine("friend");

                FriendTable temp = JsonConvert.DeserializeObject <FriendTable>(rcvMsg);

                /*foreach (friend tempH in temp.data)
                 * {
                 *  NewFriendTable.data.Add(tempH);
                 * }*/
                foreach (friend tempH in temp.data)
                {
                    DB_FrientTable.Add(tempH);
                }

                //DisplayFriendList(DB_FrientTable);
                //DisplayFriendWithchat(DB_FrientTable, DB_ChatTable);

                Debug.WriteLine("friend number : " + DB_FrientTable.Count());
                Rcheck_friend = true;
            }
            else if (rcvMsg.Contains("type\":\"message"))// || rcvMsg.Contains("type\":\"umessage"))
            {
                try
                {
                    if (rcvMsg.Contains("[") && rcvMsg.IndexOf("[") == 25)
                    {
                        //Debug.WriteLine(rcvMsg.IndexOf("["));
                        MessageTable temp = JsonConvert.DeserializeObject <MessageTable>(rcvMsg);
                        foreach (message tempH in temp.data)
                        {
                            DB_MessageTable.Add(tempH);
                        }
                        Rcheck_message = true;
                    }
                    else
                    {
                        rMessageTable temp = JsonConvert.DeserializeObject <rMessageTable>(rcvMsg);
                        DB_MessageTable.Add(temp.data);
                        if (temp.data.ChatId == MainForm.chatbox1.chatID)
                        {
                            if (temp.data.ChatId == DB_UserTable.data.UserId)
                            {
                                this.Invoke(new set_chatbox(MainForm.chatbox1.addInMessage), temp.data.content);
                            }
                            else if (temp.data.ChatId != DB_UserTable.data.UserId)
                            {
                                this.Invoke(new set_chatbox(MainForm.chatbox1.addOutMessage), temp.data.content);
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                    Debug.WriteLine("loading message fail" + e);
                }

                Debug.WriteLine("message");
                Debug.WriteLine("message number : " + DB_MessageTable.Count());
            }
        }
コード例 #24
0
        private static void UpdateShop(ItemObject itemObject, List <MessageEntry> newMessages, MessageTable messageTable)
        {
            var location = itemObject.NewLocation.Value;

            var shopInventories = location.GetAttributes <ShopInventoryAttribute>();

            foreach (var shopInventory in shopInventories)
            {
                var messageId  = ReadWriteUtils.ReadU16(shopInventory.ShopItemAddress + 0x0A);
                var oldMessage = messageTable.GetMessage((ushort)(messageId + 1));
                var cost       = ReadWriteUtils.Arr_ReadU16(oldMessage.Header, 5);
                newMessages.Add(new MessageEntryBuilder()
                                .Id(messageId)
                                .Message(it =>
                {
                    it.Red(() =>
                    {
                        it.RuntimeItemName(itemObject.DisplayName(), location).Text(": ").Text(cost.ToString()).Text(" Rupees").NewLine();
                    })
                    .RuntimeWrap(() =>
                    {
                        it.RuntimeItemDescription(itemObject.DisplayItem, shopInventory.Keeper, location);
                    })
                    .DisableTextBoxClose()
                    .EndFinalTextBox();
                })
                                .Build()
                                );

                newMessages.Add(new MessageEntryBuilder()
                                .Id((ushort)(messageId + 1))
                                .Message(it =>
                {
                    it.RuntimeItemName(itemObject.DisplayName(), location).Text(": ").Text(cost.ToString()).Text(" Rupees").NewLine()
                    .Text(" ").NewLine()
                    .StartGreenText()
                    .TwoChoices()
                    .Text("I'll buy ").RuntimePronoun(itemObject.DisplayItem, location).NewLine()
                    .Text("No thanks")
                    .EndFinalTextBox();
                })
                                .Build()
                                );
            }
        }
コード例 #25
0
        public static void WriteNewItem(ItemObject itemObject, List <MessageEntry> newMessages, GameplaySettings settings, ChestTypeAttribute.ChestType?overrideChestType, MessageTable messageTable, ExtendedObjects extendedObjects)
        {
            var item     = itemObject.Item;
            var location = itemObject.NewLocation.Value;

            System.Diagnostics.Debug.WriteLine($"Writing {item.Name()} --> {location.Location()}");

            if (!itemObject.IsRandomized)
            {
                var indices = location.GetCollectableIndices();
                if (indices.Any())
                {
                    foreach (var collectableIndex in location.GetCollectableIndices())
                    {
                        ReadWriteUtils.Arr_WriteU16(RomData.MMFileList[COLLECTABLE_TABLE_FILE_INDEX].Data, collectableIndex * 2, 0);
                    }
                    return;
                }
            }

            int f            = RomUtils.GetFileIndexForWriting(GET_ITEM_TABLE);
            int baseaddr     = GET_ITEM_TABLE - RomData.MMFileList[f].Addr;
            var getItemIndex = location.GetItemIndex().Value;
            int offset       = (getItemIndex - 1) * 8 + baseaddr;
            var fileData     = RomData.MMFileList[f].Data;

            GetItemEntry newItem;

            if (!itemObject.IsRandomized && location.IsNullableItem())
            {
                newItem = new GetItemEntry();
            }
            else if (item.IsExclusiveItem())
            {
                newItem = item.ExclusiveItemEntry();
            }
            else
            {
                newItem = RomData.GetItemList[item.GetItemIndex().Value];
            }

            // Attempt to resolve extended object Id, which should affect "Exclusive Items" as well.
            var graphics = extendedObjects.ResolveGraphics(newItem);

            if (graphics.HasValue)
            {
                newItem.Object = graphics.Value.objectId;
                newItem.Index  = graphics.Value.graphicId;
            }

            var data = new byte[]
            {
                newItem.ItemGained,
                newItem.Flag,
                newItem.Index,
                newItem.Type,
                (byte)(newItem.Message >> 8),
                (byte)(newItem.Message & 0xFF),
                (byte)(newItem.Object >> 8),
                (byte)(newItem.Object & 0xFF),
            };

            ReadWriteUtils.Arr_Insert(data, 0, data.Length, fileData, offset);

            int?refillGetItemIndex = item switch
            {
                Item.ItemBottleMadameAroma => 0x91,
                Item.ItemBottleAliens => 0x92,
                _ => null,
            };

            if (refillGetItemIndex.HasValue)
            {
                var refillItem     = RomData.GetItemList[refillGetItemIndex.Value];
                var refillGraphics = extendedObjects.ResolveGraphics(refillItem);
                if (refillGraphics.HasValue)
                {
                    refillItem.Object = refillGraphics.Value.objectId;
                    refillItem.Index  = refillGraphics.Value.graphicId;
                }
                var refillData = new byte[]
                {
                    refillItem.ItemGained,
                    refillItem.Flag,
                    refillItem.Index,
                    refillItem.Type,
                    (byte)(refillItem.Message >> 8),
                    (byte)(refillItem.Message & 0xFF),
                    (byte)(refillItem.Object >> 8),
                    (byte)(refillItem.Object & 0xFF),
                };
                var refillOffset = (refillGetItemIndex.Value - 1) * 8 + baseaddr;
                ReadWriteUtils.Arr_Insert(refillData, 0, refillData.Length, fileData, refillOffset);
            }

            if (location.IsRupeeRepeatable())
            {
                settings.AsmOptions.MMRConfig.RupeeRepeatableLocations.Add(getItemIndex);
            }

            var isRepeatable = item.IsRepeatable(settings) || (!settings.PreventDowngrades && item.IsDowngradable());

            if (settings.ProgressiveUpgrades && item.HasAttribute <ProgressiveAttribute>())
            {
                isRepeatable = false;
            }
            if (item.IsReturnable(settings))
            {
                isRepeatable = false;
                settings.AsmOptions.MMRConfig.ItemsToReturnIds.Add(getItemIndex);
            }
            if (!isRepeatable)
            {
                SceneUtils.UpdateSceneFlagMask(getItemIndex);
            }

            if (settings.UpdateChests)
            {
                UpdateChest(location, item, overrideChestType);
            }

            if (settings.UpdateShopAppearance)
            {
                UpdateShop(itemObject, newMessages, messageTable);
            }

            if (itemObject.IsRandomized)
            {
                var hackContentAttributes = location.GetAttributes <HackContentAttribute>();
                if (location == item)
                {
                    hackContentAttributes = hackContentAttributes.Where(h => !h.ApplyOnlyIfItemIsDifferent);
                }
                foreach (var hackContent in hackContentAttributes.Select(h => h.HackContent))
                {
                    ResourceUtils.ApplyHack(hackContent);
                }
            }
        }
コード例 #26
0
        public override bool CheckForMessages()
        {
            CheckClients();

            var received = new List <NetIncomingMessage>();

            Peer.ReadMessages(received);

            foreach (var msg in received)
            {
                var client = GetClient(msg.SenderConnection);

                switch (msg.MessageType)
                {
                case NetIncomingMessageType.VerboseDebugMessage:
                case NetIncomingMessageType.DebugMessage:
                    Log(LogType.Log, msg.ReadString());
                    break;

                case NetIncomingMessageType.WarningMessage:
                    Log(LogType.Warning, msg.ReadString());
                    break;

                case NetIncomingMessageType.ErrorMessage:
                    Log(LogType.Error, msg.ReadString());
                    break;

                case NetIncomingMessageType.StatusChanged:
                    var status = (NetConnectionStatus)msg.ReadByte();
                    var reason = msg.ReadString();

                    if (status == NetConnectionStatus.Disconnected)
                    {
                        client.DisconnectMessage = reason;
                    }

                    Log(LogType.Log, "New status: {0} (Reason: {1})", status, reason);
                    break;

                case NetIncomingMessageType.Data:
                    try
                    {
                        _readerStream.ClearWriteReset(x => x.Write(msg.Data, 0, msg.LengthBytes));
                        var value = MessageTable.Deserialize(_readerStream);
                        HandleMessage(client, value);
                    }
                    catch (Exception e)
                    {
                        Log(LogType.Error, e.ToString());
                    }
                    break;

                default:
                    Log(LogType.Error, "Unhandled type: {0}", msg.MessageType);
                    break;
                }
            }

            Peer.Recycle(received);

            return(received.Count > 0);
        }
コード例 #27
0
ファイル: Builder.cs プロジェクト: robertsmatt97/mm-rando
        public void MakeROM(string InFile, string FileName, BackgroundWorker worker)
        {
            using (BinaryReader OldROM = new BinaryReader(File.Open(InFile, FileMode.Open, FileAccess.Read)))
            {
                RomUtils.ReadFileTable(OldROM);
                _messageTable.InitializeTable();
            }

            List <MMFile> originalMMFileList = null;

            if (_settings.GeneratePatch)
            {
                originalMMFileList = RomData.MMFileList.Select(file => file.Clone()).ToList();
            }

            if (!string.IsNullOrWhiteSpace(_settings.InputPatchFilename))
            {
                worker.ReportProgress(50, "Applying patch...");
                RomUtils.ApplyPatch(_settings.InputPatchFilename);
            }
            else
            {
                // todo music randomizer doesn't work if this is called after WriteItems(); because the reloc-audio hack is hardcoded
                worker.ReportProgress(50, "Writing audio...");
                WriteAudioSeq();

                worker.ReportProgress(55, "Writing player model...");
                WritePlayerModel();

                if (_settings.LogicMode != LogicMode.Vanilla)
                {
                    worker.ReportProgress(60, "Applying hacks...");
                    ResourceUtils.ApplyHack(Values.ModsDirectory + "title-screen");
                    ResourceUtils.ApplyHack(Values.ModsDirectory + "misc-changes");
                    ResourceUtils.ApplyHack(Values.ModsDirectory + "cm-cs");
                    ResourceUtils.ApplyHack(Values.ModsDirectory + "fix-song-of-healing");
                    WriteFileSelect();
                }
                ResourceUtils.ApplyHack(Values.ModsDirectory + "init-file");
                ResourceUtils.ApplyHack(Values.ModsDirectory + "fierce-deity-anywhere");

                worker.ReportProgress(61, "Writing quick text...");
                WriteQuickText();

                worker.ReportProgress(62, "Writing cutscenes...");
                WriteCutscenes();

                worker.ReportProgress(63, "Writing dungeons...");
                WriteDungeons();

                worker.ReportProgress(64, "Writing gimmicks...");
                WriteGimmicks();

                worker.ReportProgress(65, "Writing enemies...");
                WriteEnemies();

                worker.ReportProgress(66, "Writing items...");
                WriteItems();

                worker.ReportProgress(67, "Writing messages...");
                WriteGossipQuotes();
                MessageTable.WriteMessageTable(_messageTable);

                worker.ReportProgress(68, "Writing startup...");
                WriteStartupStrings();

                if (_settings.GeneratePatch)
                {
                    worker.ReportProgress(70, "Generating patch...");
                    RomUtils.CreatePatch(FileName, originalMMFileList);
                }
            }

            worker.ReportProgress(72, "Writing Tatl color...");
            WriteTatlColour();

            worker.ReportProgress(73, "Writing tunic color...");
            WriteTunicColor();

            if (_settings.GenerateROM)
            {
                worker.ReportProgress(75, "Building ROM...");

                byte[] ROM = RomUtils.BuildROM(FileName);
                if (_settings.OutputVC)
                {
                    worker.ReportProgress(90, "Building VC...");
                    VCInjectionUtils.BuildVC(ROM, Values.VCDirectory, Path.ChangeExtension(FileName, "wad"));
                }
            }
            worker.ReportProgress(100, "Done!");
        }
コード例 #28
0
 CreateMessageAsync(MessageTable objMessageTable)
 {
     _context.MessageTable.Add(objMessageTable);
     _context.SaveChanges();
     return(Task.FromResult(objMessageTable));
 }
コード例 #29
0
        private async void OnMessageReceived(object sender, MessageEventArgs messageEventArgs)
        {
            if (messageEventArgs.MessageType == MessageType.Chat ||
                messageEventArgs.MessageType == MessageType.Groupchat)
            {
                string decodedMessage = System.Net.WebUtility.UrlDecode(messageEventArgs.Message.MessageText);

                var messageTable = new MessageTable();
                messageTable.SenderId = messageEventArgs.Message.SenderId;
                messageTable.DialogId = messageEventArgs.Message.ChatDialogId;
                messageTable.DateSent = messageEventArgs.Message.DateSent;

                if (messageEventArgs.Message.NotificationType != 0)
                {
                    if (messageEventArgs.Message.NotificationType == NotificationTypes.GroupUpdate)
                    {
                        if (messageEventArgs.Message.AddedOccupantsIds.Any())
                        {
                            var userIds = new List <int>(messageEventArgs.Message.AddedOccupantsIds);
                            userIds.Add(messageEventArgs.Message.SenderId);
                            var users = await App.QbProvider.GetUsersByIdsAsync(string.Join(",", userIds));

                            var addedUsers = users.Where(u => u.Id != messageEventArgs.Message.SenderId);
                            var senderUser = users.First(u => u.Id == messageEventArgs.Message.SenderId);
                            messageTable.Text = senderUser.FullName + " added users: " +
                                                string.Join(",", addedUsers.Select(u => u.FullName));
                        }
                        else if (messageEventArgs.Message.DeletedOccupantsIds.Any())
                        {
                            var userIds = new List <int>(messageEventArgs.Message.DeletedOccupantsIds);
                            var users   = await App.QbProvider.GetUsersByIdsAsync(string.Join(",", userIds));

                            messageTable.Text = string.Join(",", users.Select(u => u.FullName)) + " left this room";
                        }

                        //var dialogInfo = await App.QbProvider.GetDialogAsync(messageEventArgs.Message.ChatDialogId);
                        //if (dialogInfo == null)
                        //{
                        //    return;
                        //}
                        //var dialog = new DialogTable(dialogInfo);
                        //Database.Instance().SaveDialog(dialog);
                    }
                }
                else
                {
                    messageTable.Text = decodedMessage;
                }

                await SetRecepientName(messageTable);

                this.Messages.Add(messageTable);

                Device.BeginInvokeOnMainThread(() =>
                {
                    var page = (App.Current.MainPage as NavigationPage).CurrentPage as PrivateChatPage;
                    if (page != null)
                    {
                        page.ScrollList();
                    }
                });
            }
        }
コード例 #30
0
ファイル: Builder.cs プロジェクト: colinthackston/mm-rando
        public void MakeROM(string InFile, string FileName, BackgroundWorker worker)
        {
            using (BinaryReader OldROM = new BinaryReader(File.Open(InFile, FileMode.Open, FileAccess.Read)))
            {
                RomUtils.ReadFileTable(OldROM);
                _messageTable.InitializeTable();
            }

            var originalMMFileList = RomData.MMFileList.Select(file => file.Clone()).ToList();

            byte[] hash;
            if (!string.IsNullOrWhiteSpace(_settings.InputPatchFilename))
            {
                worker.ReportProgress(50, "Applying patch...");
                hash = RomUtils.ApplyPatch(_settings.InputPatchFilename);

                // Apply Asm configuration post-patch
                WriteAsmConfigPostPatch();
            }
            else
            {
                worker.ReportProgress(55, "Writing player model...");
                WritePlayerModel();

                if (_settings.LogicMode != LogicMode.Vanilla)
                {
                    worker.ReportProgress(60, "Applying hacks...");
                    ResourceUtils.ApplyHack(Values.ModsDirectory + "title-screen");
                    ResourceUtils.ApplyHack(Values.ModsDirectory + "misc-changes");
                    ResourceUtils.ApplyHack(Values.ModsDirectory + "cm-cs");
                    ResourceUtils.ApplyHack(Values.ModsDirectory + "fix-song-of-healing");
                    WriteFileSelect();
                }
                ResourceUtils.ApplyHack(Values.ModsDirectory + "init-file");
                ResourceUtils.ApplyHack(Values.ModsDirectory + "fierce-deity-anywhere");

                worker.ReportProgress(61, "Writing quick text...");
                WriteQuickText();

                worker.ReportProgress(62, "Writing cutscenes...");
                WriteCutscenes();

                worker.ReportProgress(63, "Writing dungeons...");
                WriteDungeons();

                worker.ReportProgress(64, "Writing gimmicks...");
                WriteGimmicks();

                worker.ReportProgress(65, "Writing speedups...");
                WriteSpeedUps();

                worker.ReportProgress(66, "Writing enemies...");
                WriteEnemies();

                // if shop should match given items
                {
                    WriteShopObjects();
                }

                worker.ReportProgress(67, "Writing items...");
                WriteItems();

                worker.ReportProgress(68, "Writing messages...");
                WriteGossipQuotes();

                MessageTable.WriteMessageTable(_messageTable, _settings.QuickTextEnabled);

                worker.ReportProgress(69, "Writing startup...");
                WriteStartupStrings();

                worker.ReportProgress(70, "Writing ASM patch...");
                WriteAsmPatch();

                worker.ReportProgress(71, _settings.GeneratePatch ? "Generating patch..." : "Computing hash...");
                hash = RomUtils.CreatePatch(_settings.GeneratePatch ? FileName : null, originalMMFileList);
            }

            worker.ReportProgress(72, "Writing cosmetics...");
            WriteTatlColour();
            WriteTunicColor();

            worker.ReportProgress(73, "Writing music...");
            WriteAudioSeq(new Random(BitConverter.ToInt32(hash, 0)));
            WriteMuteMusic();

            worker.ReportProgress(74, "Writing sound effects...");
            WriteSoundEffects(new Random(BitConverter.ToInt32(hash, 0)));

            if (_settings.GenerateROM)
            {
                worker.ReportProgress(75, "Building ROM...");

                byte[] ROM = RomUtils.BuildROM(FileName);
                if (_settings.OutputVC)
                {
                    worker.ReportProgress(90, "Building VC...");
                    VCInjectionUtils.BuildVC(ROM, _settings.PatcherOptions, Values.VCDirectory, Path.ChangeExtension(FileName, "wad"));
                }
            }
            worker.ReportProgress(100, "Done!");
        }