/// <summary> /// Загрузка параметров /// </summary> private void LoadParams(StringCollection paramNames) { if (paramNames.Count < 1) { return; } var parametersStr = Convert.Collection2Str(paramNames).Replace(",", "','"); if (string.IsNullOrWhiteSpace(parametersStr)) { return; } var sqlParams = new Dictionary <string, object> { { "@clid", _clid } }; var dt = DBManager.GetData(string.Format(SQLQueries.q_НастройкиОбщие_Получить, parametersStr), Config.DS_user, CommandType.Text, sqlParams); /* * for (int i = 0; i< dt.Rows.Count; i++) * { * string name = dt.Rows[i]["Параметр"].ToString().Trim(); * string value = dt.Rows[i]["Значение"] == DBNull.Value ? string.Empty : dt.Rows[i]["Значение"].ToString(); * AppParamType paramType = (AppParamType)int.Parse(dt.Rows[i]["ТипПараметра"].ToString()); * _params.Add(new AppParameter(name, value, paramType)); * } */ foreach (DataRow r in dt.Rows) { var dbObj = r["Параметр"]; var name = dbObj.ToString(); dbObj = r["Значение"]; var value = dbObj == DBNull.Value ? string.Empty : dbObj.ToString(); dbObj = r["ТипПараметра"]; var paramType = dbObj == DBNull.Value ? AppParamType.NotSaved : (AppParamType)int.Parse(dbObj.ToString()); //dbObj = r["КодНастройкиКлиента"]; //int clid = dbObj == DBNull.Value ? 0 : (int)dbObj; //В первую очередь добавляем параметры с требуемым _clid //if (clid == _clid) // _params.Add(new AppParameter(name, value, paramType)); //else //{ if (!_params.Exists(p => p.Name == name)) { _params.Add(new AppParameter(name, value, paramType)); } //} } }
/// <summary> /// Кнопка: Сохранить /// </summary> private bool SaveData() { if (string.IsNullOrEmpty(id) || id == "0") { return(false); } var sc = new StringCollection(); Update(sc); if (sc.Count > 0) { var wi = WindowsIdentity.GetCurrent(); var wp = new WindowsPrincipal(wi); if (wp.IsInRole(@"EURO\Domain Admins") /*|| Page.User.IsInRole("TEST\\Programists")*/) { if (Validation()) { var sqlParams = new Dictionary <string, object> { { "@КодСотрудника", id } }; var sql = @"UPDATE Сотрудники SET " + Convert.Collection2Str(sc) + " WHERE КодСотрудника = @КодСотрудника"; DBManager.ExecuteNonQuery(sql, CommandType.Text, Config.DS_user, sqlParams); return(true); } return(false); } if (CurrentUser.HasRole((int)Role.Кадровик) && efStatus.OriginalValue != employee.Status.ToString()) { if (sc.Count > 1) { ShowMessage("Вы можете менять только состояние сотрудника", Resx.GetString("errDoisserWarrning"), MessageStatus.Error); return(false); } var sqlParams = new Dictionary <string, object> { { "@КодСотрудника", id }, { "@Состояние", efStatus.Value } }; try { DBManager.ExecuteNonQuery(SQLQueries.UPDATE_СотрудникСостояние, CommandType.Text, Config.DS_user, sqlParams); } catch (Exception e) { ShowMessage(e.Message, Resx.GetString("errDoisserWarrning"), MessageStatus.Error); return(false); } } else { ShowMessage(Resx.GetString("msgNoAccess"), Resx.GetString("errDoisserWarrning"), MessageStatus.Error); return(false); } } return(true); }
/// <summary> /// Преобразование коллекции к строке с разделителем ',' /// </summary> public static string Collection2Str(IEnumerable <string> col) { return(Convert.Collection2Str(col)); }
/// <summary> /// Получение строки с ID типов документа /// </summary> /// <returns>Строка с ID типов документа</returns> private string GetDocTypeIDsStr() { if (DocTypeParams.Count > 0) { var typeIDs = new StringCollection(); var selectLRSql = "SELECT КодТипаДокумента FROM ТипыДокументов WHERE L >= @L AND R <= @R; "; var selectParentSql = "SELECT КодТипаДокумента FROM ТипыДокументов WHERE Parent = @Parent; "; DocTypeParams.ForEach( type => { var sql = new StringBuilder(); switch (type.QueryType) { case DocTypeQueryType.Equals: typeIDs.Add(type.DocTypeID); break; case DocTypeQueryType.WithChildren: sql.Append(@" DECLARE @L int, @R int; "); sql.AppendFormat(@" SELECT @L = L, @R = R FROM ТипыДокументов WHERE КодТипаДокумента = {0}; ", type.DocTypeID); sql.Append(selectLRSql); break; case DocTypeQueryType.WithSynonyms: sql.AppendFormat(@" DECLARE @Parent int; SELECT @Parent = Parent FROM ТипыДокументов WHERE КодТипаДокумента = {0}; ", type.DocTypeID); sql.Append(selectParentSql); break; case DocTypeQueryType.WithChildrenSynonyms: sql.Append(@" DECLARE @L int, @R int; "); sql.AppendFormat(@" SELECT @L = ISNULL(Pr.L, Ch.L), @R = ISNULL(Pr.R, Ch.R) FROM ТипыДокументов Ch LEFT JOIN ТипыДокументов Pr ON Pr.КодТипаДокумента = Ch.Parent WHERE Ch.КодТипаДокумента = {0}; ", type.DocTypeID); sql.Append(selectLRSql); break; } if (type.QueryType != DocTypeQueryType.Equals) { var dt = new DataTable(); try { dt = DBManager.GetData(sql.ToString(), Config.DS_document); } catch (Exception ex) { Logger.WriteEx(new DetailedException("Ошибка при получении типов документов в DSODoc", ex)); throw ex; } for (var i = 0; i < dt.Rows.Count; i++) { var typeID = dt.Rows[i][0].ToString(); if (!typeIDs.Contains(typeID)) { typeIDs.Add(typeID); } } } } ); return(Convert.Collection2Str(typeIDs)); } return(string.Empty); }
/// <summary> /// Преобразование коллекции к строке с разделителем ',' /// </summary> public static string Collection2Str(StringCollection col) { return(Convert.Collection2Str(col)); }