public DataTable KendoPost([FromBody]JsonRequestKendoDatasource value) { JsonRequestDb oJson=new JsonRequestDb(); oJson.pars = new Dictionary<string, string>(); // hozzáadom az oJson-hoz a pars objektumot if (value.pars != null && value.pars.Count != 0) { foreach (KeyValuePair<string,string> par in value.pars) { oJson.pars.Add(par.Key, par.Value); } } // hozzáadom az oJson-hoz az extraPars objektumot (ez a máshova nem tartozó paraméterek listája) if (value.extraPars != null && value.extraPars.Count !=0) { foreach (KeyValuePair<string, string> par in value.extraPars) { if (oJson.pars.ContainsKey(par.Key)) { throw new ApplicationException($"A paraméter ({par.Key}) a par objektumban és a szülő objektumban is létezik."); } oJson.pars.Add(par.Key, par.Value); } } addTokenToPars(oJson); using (_sql = new Sql(getConnectionString(value.db), BaseApiController.logInfoFactory())) { Dictionary<string, string> pars = oJson.pars; try { if (value.log == null || !value.log.enabled) _sql.logger.DisabledOnce(); using (DataTable dt = _sql.spExecuters[value.action](ref pars)) { if (dt !=null && dt.Rows.Count > 0) return dt; // az update, create esetén vissza kell adni a megkapott értékeket if (dt != null) { var row = dt.NewRow(); foreach (DataColumn col in dt.Columns) { if (oJson.pars.ContainsKey(col.ColumnName)) row[col.ColumnName] = oJson.pars[col.ColumnName]; } dt.Rows.Add(row); } return dt; } } catch (SqlException ex) { if (ex.State == (byte) Sql.stateNumber.NoPrivilege) { var errorResponse = Request.CreateErrorResponse(System.Net.HttpStatusCode.Unauthorized, "Ehhez a művelethez nincs jogosultságod. Jelentkezz be és próbáld újra"); throw new HttpResponseException(errorResponse); } throw; } } }
public DataTable Post([FromBody]object value) { JsonRequestDb oJson; try { oJson = JsonConvert.DeserializeObject<JsonRequestDb>(value.ToString()); } catch (Exception) { throw new Exception("Nem sikerült értelmezni a JSON adatot. A helyes formátum pl: {db:'Comforth.Ostomy', action:'list_sessions', returnPar:false, pars:{sid:'0',machineid:'1'}, log:{enabled: true}}"); } addTokenToPars( oJson); using (_sql = new Sql(getConnectionString(oJson.db), BaseApiController.logInfoFactory())) { Dictionary<string, string> pars = oJson.pars; try { if (oJson.log == null || !oJson.log.enabled) _sql.logger.DisabledOnce(); using (DataTable dt = _sql.spExecuters[oJson.action](ref pars)) { return dt; } } catch (SqlException ex) { if (ex.State == (byte)Sql.stateNumber.NoPrivilege) { var errorResponse = Request.CreateErrorResponse(System.Net.HttpStatusCode.Unauthorized, "Ehhez a művelethez nincs jogosultságod. Jelentkezz be és próbáld újra"); throw new HttpResponseException(errorResponse); } throw; } } }
public DataTable Register([FromBody]string value) { JsonRequestDb oJson; try { oJson = JsonConvert.DeserializeObject<JsonRequestDb>(value.ToString()); } catch (Exception) { throw new Exception("Nem sikerült értelmezni a JSON adatot. A helyes formátum pl: {db:'ConnStrName', pars:{UserName:'******', FullName:'Sós András', Email:'*****@*****.**'}, Password:'******'}"); } addTokenToPars( oJson); using (_sql = new Sql(getConnectionString(oJson.db), BaseApiController.logInfoFactory())) { Dictionary<string, string> pars = oJson.pars; try { if (oJson.log == null || !oJson.log.enabled) _sql.logger.DisabledOnce(); using (DataTable dt = _sql.spExecuters["register"](ref pars)) { return dt; } } catch (SqlException ex) { if (ex.State == (byte) Sql.stateNumber.NoPrivilege) { var errorResponse = Request.CreateErrorResponse(System.Net.HttpStatusCode.Unauthorized, "Ehhez a művelethez nincs jogosultságod. Jelentkezz be és próbáld újra"); throw new HttpResponseException(errorResponse); } throw; } } }
public string Logout([FromBody]object value) { JsonRequestDb oJson; try { oJson = JsonConvert.DeserializeObject<JsonRequestDb>(value.ToString()); } catch (Exception) { throw new Exception("Nem sikerült értelmezni a JSON adatot. A helyes formátum pl: {db:'Ostomy',action:'login',pars:{fh:'asos',jsz:'asosasos'}}"); } addTokenToPars( oJson); using (_sql = new Sql(getConnectionString(oJson.db), BaseApiController.logInfoFactory())) { Dictionary<string, string> pars = oJson.pars; if (oJson.log == null || !oJson.log.enabled) _sql.logger.DisabledOnce(); _sql.logout(ref pars); return "OK"; } }
public DataSet Login([FromBody]object value) { JsonRequestDb oJson; try { oJson = JsonConvert.DeserializeObject<JsonRequestDb>(value.ToString()); } catch (Exception) { throw new Exception("Nem sikerült értelmezni a JSON adatot. A helyes formátum pl: {db:'Ostomy',action:'login',pars:{fh:'asos',jsz:'asosasos', domain:'mydomain'}}"); } addTokenToPars( oJson); bool isAD=false, isValid=false; if (oJson.pars.ContainsKey("domain")) { using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, oJson.pars["domain"])) { // validate the credentials isValid = pc!=null && pc.ValidateCredentials(oJson.pars["fh"], oJson.pars["jsz"]); } if (!isValid) return null; isAD = true; } using (_sql = new Sql(getConnectionString(oJson.db), BaseApiController.logInfoFactory())) { Dictionary<string, string> pars = oJson.pars; pars.Add("IP", (Request.GetOwinContext() == null ? "na" : Request.GetOwinContext().Request.RemoteIpAddress)); if (oJson.log == null || !oJson.log.enabled) _sql.logger.DisabledOnce(); using (DataSet ds = _sql.login(ref pars)) { if (ds != null && ds.Tables.Count == 2) { ds.Tables[0].TableName = "token"; ds.Tables[1].TableName = "groups"; } return ds; } } }
public DataSet dtMulti([FromBody]object value) { using (DataSet ds = new DataSet()) { var oJsons = new Dictionary<string, JsonRequestDb>(); try { oJsons = JsonConvert.DeserializeObject<Dictionary<string, JsonRequestDb>>(value.ToString()); } catch (Exception) { try { var Json = JsonConvert.DeserializeObject<JsonRequestDb>(value.ToString()); oJsons.Add("0", Json); } catch (Exception) { throw new Exception("Nem sikerült értelmezni a JSON adatot. A helyes formátum pl: {sessions:{db:'Comforth.Ostomy',action:'list_sessions',pars:{sid:'0',machineid:'1'}}}"); } } foreach (KeyValuePair<string, JsonRequestDb> item in oJsons) { JsonRequestDb oJson = item.Value; addTokenToPars( oJson); using (_sql = new Sql(getConnectionString(oJson.db), BaseApiController.logInfoFactory())) { var pars = oJson.pars; try { if (oJson.log == null || !oJson.log.enabled) _sql.logger.DisabledOnce(); using (DataTable dt = _sql.spExecuters[oJson.action](ref pars)) { dt.TableName = item.Key; ds.Tables.Add(dt); } } catch (SqlException ex) { if (ex.State == (byte) Sql.stateNumber.NoPrivilege) { var errorResponse = Request.CreateErrorResponse(System.Net.HttpStatusCode.Unauthorized, "Ehhez a művelethez nincs jogosultságod. Jelentkezz be és próbáld újra"); throw new HttpResponseException(errorResponse); } throw; } // a pars változót is beleteszem a ds-be külön táblaként. a tábla neve a select tábla neve + "Pars" if (oJson.returnPar) { using (DataTable dtPar = new DataTable(item.Key + "Pars")) { foreach (KeyValuePair<string, string> par in pars) { using (DataColumn col = new DataColumn(par.Key, typeof(string))) { dtPar.Columns.Add(col); } } DataRow rowPars = dtPar.NewRow(); foreach (KeyValuePair<string, string> par in pars) { rowPars[item.Key] = item.Value; } } } } } return ds; } }