public IHttpActionResult GetChannelLastMessages(int id) { IEnumerable <string> headerValues = Request.Headers.GetValues("Authorization"); string installKey = headerValues.FirstOrDefault(); if (installKey == "") { return(ResponseMessage(Models.Errors.InstallKeyBlank(Request))); } try { Models.Installs.checkinInstall(installKey); } catch (Exception ex) { return(ResponseMessage(Models.Errors.InstallCheckinFailed(Request))); } MednaNetAPIClient.Models.Messages message = null; try { using (Models.MedLaunchChatEntities db = new Models.MedLaunchChatEntities()) { var install = (from q in db.installs where q.code == installKey select q).FirstOrDefault(); if (install != null) { message = (from g in db.discord_channels from m in g.discord_messages where !m.clients_ignore && m.channel == id orderby m.id descending select new MednaNetAPIClient.Models.Messages() { channel = g.id, code = m.code, message = m.message, name = m.name, postedOn = m.posted_on, id = m.id }).FirstOrDefault(); } } } catch (Exception ex) { HttpError err = new HttpError("Error retrieving last message for discord channel. "); return(ResponseMessage(Request.CreateResponse(HttpStatusCode.InternalServerError, err))); } return(Ok(message)); }
private async void GetMessages() { textBox1.AppendText("Getting messages." + System.Environment.NewLine); if (!this.isUpdating) { textBox1.AppendText("Not updating, get messages." + System.Environment.NewLine); this.isUpdating = true; if (isFirst) { isFirst = false; foreach (var s in monitoredChannels) { MednaNetAPIClient.Models.Messages message = await this.apiClient.Channels.GetChannelLastMessage(Convert.ToInt32(s.channelId)); if (message != null) { s.lastMessageId = message.id; } } } else { foreach (var s in monitoredChannels) { IEnumerable <MednaNetAPIClient.Models.Messages> messages = await this.apiClient.Channels.GetChannelMessagesAfterMessageId(s.channelId, s.lastMessageId); foreach (var message in messages.ToList()) { if (message.code != botInstallKey) { var ch = this.client.GetChannel(Convert.ToUInt64(s.discordChannelId)) as ISocketMessageChannel; await ch.SendMessageAsync("**" + message.name + "**: " + message.message); s.lastMessageId = message.id; } } } } this.isUpdating = false; } }
private async void button2_Click(object sender, EventArgs e) { DateTime postTime = DateTime.Now; messageBox.AppendText(currentInstall.username + " @ " + postTime.ToString() + System.Environment.NewLine); messageBox.AppendText(message.Text + System.Environment.NewLine); messageBox.AppendText(System.Environment.NewLine); MednaNetAPIClient.Models.Messages newMessage = await client.Channels.CreateMessage(this.currentChannel, new MednaNetAPIClient.Models.Messages() { channel = this.currentChannel, code = installKey.Text, message = message.Text, name = "", //This does nothing, the username is install specific and the API takes it from the database. postedOn = postTime }); lastChannelMessageId[this.currentChannel] = newMessage.id; }
public IHttpActionResult CreateDiscordMessage(int id, MednaNetAPIClient.Models.Messages message) { IEnumerable <string> headerValues = Request.Headers.GetValues("Authorization"); string installKey = headerValues.FirstOrDefault(); if (installKey == "") { return(ResponseMessage(Models.Errors.InstallKeyBlank(Request))); } try { Models.Installs.checkinInstall(installKey); } catch (Exception ex) { return(ResponseMessage(Models.Errors.InstallCheckinFailed(Request))); } string username = ""; bool clientIgnore = false; Models.discord_messages newRecord = null; try { newRecord = new Models.discord_messages(); using (Models.MedLaunchChatEntities db = new Models.MedLaunchChatEntities()) { var install = (from q in db.installs where q.code == installKey select q).FirstOrDefault(); if (install != null) { if (install.banned) { } else { if (install.temp_ban) { } else { if (installKey == "botInstallKey") { username = message.name; } else { username = install.username; } newRecord = new Models.discord_messages(); newRecord.code = message.code; newRecord.message = message.message; newRecord.name = username; newRecord.posted_on = DateTime.Now; newRecord.channel = id; newRecord.clients_ignore = clientIgnore; db.discord_messages.Add(newRecord); db.SaveChanges(); } } } else { } } } catch (Exception ex) { HttpError err = new HttpError("Error creating message for discord channel. "); return(ResponseMessage(Request.CreateResponse(HttpStatusCode.InternalServerError, err))); } return(Ok(newRecord)); }