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) { } }
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; } }
// 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(); }
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()); } }
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); }
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)); }
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); }
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)); }
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); }
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)); }
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))); }
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 = ""; } } }
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); }
void SetupTableView() { MessageTable.RegisterNibForCellReuse(MessagePageCell.Nib, MessagePageCell.Key); MessageTable.Source = new MessageTableViewSource(); }
public Builder(RandomizedResult randomized) { _randomized = randomized; _settings = randomized.Settings; _messageTable = new MessageTable(); }
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(); } }); } }
public void SetMessageString(MessageTable table, int messageNo, string message) { table.Messages[messageNo].Update(message); }
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(); } }); } } }
protected Actor() { actorMessageTable = MessageRegistry.Initialize(this); }
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; } }
/// <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; } }
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); } }
//--------------------------------------------------------------------------------------------------------------- // 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()); } }
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() ); } }
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); } } }
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); }
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!"); }
CreateMessageAsync(MessageTable objMessageTable) { _context.MessageTable.Add(objMessageTable); _context.SaveChanges(); return(Task.FromResult(objMessageTable)); }
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(); } }); } }
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!"); }