/// <summary> /// 获取上传结果 /// </summary> /// <param name="context"></param> /// <param name="isImg"></param> /// <returns></returns> private static async Task <LayIMCommonResult> GetUploadResult(HttpContext context, bool isImg) { bool userUseApi = isImg ? LayIMServiceLocator.Options.UIConfig.UseUploadImage : LayIMServiceLocator.Options.UIConfig.UseUploadFile; if (userUseApi == false) { return(LayIMCommonResult.Error("未开启上传接口,非法的请求")); } var uploadResult = await uploader.Value.Upload(context); if (string.IsNullOrEmpty(uploadResult?.FileUrl)) { return(LayIMCommonResult.Error("上传失败")); } object result; if (isImg) { result = new { src = uploadResult.FileUrl }; } else { result = new { src = uploadResult.FileUrl, name = uploadResult.FileName }; } return(LayIMCommonResult.Result(result)); }
/// <summary> /// 获取群员列表 /// </summary> /// <param name="context"></param> /// <returns></returns> private static async Task <LayIMCommonResult> GetGroupMembers(HttpContext context) { if (LayIMServiceLocator.Options.UIConfig.UseGroup == false) { return(LayIMCommonResult.Error("未开启群组接口")); } context.Request.Query.TryGetValue("id", out var groupId); var res = await storage.Value.GetGroupMembers(context.UserId(), groupId); return(LayIMCommonResult.Result(res)); }
public async Task Dispatch(ILayIMDispatcher dispatcher, HttpContext context) { string currentUserId = GetCurrentUserId(context); if (string.IsNullOrEmpty(currentUserId)) { context.Response.ContentType = "application/json;charset=utf-8;"; context.Response.StatusCode = StatusCodes.Status401Unauthorized; await context.Response.WriteAsync(JsonUtil.ToJSON(LayIMCommonResult.Error("Unauthorized"))); return; } //save current user id in http context context.Items.TryAdd(LayIMGlobal.USER_KEY, currentUserId); await dispatcher.Dispatch(context); }
/// <summary> /// 保存聊天消息 /// </summary> /// <param name="context"></param> /// <returns></returns> private static Task <LayIMCommonResult> SaveChatMessage(HttpContext context) { if (LayIMServiceLocator.Options.OtherConfig.SaveMsgAfterSend == false) { return(Task.FromResult(LayIMCommonResult.Error("未开启上传接口,非法的请求"))); } storage.Value.SaveMessage(new Models.Base.LayIMMessageModel { From = context.UserId(), To = context.Request.Form["to"], Type = context.Request.Form["type"], AddTime = DateTime.Now.ToTimestamp(), Msg = context.Request.Form["msg"] }); return(Task.FromResult(LayIMCommonResult.Result(1))); }
private static async Task <LayIMCommonResult> GetChatMessages(HttpContext context) { if (LayIMServiceLocator.Options.UIConfig.UseHistoryPage == false) { return(LayIMCommonResult.Error("未开启历史消息记录接口")); } var query = context.Request.Query; query.TryGetValue("type", out var type); query.TryGetValue("id", out var id); query.TryGetValue("stamp", out var stamp); query.TryGetValue("page", out var page); long.TryParse(stamp, out var timestamp); int.TryParse(page, out var pageInt); var msgs = await storage.Value.GetChatMessages(context.UserId(), id, type, timestamp, pageInt); return(LayIMCommonResult.Result(msgs)); }
/// <summary> /// 获取初始化数据 /// </summary> /// <param name="context"></param> /// <returns></returns> private static async Task <LayIMCommonResult> GetInitData(HttpContext context) { var res = await storage.Value.GetInitData(context.UserId()); return(LayIMCommonResult.Result(res)); }