public async Task <HttpResponseMessage> SelectAll_DR([FromForm] WebApiParams param) { // Claimを取得する。 string userName, roles, scopes, ipAddress; MyBaseAsyncApiController.GetClaims(out userName, out roles, out scopes, out ipAddress); // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( "JsonController", "SelectAll_DR", "SelectAll_DR", param.ddlDap + "%" + param.ddlMode1 + "%" + param.ddlMode2 + "%" + param.ddlExRollback, new MyUserInfo(userName, ipAddress)); // 非同期呼び出し AsyncRetVal asyncRetVal = await this.Call("testInProcess", testParameterValue); object ret = null; if (asyncRetVal.WsErrorInfo != null) { // ランタイムエラー ret = new { ExceptionMSG = asyncRetVal.WsErrorInfo }; } else { TestReturnValue testReturnValue = (TestReturnValue)asyncRetVal.ReturnValue; if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) asyncRetVal.WsErrorInfo = new Dictionary <string, string>(); asyncRetVal.WsErrorInfo["ErrorMessageID"] = testReturnValue.ErrorMessageID; asyncRetVal.WsErrorInfo["ErrorMessage"] = testReturnValue.ErrorMessage; asyncRetVal.WsErrorInfo["ErrorInfo"] = testReturnValue.ErrorInfo; ret = new { ErrorMSG = asyncRetVal.WsErrorInfo }; } else { // 結果(正常系) DataTable dt = (DataTable)testReturnValue.Obj; DataToDictionary d2d = new DataToDictionary( new Dictionary <string, string> { { "c1", "ShipperID" }, { "c2", "CompanyName" }, { "c3", "Phone" } }, "", ""); ret = new { Message = "", Result = d2d.DataTableToDictionaryList(dt) }; } } return(Request.CreateResponse(HttpStatusCode.OK, ret)); }
public async Task <ContentResult> SelectAll_DSQL([FromForm] WebApiParams param) { // Claimを取得する。 string userName, roles, scopes, ipAddress; MyBaseAsyncApiController.GetClaims(out userName, out roles, out scopes, out ipAddress); // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( "JsonController", "SelectAll_DSQL", "SelectAll_DSQL", param.ddlDap + "%" + param.ddlMode1 + "%" + param.ddlMode2 + "%" + param.ddlExRollback, new MyUserInfo(userName, ipAddress)); testParameterValue.OrderColumn = param.orderColumn; testParameterValue.OrderSequence = param.orderSequence; // 非同期呼び出し AsyncRetVal asyncRetVal = await this.Call("testInProcess", testParameterValue); object ret = null; if (asyncRetVal.WsErrorInfo != null) { // ランタイムエラー ret = new { ExceptionMSG = asyncRetVal.WsErrorInfo }; } else { TestReturnValue testReturnValue = (TestReturnValue)asyncRetVal.ReturnValue; if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) asyncRetVal.WsErrorInfo = new Dictionary <string, string>(); asyncRetVal.WsErrorInfo["ErrorMessageID"] = testReturnValue.ErrorMessageID; asyncRetVal.WsErrorInfo["ErrorMessage"] = testReturnValue.ErrorMessage; asyncRetVal.WsErrorInfo["ErrorInfo"] = testReturnValue.ErrorInfo; ret = new { ErrorMSG = asyncRetVal.WsErrorInfo }; } else { // 結果(正常系) DataTable dt = (DataTable)testReturnValue.Obj; DataToDictionary d2d = new DataToDictionary(null, null, null); ret = new { Message = "", Result = d2d.DataTableToDictionaryList(dt) }; } } return(this.Content(JsonConvert.SerializeObject(ret, JSS))); }
private Dictionary <string, IEnumerable <Dictionary <string, object> > > BuildQueryAndRun( IApp app, string name, string stream, bool includeGuid, IContextOfSite context, bool userMayEdit, AppQueryParameters more) { var wrapLog = Log.Call($"name:{name}, stream:{stream}, withModule:{(context as IContextOfBlock)?.Module.Id}"); var query = app.GetQuery(name); if (query == null) { var msg = $"query '{name}' not found"; wrapLog(msg); throw new HttpExceptionAbstraction(HttpStatusCode.NotFound, msg, "query not found"); } var permissionChecker = context.ServiceProvider.Build <AppPermissionCheck>() .ForItem(context, app, query.Definition.Entity, Log); var readExplicitlyAllowed = permissionChecker.UserMay(GrantSets.ReadSomething); var isAdmin = context.User.IsAdmin; // Only return query if permissions ok if (!(readExplicitlyAllowed || isAdmin)) { var msg = $"Request not allowed. User does not have read permissions for query '{name}'"; wrapLog(msg); throw new HttpExceptionAbstraction(HttpStatusCode.Unauthorized, msg, "Request not allowed"); } var serializer = new DataToDictionary(userMayEdit) { WithGuid = includeGuid }; if (stream == AllStreams) { stream = null; } var result = serializer.Convert(query, stream?.Split(','), more?.Guids); wrapLog(null); return(result); }
BuildQueryAndRun(IApp app, string name, string stream, bool includeGuid, IInstanceContext context, ILog log, bool userMayEdit) { var wrapLog = log.Call($"name:{name}, withModule:{context.Container.Id}"); var query = app.GetQuery(name); if (query == null) { var msg = $"query '{name}' not found"; wrapLog(msg); throw new HttpExceptionAbstraction(HttpStatusCode.NotFound, msg, "query not found"); } var permissionChecker = Factory.Resolve <AppPermissionCheck>().ForItem( // new DnnPermissionCheck().ForItem( context, // new DnnContext(new DnnTenant(), new DnnContainer().Init(module, log), new DnnUser()), appIdentity: app, targetItem: query.Definition.Entity, parentLog: log); var readExplicitlyAllowed = permissionChecker.UserMay(GrantSets.ReadSomething); var isAdmin = context.User.IsAdmin; //module != null && DotNetNuke.Security.Permissions // .ModulePermissionController.CanAdminModule(module); // Only return query if permissions ok if (!(readExplicitlyAllowed || isAdmin)) { var msg = $"Request not allowed. User does not have read permissions for query '{name}'"; wrapLog(msg); throw new HttpExceptionAbstraction(HttpStatusCode.Unauthorized, msg, "Request not allowed"); } var serializer = new DataToDictionary(userMayEdit) { WithGuid = includeGuid }; var result = serializer.Convert(query, stream?.Split(',')); wrapLog(null); return(result); }
private static Dictionary <string, IEnumerable <Dictionary <string, object> > > BuildQueryAndRun(IApp app, string name, string stream, bool includeGuid, ModuleInfo module, ILog log, IBlockBuilder blockBuilder) { var wrapLog = log.Call($"name:{name}, withModule:{module?.ModuleID}"); var query = app.GetQuery(name); if (query == null) { var msg = $"query '{name}' not found"; wrapLog(msg); throw HttpErr(HttpStatusCode.NotFound, "query not found", msg); } var permissionChecker = new DnnPermissionCheck(log, targetItem: query.Definition.Entity, instance: new DnnContainer(module), appIdentity: app); var readExplicitlyAllowed = permissionChecker.UserMay(GrantSets.ReadSomething); var isAdmin = module != null && DotNetNuke.Security.Permissions .ModulePermissionController.CanAdminModule(module); // Only return query if permissions ok if (!(readExplicitlyAllowed || isAdmin)) { var msg = $"Request not allowed. User does not have read permissions for query '{name}'"; wrapLog(msg); throw HttpErr(HttpStatusCode.Unauthorized, "Request not allowed", msg); } var serializer = new DataToDictionary(blockBuilder?.UserMayEdit ?? false) { WithGuid = includeGuid }; var result = serializer.Convert(query, stream?.Split(',')); wrapLog(null); return(result); }
public async Task <ContentResult> SelectAll_DT([FromForm] WebApiParams param) { // Claimを取得する。 string userName, roles, scopes, ipAddress; MyBaseAsyncApiController.GetClaims(out userName, out roles, out scopes, out ipAddress); // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( "JsonController", "SelectAll_DT", "SelectAll_DT", param.ddlDap + "%" + param.ddlMode1 + "%" + param.ddlMode2 + "%" + param.ddlExRollback, new MyUserInfo(userName, ipAddress)); // 非同期呼び出し AsyncRetVal asyncRetVal = await this.Call("testInProcess", testParameterValue); object ret = null; if (asyncRetVal.WsErrorInfo != null) { // ランタイムエラー ret = new { ExceptionMSG = asyncRetVal.WsErrorInfo }; } else { TestReturnValue testReturnValue = (TestReturnValue)asyncRetVal.ReturnValue; if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) asyncRetVal.WsErrorInfo = new Dictionary <string, string>(); asyncRetVal.WsErrorInfo["ErrorMessageID"] = testReturnValue.ErrorMessageID; asyncRetVal.WsErrorInfo["ErrorMessage"] = testReturnValue.ErrorMessage; asyncRetVal.WsErrorInfo["ErrorInfo"] = testReturnValue.ErrorInfo; ret = new { ErrorMSG = asyncRetVal.WsErrorInfo }; } else { // 結果(正常系) DataTable dt = (DataTable)testReturnValue.Obj; // 一部、DataToDictionaryのテストコード DataToDictionary d2d = null; List <Dictionary <string, string> > list = null; d2d = new DataToDictionary( new Dictionary <string, string>() { { "ShipperID", "_ShipperID" }, { "CompanyName", "_CompanyName" }, { "Phone", "_Phone" } }, null, null); list = d2d.DataTableToDictionaryList(dt); Debug.WriteLine(ObjectInspector.Inspect(list)); d2d = new DataToDictionary(null, null, null); list = d2d.DataTableToDictionaryList(dt); Debug.WriteLine(ObjectInspector.Inspect(list)); ret = new { Message = "", Result = list }; } } return(this.Content(JsonConvert.SerializeObject(ret, JSS))); }
public OldDataToDictionaryWrapper(bool userMayEdit) { _converter = new DataToDictionary(userMayEdit); }