// POST api/<controller> public async Task <IHttpActionResult> GetAllTopic() { ResultClassForNonAuth result = new ResultClassForNonAuth(); try { var mm = ApiMaster.GetTopicList(); if (mm.Count > 0) { result.Code = (int)HttpStatusCode.OK; result.Msg = ap.Success; result.Data = mm; } else { result.Code = (int)HttpStatusCode.NonAuthoritativeInformation; result.Msg = ap.CategoryNoData; result.Data = mm; } return(Ok(result)); } catch (Exception ex) { return(Ok(ApiEx.FireException(result, ex))); } }
public dynamic FireException(ResultClassForNonAuth result, Exception ex) { result.Code = (int)HttpStatusCode.InternalServerError; result.Msg = ex.Message; return(result); }
public override void OnMessage(string message) { try { ResultClassForNonAuth result = new ResultClassForNonAuth(); string baseURL = (WebConfigurationManager.AppSettings["WebSiteUrl"]); baseURL += (WebConfigurationManager.AppSettings["userimagepath"]).Replace("~", ""); if (message.Split(',')[1].Split(':').Contains("GroupId")) { var Message = message.Split(',')[2].Split(':')[1]; var UserId = message.Split(',')[0].Split(':')[1]; var GroupId = message.Split(',')[1].Split(':')[1]; int GId = Convert.ToInt32(GroupId); int Uid = Convert.ToInt32(UserId); var groupname = ""; List <WebSocketSessionDb> list = new List <WebSocketSessionDb>(); MessageModel MessagesModel = new MessageModel(); using (LystenEntities db = new LystenEntities()) { groupname = db.Groups.Where(x => x.Id == GId).Select(x => x.Name).FirstOrDefault(); Message ms = new Message() { Body = Message, CreatedDate = DateTime.UtcNow, ParentMessageId = 0, CreatorId = Uid }; db.Messages.Add(ms); db.SaveChanges(); MessageRecipient MR = new MessageRecipient() { RecipientGroupId = GId, RecipientId = null, MessageId = ms.Id, IsRead = false }; db.MessageRecipients.Add(MR); db.SaveChanges(); int gid = Convert.ToInt32(GroupId); list = db.WebSocketSessionDbs.Where(x => x.GroupID == gid).ToList(); var userdataTimeZone = db.User_Master.Where(x => x.Id == Uid).Select(x => x.TimeZone).FirstOrDefault(); var ddd = DateTime.UtcNow; if (userdataTimeZone != null && userdataTimeZone != "") { Instant instant = Instant.FromDateTimeUtc(ms.CreatedDate.Value); IDateTimeZoneProvider timeZoneProvider = DateTimeZoneProviders.Tzdb; var usersTimezoneId = userdataTimeZone; //just an example var usersTimezone = timeZoneProvider[usersTimezoneId]; var usersZonedDateTime = instant.InZone(usersTimezone); ddd = usersZonedDateTime.ToDateTimeUnspecified(); } MessagesModel = new MessageModel() { MessageId = ms.Id, Body = ms.Body, RecipientGroupId = GId, CreatorId = Uid, IsRead = false, CreatedDate = ddd.Date == DateTime.UtcNow.Date ? "Today " + Convert.ToDateTime((ddd)).ToString("HH:mm") : Convert.ToDateTime(ddd).ToString("dd MM yyyy HH:mm"), //CreatedDate = Convert.ToDateTime(ms.CreatedDate).ToString("dd MM yyyy HH:MM"), Image = US.GetFavouriteImage(baseURL, Uid), CreatorName = db.User_Master.Where(y => y.Id == Uid).Select(y => y.FullName).FirstOrDefault() == null ? "" : db.User_Master.Where(y => y.Id == Uid).Select(y => y.FullName).FirstOrDefault(), ParentMessageId = 0, ExpiryDate = System.DateTime.Now, RecipientId = 0 }; result.Code = (int)HttpStatusCode.OK; result.Msg = ap.Success; result.Data = MessagesModel; } var json = new JavaScriptSerializer().Serialize(result); foreach (var item in list) { foreach (var data in clients.Where(x => x.WebSocketContext.SecWebSocketKey == item.SessionId)) { clients.SingleOrDefault(r => ((WebSocketHandler)r).WebSocketContext.SecWebSocketKey == item.SessionId).Send(json); } using (LystenEntities db = new LystenEntities()) { var obj = db.User_Master.Where(x => x.Id == item.UserId.Value).FirstOrDefault(); var sendername = db.User_Master.Where(x => x.Id == Uid).Select(x => x.FullName).FirstOrDefault(); if (obj != null) { if (obj.DeviceToken != null) { try { sendMsgUser(GId, true, obj.DeviceToken, Message, groupname, sendername); } catch { } } } } } } else { var Message = message.Split(',')[2].Split(':')[1]; var UserId = message.Split(',')[0].Split(':')[1]; var ReceiptionId = message.Split(',')[1].Split(':')[1]; int RId = Convert.ToInt32(ReceiptionId); int Uid = Convert.ToInt32(UserId); List <WebSocketSessionDb> list = new List <WebSocketSessionDb>(); MessageModel MessagesModel = new MessageModel(); var SenderFullName = ""; using (LystenEntities db = new LystenEntities()) { SenderFullName = db.User_Master.Where(x => x.Id == Uid).Select(x => x.FullName).FirstOrDefault(); if (!db.MessageRequests.Any(x => x.ToUserId == RId && x.FromUserId == Uid || x.FromUserId == RId && x.ToUserId == Uid)) { MessageRequest M1R = new MessageRequest(); M1R.ToUserId = Convert.ToInt32(RId); M1R.FromUserId = Convert.ToInt32(Uid); M1R.IsAccept = false; M1R.IsReject = false; M1R.IsRequested = true; db.MessageRequests.Add(M1R); db.SaveChanges(); var obj = db.User_Master.Where(x => x.Id == M1R.ToUserId).FirstOrDefault(); if (obj.DeviceToken != null || obj.DeviceToken != "") { try { if (obj.DeviceType == "Android") { Helpers.NotificationHelper.sendMsgUserRequest(obj.Id, obj.DeviceToken, 0, SenderFullName); } else { sendMsgUserRequest(obj.Id, obj.DeviceToken, 0, SenderFullName); } } catch (Exception ex) { CommonServices.ErrorLogging(ex); } } } Message ms = new Message() { Body = Message, CreatedDate = DateTime.UtcNow, ParentMessageId = 0, CreatorId = Uid }; db.Messages.Add(ms); db.SaveChanges(); MessageRecipient MR = new MessageRecipient() { RecipientGroupId = null, RecipientId = RId, MessageId = ms.Id, IsRead = false }; db.MessageRecipients.Add(MR); db.SaveChanges(); list = db.WebSocketSessionDbs.Where(x => x.RecipientId == RId && x.UserId == Uid || (x.RecipientId == Uid && x.UserId == RId)).ToList(); var userdataTimeZone = db.User_Master.Where(x => x.Id == Uid).Select(x => x.TimeZone).FirstOrDefault(); var ddd = DateTime.UtcNow; if (userdataTimeZone != null && userdataTimeZone != "") { Instant instant = Instant.FromDateTimeUtc(ms.CreatedDate.Value); IDateTimeZoneProvider timeZoneProvider = DateTimeZoneProviders.Tzdb; var usersTimezoneId = userdataTimeZone; //just an example var usersTimezone = timeZoneProvider[usersTimezoneId]; var usersZonedDateTime = instant.InZone(usersTimezone); ddd = usersZonedDateTime.ToDateTimeUnspecified(); } try { MessagesModel = new MessageModel() { MessageId = ms.Id, Body = ms.Body, RecipientGroupId = 0, CreatorId = Uid, IsRead = false, CreatedDate = ddd.Date == DateTime.UtcNow.Date ? "Today " + Convert.ToDateTime((ddd)).ToString("HH:mm") : Convert.ToDateTime(ddd).ToString("dd MM yyyy HH:mm"), //CreatedDate = ms.CreatedDate.Value.Date == DateTime.Now.Date ? "Today " + Convert.ToDateTime((ms.CreatedDate.Value)).ToString("HH:mm") : Convert.ToDateTime(ms.CreatedDate.Value).ToString("dd MM yyyy HH:mm"), //CreatedDate = Convert.ToDateTime(ms.CreatedDate).ToString("dd MM yyyy HH:MM"), Image = US.GetFavouriteImage(baseURL, Uid), CreatorName = db.User_Master.Where(y => y.Id == Uid).Select(y => y.FullName).FirstOrDefault() == null ? "" : db.User_Master.Where(y => y.Id == Uid).Select(y => y.FullName).FirstOrDefault(), ParentMessageId = 0, ExpiryDate = System.DateTime.Now, RecipientId = RId }; } catch (Exception ex) { CommonServices.ErrorLogging(ex); } result.Code = (int)HttpStatusCode.OK; result.Msg = ap.Success; result.Data = MessagesModel; } try { var json = new JavaScriptSerializer().Serialize(result); foreach (var item in list) { foreach (var data in clients.Where(x => x.WebSocketContext.SecWebSocketKey == item.SessionId)) { clients.SingleOrDefault(r => ((WebSocketHandler)r).WebSocketContext.SecWebSocketKey == item.SessionId).Send(json); } using (LystenEntities db = new LystenEntities()) { var obj = db.User_Master.Where(x => x.Id == item.RecipientId.Value).FirstOrDefault(); if (obj != null) { //if (obj.DeviceToken != null) //{ // sendMsgEventsssss(item.UserId.Value, obj.DeviceToken, Message, SenderFullName); //} try { if (obj.DeviceToken != null) { if (obj.DeviceType == "Android") { Helpers.NotificationHelper.sendMsgEventsssss(item.UserId.Value, obj.DeviceToken, Message, SenderFullName, MessagesModel.MessageId); } else { sendMsgEventsssss(item.UserId.Value, obj.DeviceToken, Message, SenderFullName); //sendMsgUserRequest(obj.Id, obj.DeviceToken, 0, SenderFullName); } } } catch (Exception ex) { CommonServices.ErrorLogging(ex); } } } } } catch (Exception ex) { CommonServices.ErrorLogging(ex); } } } catch (Exception ex) { CommonServices.ErrorLogging(ex); } }