public List <ActivityFeed> getListActivityFeedOfUser(string userName, decimal conferenceId, int page = 1, int pageSize = 10) { var activityFeeds = (from n in db.MESSAGE_FEED join a in db.ACCOUNTs on n.UserName equals a.UserName where n.UserName == userName && n.CONFERENCE_ID == conferenceId && n.REPLYING_TO_MESSAGE_FEED_ID == null && n.PUBLIC_OR_PRIVATE_MESSAGE == "PUBLIC" && (n.DELETED == false || n.DELETED == null) select new { n, a } ).AsEnumerable() .Select(x => new ActivityFeed() { MESSAGE_FEED_ID = x.n.MESSAGE_FEED_ID, UserName = x.n.UserName, PERSON_ID = x.a.PERSON_ID, CURRENT_LAST_NAME = x.n.CURRENT_LAST_NAME, CURRENT_MIDDLE_NAME = x.n.CURRENT_MIDDLE_NAME, CURRENT_FIRST_NAME = x.n.CURRENT_FIRST_NAME, REPLYING_TO_MESSAGE_FEED_ID = x.n.REPLYING_TO_MESSAGE_FEED_ID, MESSAGE_CONTENT = x.n.MESSAGE_CONTENT, ATTACHED_PHOTO_FILENAME = x.n.ATTACHED_PHOTO_FILENAME, ATTACHED_PHOTO_NOTE = x.n.ATTACHED_PHOTO_NOTE, ATTACHED_PHOTO_LONGITUDE = x.n.ATTACHED_PHOTO_LONGITUDE, ATTACHED_PHOTO_LATITUDE = x.n.ATTACHED_PHOTO_LATITUDE, Image = x.a.Image, Time = DateTimeFormater.GetTimeAgo(x.n.FROM_DATE.Value), FROM_DATE = x.n.FROM_DATE, THRU_DATE = x.n.THRU_DATE }); return(activityFeeds.OrderByDescending(x => x.FROM_DATE).ToPagedList(page, pageSize).ToList()); }
public HttpResponseMessage CreateStatus([FromBody] Status status) { if (status != null) { var account = db.ACCOUNTs.SingleOrDefault(x => x.UserName == status.UserName); var conference = db.CONFERENCEs.SingleOrDefault(x => x.CONFERENCE_ID == status.CONFERENCE_ID); if (account == null) { return(ResponseFail(StringResource.Account_does_not_exist)); } else if (conference == null) { return(ResponseFail(StringResource.Conference_do_not_exist)); } else { var messageFeed = new MESSAGE_FEED(); var result = db.MESSAGE_FEED.ToList(); if (result.Count > 0) { messageFeed.MESSAGE_FEED_ID = result.Last().MESSAGE_FEED_ID + 1; } else { messageFeed.MESSAGE_FEED_ID = 0; } messageFeed.UserName = status.UserName; messageFeed.REPLYING_TO_MESSAGE_FEED_ID = status.REPLYING_TO_MESSAGE_FEED_ID >= 0 ? status.REPLYING_TO_MESSAGE_FEED_ID : null; messageFeed.FROM_DATE = DateTime.Now; messageFeed.CURRENT_LAST_NAME = account.CURRENT_LAST_NAME; messageFeed.CURRENT_FIRST_NAME = account.CURRENT_FIRST_NAME; messageFeed.CURRENT_MIDDLE_NAME = account.CURRENT_MIDDLE_NAME; messageFeed.CONFERENCE_ID = status.CONFERENCE_ID; messageFeed.CONFERENCE_NAME = conference.CONFERENCE_NAME; messageFeed.CONFERENCE_NAME_EN = conference.CONFERENCE_NAME_EN; messageFeed.PUBLIC_OR_PRIVATE_MESSAGE = "PUBLIC"; messageFeed.MESSAGE_CONTENT = status.MESSAGE_CONTENT; messageFeed.ATTACHED_PHOTO_FILENAME = status.ATTACHED_PHOTO_FILENAME; messageFeed.ATTACHED_PHOTO_NOTE = status.ATTACHED_PHOTO_NOTE; messageFeed.ATTACHED_PHOTO_LONGITUDE = status.ATTACHED_PHOTO_LONGITUDE; messageFeed.ATTACHED_PHOTO_LATITUDE = status.ATTACHED_PHOTO_LATITUDE; db.MESSAGE_FEED.Add(messageFeed); db.SaveChanges(); status.CURRENT_LAST_NAME = account.CURRENT_LAST_NAME; status.CURRENT_FIRST_NAME = account.CURRENT_FIRST_NAME; status.CURRENT_MIDDLE_NAME = account.CURRENT_MIDDLE_NAME; status.MESSAGE_FEED_ID = messageFeed.MESSAGE_FEED_ID; status.Image = account.Image; status.Time = DateTimeFormater.GetTimeAgo(messageFeed.FROM_DATE.Value); return(ResponseSuccess(StringResource.Success, status)); } } else { return(ResponseFail(StringResource.Data_not_received)); } }
public HttpResponseMessage ListMessageGroup(int MESSAGING_GROUP_ID, int conferenceId, int page, int pageSize) { var list = db.MESSAGE_FEED.Where(x => x.RECIPIENT_MESSAGING_GROUP_ID_1 == MESSAGING_GROUP_ID && x.PUBLIC_OR_PRIVATE_MESSAGE == "PRIVATE" && x.CONFERENCE_ID == conferenceId) .Where(x => x.DELETED == false || x.DELETED == null) .OrderByDescending(x => x.FROM_DATE).ToPagedList(page, pageSize); var listMessage = new List <MessageResponse>(); int size = list.Count; for (int i = 0; i < size; i++) { var item = list[i]; var itemLater = list[i > 1 ? i - 1 : i]; DateTime?dt = item.FROM_DATE; DateTime?dtLater = itemLater.FROM_DATE; if (dt.HasValue && dtLater.HasValue) { var accountSend = db.ACCOUNTs.SingleOrDefault(x => x.UserName == item.UserName); var msg = new MessageResponse(); msg.MESSAGE_FEED_ID = item.MESSAGE_FEED_ID; msg.MESSAGE_CONTENT = item.MESSAGE_CONTENT; msg.IsToDay = DateTimeFormater.CheckIsToday(dt.Value); msg.TimeFormat = DateTimeFormater.GetTimeAgo(dt.Value); msg.Time = dt; msg.UserName = item.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 = new AccountModel().GetUserByUserName(item.UserName).Image; msg.FULL_NAME_PERSON_SEND = Utils.GetFullName(item.CURRENT_FIRST_NAME, item.CURRENT_MIDDLE_NAME, item.CURRENT_LAST_NAME); msg.RECIPIENT_MESSAGING_GROUP_ID_1 = item.RECIPIENT_MESSAGING_GROUP_ID_1; msg.RECIPIENT_MESSAGING_GROUP_NAME_1 = item.RECIPIENT_MESSAGING_GROUP_NAME_1; msg.RECIPIENT_MESSAGING_GROUP_NAME_EN_1 = item.RECIPIENT_MESSAGING_GROUP_NAME_EN_1; msg.IS_MESSAGE_GROUP = true; if (i > 0) { listMessage[i - 1].IsMoreThanOneDay = DateTimeFormater.CheckMoreThanOneDay(dtLater.Value, dt.Value); } listMessage.Add(msg); } } return(ResponseSuccess(StringResource.Success, listMessage)); }
public HttpResponseMessage ListPhotoFeed(string userName, decimal conferenceId, int page, int pageSize) { var model = new NewFeedModel(); var photoFeeds = model.getListPhotoFeed(conferenceId, page, pageSize); var result = new List <PhotoResponse>(); foreach (PhotoFeed item in photoFeeds) { var itemFeed = new PhotoResponse(); itemFeed.Date = item.Date; itemFeed.ListFeed = new List <ActivityFeed>(); foreach (MESSAGE_FEED feed in item.ListFeed) { var account = new AccountModel().GetUserByUserName(feed.UserName); var f = new ActivityFeed(); f.MESSAGE_FEED_ID = feed.MESSAGE_FEED_ID; f.UserName = feed.UserName; f.PERSON_ID = account.PERSON_ID; f.CURRENT_LAST_NAME = feed.CURRENT_LAST_NAME; f.CURRENT_MIDDLE_NAME = feed.CURRENT_MIDDLE_NAME; f.CURRENT_FIRST_NAME = feed.CURRENT_FIRST_NAME; f.REPLYING_TO_MESSAGE_FEED_ID = feed.REPLYING_TO_MESSAGE_FEED_ID; f.MESSAGE_CONTENT = feed.MESSAGE_CONTENT; f.ATTACHED_PHOTO_FILENAME = feed.ATTACHED_PHOTO_FILENAME; f.ATTACHED_PHOTO_NOTE = feed.ATTACHED_PHOTO_NOTE; f.ATTACHED_PHOTO_LONGITUDE = feed.ATTACHED_PHOTO_LONGITUDE; f.ATTACHED_PHOTO_LATITUDE = feed.ATTACHED_PHOTO_LATITUDE; f.Image = account.Image; f.Time = DateTimeFormater.GetTimeAgo(feed.FROM_DATE.Value); f.FROM_DATE = feed.FROM_DATE; f.THRU_DATE = feed.THRU_DATE; f.ListComment = model.getListActivityFeedComment(feed.MESSAGE_FEED_ID); f.IS_LIKED = model.checkIsLiked(userName, feed.MESSAGE_FEED_ID); f.ListLike = model.listLike(feed.MESSAGE_FEED_ID); itemFeed.ListFeed.Add(f); } result.Add(itemFeed); } return(ResponseSuccess(StringResource.Success, result)); }
public HttpResponseMessage NewFeedDetail(int MESSAGE_FEED_ID, string userName) { var account = new AccountModel().GetUserByUserName(userName); if (account == null) { return(ResponseFail(StringResource.Account_does_not_exist)); } else { var model = new NewFeedModel(); var result = db.MESSAGE_FEED.Find(MESSAGE_FEED_ID); if (result != null) { var activityFeed = new ActivityFeed(); activityFeed.MESSAGE_FEED_ID = result.MESSAGE_FEED_ID; activityFeed.UserName = result.UserName; activityFeed.MESSAGE_CONTENT = result.MESSAGE_CONTENT; activityFeed.CURRENT_LAST_NAME = result.CURRENT_LAST_NAME; activityFeed.CURRENT_FIRST_NAME = result.CURRENT_FIRST_NAME; activityFeed.REPLYING_TO_MESSAGE_FEED_ID = result.REPLYING_TO_MESSAGE_FEED_ID; activityFeed.ATTACHED_PHOTO_FILENAME = result.ATTACHED_PHOTO_FILENAME; activityFeed.ATTACHED_PHOTO_NOTE = result.ATTACHED_PHOTO_NOTE; activityFeed.ATTACHED_PHOTO_LONGITUDE = result.ATTACHED_PHOTO_LONGITUDE; activityFeed.ATTACHED_PHOTO_LATITUDE = result.ATTACHED_PHOTO_LATITUDE; activityFeed.Time = DateTimeFormater.GetTimeAgo(result.FROM_DATE.Value); activityFeed.Image = account.Image; activityFeed.FROM_DATE = result.FROM_DATE; activityFeed.THRU_DATE = result.THRU_DATE; activityFeed.ListComment = model.getListActivityFeedComment(MESSAGE_FEED_ID); activityFeed.ListLike = model.listLike(MESSAGE_FEED_ID); activityFeed.IS_LIKED = model.checkIsLiked(userName, MESSAGE_FEED_ID); return(ResponseSuccess(StringResource.Success, activityFeed)); } else { return(ResponseFail(StringResource.Can_not_load_detail)); } } }
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)); } }
public HttpResponseMessage SendMessage([FromBody] Chat chat) { if (chat != null) { try { var accountSend = db.ACCOUNTs.SingleOrDefault(x => x.UserName == chat.data.UserName); var accountRecive = db.ACCOUNTs.SingleOrDefault(x => x.UserName == chat.data.RECIPIENT_UserName_1); var conference = db.CONFERENCEs.SingleOrDefault(x => x.CONFERENCE_ID == chat.data.CONFERENCE_ID); var manage = new ManageDeviceModel().GetDeviceUserName(chat.data.RECIPIENT_UserName_1); if (accountSend == null) { return(ResponseFail(StringResource.Account_does_not_exist)); } else if (accountRecive == null) { return(ResponseFail(StringResource.Account_does_not_exist)); } else if (conference == null) { return(ResponseFail(StringResource.Conference_do_not_exist)); } else if (manage == null) { return(ResponseFail(StringResource.Account_has_not_been_logged)); } else if (String.IsNullOrEmpty(manage.DEVICE_TOKEN)) { return(ResponseFail(StringResource.Account_has_not_been_logged)); } else { string deviceId = manage.DEVICE_TOKEN; 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"; /*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_UserName_1 = chat.data.RECIPIENT_UserName_1; messageFeed.RECIPIENT_CURRENT_LAST_NAME_1 = accountRecive.CURRENT_LAST_NAME; messageFeed.RECIPIENT_CURRENT_MIDDLE_NAME_1 = accountRecive.CURRENT_MIDDLE_NAME; messageFeed.RECIPIENT_CURRENT_FIRST_NAME_1 = accountRecive.CURRENT_FIRST_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_UserName_1 = messageFeed.RECIPIENT_UserName_1; msg.FULL_NAME_PERSON_RECIVE = Utils.GetFullName(messageFeed.RECIPIENT_CURRENT_FIRST_NAME_1, messageFeed.RECIPIENT_CURRENT_MIDDLE_NAME_1, messageFeed.RECIPIENT_CURRENT_LAST_NAME_1); msg.IS_MESSAGE = true; 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)); } } } catch (Exception) { return(ResponseFail(StringResource.Sorry_an_error_has_occurred)); } } else { return(ResponseFail(StringResource.Data_not_received)); } }