public MessageApiModel Post(MessageApiModel mess) { var result = _business.CreateMessage(ApiTranslators.Translate <MessageApiModel, MessageDTO>(mess)); EasyShoppingHub.PushToUser(result.Sent, result, null); return(ApiTranslators.Translate <MessageDTO, MessageApiModel>(result)); }
public IHttpActionResult PostMessage([FromBody] MessageApiModel model) { if (!ModelState.IsValid) { return(BadRequest()); } Message message = new Message() { DateTime = model.DateTime, Message1 = model.Message, MId = model.MId, UserId = model.UserId }; message = db.Messages.Add(message); try { db.SaveChanges(); model = new MessageApiModel() { DateTime = message.DateTime, Message = message.Message1, MId = message.MId, UserId = message.UserId }; } catch (Exception) { return(StatusCode(HttpStatusCode.ExpectationFailed)); } return(Ok(model)); }
public static TModel FromConversation <TModel>(Conversation conversation) where TModel : ConversationApiModel, new() { var model = new TModel(); model.Id = conversation.Id; model.TenantId = conversation.TenantId; model.Profiles = conversation.Profiles.Select(x => ProfileApiModel.FromProfile(x)).ToList(); model.Messages = conversation.Messages.Select(x => MessageApiModel.FromMessage(x)).ToList(); return(model); }
public ActionResult Post([FromBody] MessageApiModel message) { if (message == null) { return(new BadRequestResult()); } var id = _dataService.SaveMessage(message); Task.Run(() => SimulateSendingToNotificationService(id)); return(new JsonResult(id)); }
public IActionResult Message([FromBody] MessageApiModel message) { var response = _helloWorldManager.AddMessage(_mapper.Map <MessageDomainModel>(message)); if (response == 0) { return(BadRequest()); } else { return(Ok()); } }
public IHttpActionResult Get(long id) { Message message = db.Messages.Find(id); if (message == null) { return(NotFound()); } MessageApiModel model = new MessageApiModel() { DateTime = message.DateTime, Message = message.Message1, MId = message.MId, UserId = message.UserId }; return(Ok(model)); }
public string SaveMessage(MessageApiModel message) { string result; using (var db = new LiteDatabase(_connectionString)) { var collection = db.GetCollection <MessageModel>(Name); collection.EnsureIndex(x => x.Id); var id = collection.Insert(new MessageModel { Recipients = message.Recipients, Subject = message.Subject, Body = message.Body, IsSent = true }); result = id.AsString; } return(result); }
private async Task PingRequest(HttpContext context, WebSocket socket) { var buffer = new byte[600 * 1024]; WebSocketReceiveResult result = await socket.ReceiveAsync(new ArraySegment <byte>(buffer), CancellationToken.None); string received = Encoding.Default.GetString(buffer, 0, result.Count); string[] splits = received.Split(' '); string eventIdStr = splits[0]; ObjectId eventId = new ObjectId(eventIdStr); ObjectId userId = new ObjectId(JwtUtil.GetUserIdFromToken("Bearer " + splits[1])); string userName = MongoUtil.GetUser(userId).Name; if (chatRooms.ContainsKey(eventIdStr)) { chatRooms[eventIdStr].Add(socket); } else { chatRooms.AddOrUpdate(eventIdStr, new ConcurrentBag <WebSocket> { socket }, (string x, ConcurrentBag <WebSocket> y) => { return(null); }); } while (!result.CloseStatus.HasValue) { result = await socket.ReceiveAsync(new ArraySegment <byte>(buffer), CancellationToken.None); received = Encoding.Default.GetString(buffer, 0, result.Count); if (received == "") { continue; } MessageModel msg = new MessageModel { Message = received, UserId = userId, EventId = eventId, DateSent = DateTime.Now }; MongoUtil.SaveMessage(msg); MessageApiModel msgApi = msg.getMessageApiModel(userName); string toSend = msgApi.Message + "!#|||#!" + msgApi.DateSent + "!#|||#!" + msgApi.userName; Encoding.ASCII.GetBytes(toSend, 0, toSend.Length, buffer, 0); foreach (WebSocket ws in chatRooms[eventIdStr]) { if (ws != socket) { if (ws.State == WebSocketState.Open) { ws.SendAsync(new ArraySegment <byte>(buffer, 0, toSend.Length), result.MessageType, result.EndOfMessage, CancellationToken.None); } } } } await socket.CloseAsync(result.CloseStatus.Value, result.CloseStatusDescription, CancellationToken.None); }
public async Task Invoke(HttpContext context) { try { await _next(context); } catch (HttpResponseException) { throw; } catch (Exception error) { var response = context.Response; response.ContentType = "application/json; charset=utf-8"; var desctiption = new MessageApiModel { Message = error.Message }; if (error is BadImageFormatException) { desctiption.Message = _resourceManager.GetString("BadImageFormatException"); } else if (error is FormatException) { desctiption.Message = _resourceManager.GetString("FormatException"); } else if (error is ArgumentNullException) { desctiption.Message = _resourceManager.GetString("ArgumentNullException"); } var details = new ErrorDetails { ErrorId = Guid.NewGuid().ToString(), RequestPath = context.Request.Path.Value, EndpointPath = context.GetEndpoint()?.ToString(), TimeStamp = DateTime.Now, Message = desctiption.Message }; var jsonOptions = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver(), Formatting = Formatting.Indented }; string result = null; switch (error) { case UserIsDeletedException _: case InvalidOperationException _: response.StatusCode = (int)HttpStatusCode.Conflict; break; case DirectoryNotFoundException _: case FileNotFoundException _: case KeyNotFoundException _: case NotFoundException _: response.StatusCode = (int)HttpStatusCode.NotFound; break; case ArgumentNullException _: case ArgumentOutOfRangeException _: case BadImageFormatException _: case ArgumentException _: case FormatException _: case SecurityTokenException _: case BadRequestException _: response.StatusCode = (int)HttpStatusCode.BadRequest; break; default: response.StatusCode = (int)HttpStatusCode.InternalServerError; result = JsonConvert.SerializeObject(details, jsonOptions); break; } if (string.IsNullOrWhiteSpace(result)) { result = JsonConvert.SerializeObject(desctiption, jsonOptions); } await response.WriteAsync(result); } }