public HttpResponseMessage NewChannel([FromBody] NewChannel channel) { try { var messageGroup = new MESSAGING_GROUP(); var messageGroups = db.MESSAGING_GROUP.ToList(); var conference = db.CONFERENCEs.SingleOrDefault(x => x.CONFERENCE_ID == channel.CONFERENCE_ID); if (conference == null) { return(ResponseFail(StringResource.Conference_do_not_exist)); } else { if (messageGroups.Count > 0) { messageGroup.MESSAGING_GROUP_ID = messageGroups.Last().MESSAGING_GROUP_ID + 1; } else { messageGroup.MESSAGING_GROUP_ID = 0; } messageGroup.MESSAGING_GROUP_NAME = channel.MESSAGING_GROUP_NAME; messageGroup.MESSAGING_GROUP_NAME_EN = channel.MESSAGING_GROUP_NAME_EN; messageGroup.AVATAR_PICTURE_FILENAME = channel.AVATAR_PICTURE_FILENAME; messageGroup.CONFERENCE_ID = channel.CONFERENCE_ID; messageGroup.CONFERENCE_NAME = conference.CONFERENCE_NAME; messageGroup.CONFERENCE_NAME_EN = conference.CONFERENCE_NAME_EN; messageGroup.PUBLIC_OR_PRIVATE_GROUP = channel.PUBLIC_OR_PRIVATE_GROUP; messageGroup.CREATED_DATETIME = DateTime.Now; messageGroup.CREATED_UserName = channel.CREATED_UserName; db.MESSAGING_GROUP.Add(messageGroup); db.SaveChanges(); foreach (MessageGroupMember item in channel.MEMBERS) { var member = new ACCOUNT_MESSAGING_GROUP_MEMBERSHIP(); member.UserName = item.UserName; member.MESSAGING_GROUP_ID = messageGroup.MESSAGING_GROUP_ID; member.START_DATETIME = DateTime.Now; member.CREATED_UserName = channel.CREATED_UserName; member.MESSAGING_GROUP_MODERATOR = item.UserName == channel.CREATED_UserName ? true : false; member.GROUP_ASSIGNED_OR_GROUP_JOIN_REQUEST_OR_GROUP_JOIN_REQUEST_APPROVED = "GROUP ASSIGNED"; db.ACCOUNT_MESSAGING_GROUP_MEMBERSHIP.Add(member); db.SaveChanges(); } return(ResponseSuccess(StringResource.Success, channel)); } } catch { return(ResponseFail(StringResource.Can_not_create_new_channel)); } }
public HttpResponseMessage JoinChannel(string userName, int MESSAGING_GROUP_ID, int conferenceId) { var account = db.ACCOUNTs.SingleOrDefault(x => x.UserName == userName); var group = db.MESSAGING_GROUP.SingleOrDefault(x => x.MESSAGING_GROUP_ID == MESSAGING_GROUP_ID); var conference = db.CONFERENCEs.SingleOrDefault(x => x.CONFERENCE_ID == conferenceId); var joinRequestIsExist = db.ACCOUNT_MESSAGING_GROUP_MEMBERSHIP.Where(x => x.UserName == userName && x.MESSAGING_GROUP_ID == MESSAGING_GROUP_ID && x.GROUP_ASSIGNED_OR_GROUP_JOIN_REQUEST_OR_GROUP_JOIN_REQUEST_APPROVED == "GROUP JOIN REQUEST" && (x.DELETED == false || x.DELETED == null)).ToList(); var joined = db.ACCOUNT_MESSAGING_GROUP_MEMBERSHIP.Where(x => x.UserName == userName && x.MESSAGING_GROUP_ID == MESSAGING_GROUP_ID && (x.GROUP_ASSIGNED_OR_GROUP_JOIN_REQUEST_OR_GROUP_JOIN_REQUEST_APPROVED == "GROUP ASSIGNED" || x.GROUP_ASSIGNED_OR_GROUP_JOIN_REQUEST_OR_GROUP_JOIN_REQUEST_APPROVED == "GROUP JOIN REQUEST APPROVED") && (x.DELETED == false || x.DELETED == null)).ToList(); if (account == null) { return(ResponseFail(StringResource.Account_does_not_exist)); } else if (group == null) { return(ResponseFail(StringResource.Message_group_do_not_exist)); } else if (conference == null) { return(ResponseFail(StringResource.Conference_do_not_exist)); } else if (joinRequestIsExist.Count > 0) { return(ResponseFail(StringResource.You_have_submitted_your_request)); } else if (joined.Count > 0) { return(ResponseFail(StringResource.You_joined_the_group)); } else { var member = new ACCOUNT_MESSAGING_GROUP_MEMBERSHIP(); member.UserName = account.UserName; member.MESSAGING_GROUP_ID = MESSAGING_GROUP_ID; member.START_DATETIME = DateTime.Now; member.CREATED_UserName = group.CREATED_UserName; member.MESSAGING_GROUP_MODERATOR = userName == group.CREATED_UserName ? true : false; member.GROUP_ASSIGNED_OR_GROUP_JOIN_REQUEST_OR_GROUP_JOIN_REQUEST_APPROVED = StringResource.GROUP_JOIN_REQUEST; db.ACCOUNT_MESSAGING_GROUP_MEMBERSHIP.Add(member); db.SaveChanges(); return(ResponseSuccess(StringResource.Success)); } }
public HttpResponseMessage SendMessageGroup([FromBody] ChatGroup chat) { var accountSend = db.ACCOUNTs.SingleOrDefault(x => x.UserName == chat.data.UserName); var group = db.MESSAGING_GROUP.SingleOrDefault(x => x.MESSAGING_GROUP_ID == chat.data.MESSAGING_GROUP_ID); var conference = db.CONFERENCEs.SingleOrDefault(x => x.CONFERENCE_ID == chat.data.CONFERENCE_ID); if (accountSend == null) { return(ResponseFail(StringResource.Account_does_not_exist)); } else if (group == null) { return(ResponseFail(StringResource.Message_group_do_not_exist)); } else if (conference == null) { return(ResponseFail(StringResource.Conference_do_not_exist)); } else { var listMember = db.ACCOUNT_MESSAGING_GROUP_MEMBERSHIP.Where(x => x.MESSAGING_GROUP_ID == chat.data.MESSAGING_GROUP_ID && (x.GROUP_ASSIGNED_OR_GROUP_JOIN_REQUEST_OR_GROUP_JOIN_REQUEST_APPROVED == "GROUP ASSIGNED" || x.GROUP_ASSIGNED_OR_GROUP_JOIN_REQUEST_OR_GROUP_JOIN_REQUEST_APPROVED == "GROUP JOIN REQUEST APPROVED") && (x.DELETED == false || x.DELETED == null)).ToList(); var adminGroup = new ACCOUNT_MESSAGING_GROUP_MEMBERSHIP(); adminGroup.UserName = group.CREATED_UserName; listMember.Add(adminGroup); /*Thêm vào CSDL*/ var messageFeed = new MESSAGE_FEED(); messageFeed.FROM_DATE = DateTime.Now; messageFeed.UserName = chat.data.UserName; messageFeed.CURRENT_FIRST_NAME = accountSend.CURRENT_FIRST_NAME; messageFeed.CURRENT_MIDDLE_NAME = accountSend.CURRENT_MIDDLE_NAME; messageFeed.CURRENT_LAST_NAME = accountSend.CURRENT_LAST_NAME; messageFeed.CONFERENCE_ID = chat.data.CONFERENCE_ID; messageFeed.CONFERENCE_NAME = conference.CONFERENCE_NAME; messageFeed.CONFERENCE_NAME_EN = conference.CONFERENCE_NAME_EN; messageFeed.PUBLIC_OR_PRIVATE_MESSAGE = "PRIVATE"; messageFeed.MESSAGE_CONTENT = chat.Body; messageFeed.RECIPIENT_MESSAGING_GROUP_ID_1 = group.MESSAGING_GROUP_ID; messageFeed.RECIPIENT_MESSAGING_GROUP_NAME_1 = group.MESSAGING_GROUP_NAME; messageFeed.RECIPIENT_MESSAGING_GROUP_NAME_EN_1 = group.MESSAGING_GROUP_NAME; new NewFeedModel().addNewFeed(messageFeed); /*Tạo dữ liệu trả về*/ var msg = new MessageResponse(); msg.MESSAGE_FEED_ID = messageFeed.MESSAGE_FEED_ID; msg.MESSAGE_CONTENT = messageFeed.MESSAGE_CONTENT; msg.IsMoreThanOneDay = false; msg.IsToDay = DateTimeFormater.CheckIsToday(messageFeed.FROM_DATE.Value); msg.TimeFormat = DateTimeFormater.GetTimeAgo(messageFeed.FROM_DATE.Value); msg.Time = messageFeed.FROM_DATE.Value; msg.UserName = messageFeed.UserName; msg.PERSON_ID_SEND = accountSend.PERSON_ID; msg.ORGANIZATION_SEND = accountSend.CURRENT_HOME_ORGANIZATION_NAME; msg.ORGANIZATION_EN_SEND = accountSend.CURRENT_HOME_ORGANIZATION_NAME_EN; msg.Image = accountSend.Image; msg.FULL_NAME_PERSON_SEND = Utils.GetFullName(messageFeed.CURRENT_FIRST_NAME, messageFeed.CURRENT_MIDDLE_NAME, messageFeed.CURRENT_LAST_NAME); msg.RECIPIENT_MESSAGING_GROUP_ID_1 = messageFeed.RECIPIENT_MESSAGING_GROUP_ID_1; msg.RECIPIENT_MESSAGING_GROUP_NAME_1 = messageFeed.RECIPIENT_MESSAGING_GROUP_NAME_1; msg.RECIPIENT_MESSAGING_GROUP_NAME_EN_1 = messageFeed.RECIPIENT_MESSAGING_GROUP_NAME_EN_1; msg.IS_MESSAGE_GROUP = true; foreach (ACCOUNT_MESSAGING_GROUP_MEMBERSHIP item in listMember) { var memberRecive = db.ACCOUNT_DEVICE_RELATIONSHIP.SingleOrDefault(x => x.UserName == item.UserName); if (memberRecive != null) { var deviceId = memberRecive.DEVICE_TOKEN; if (deviceId != null) { var result = "-1"; var webAddr = "https://fcm.googleapis.com/fcm/send"; var httpWebRequest = (HttpWebRequest)WebRequest.Create(webAddr); httpWebRequest.ContentType = "application/json"; httpWebRequest.Headers.Add("Authorization:key=" + StringResource.Server_fcm_key); httpWebRequest.Method = "POST"; using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { var notification = new Notification(); notification.body = chat.Body; notification.title = msg.FULL_NAME_PERSON_SEND; notification.sound = chat.Sound; notification.priority = chat.Priority; JsonData data = new JsonData(); data.Data = JsonConvert.SerializeObject(msg); var json = new DataJson(); json.notification = notification; json.data = data; json.to = deviceId; streamWriter.Write(JsonConvert.SerializeObject(json)); streamWriter.Flush(); var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { result = streamReader.ReadToEnd(); } } } } } return(ResponseSuccess(StringResource.Success, msg)); } }