Пример #1
0
 /// <summary>This method is for grouping all conditions that follow, if openGroup is set to false then it closes the group, if true it opens a new grouping
 /// <example>example:
 /// <code>
 /// var plan = _GeneralDataRepository.GetWhere<Plan>(new List<GeneralDataParameter> {
 ///         new GeneralDataParameter("Date",date),
 ///         new GeneralDataParameter(true, DataParameterType.Or) <- this is the start of a group and will have an 'OR' before it opens
 ///            new GeneralDataParameter("Id",1)
 ///            new GeneralDataParameter("Id",2)
 ///            new GeneralDataParameter("Id",3)
 ///         new GeneralDataParameter(false) <- this is the end of the group
 ///     })?.FirstOrDefault();
 /// </code>
 /// gets records that match a date or Id 1, 2 or 3:
 /// </example>
 /// </summary>
 public GeneralDataParameter(string field, object value, DataConditional conditional = DataConditional.EqualTo, DataParameterType multiConditionType = DataParameterType.And)
 {
     Field              = field;
     Value              = value;
     Conditional        = conditional;
     MultiConditionType = multiConditionType;
 }
Пример #2
0
        public IEnumerable <T> GetWhere <T>(Dictionary <string, object> parameters, DataConditional conditional = DataConditional.EqualTo) where T : IOrmGenerated
        {
            var sb = new StringBuilder();

            sb.AppendLine("WHERE ");
            var  sqlParams  = new List <SqlParameter>();
            bool first      = true;
            int  paramIndex = 0;

            Sanitise(parameters);
            foreach (var o in parameters)
            {
                var paramName = $"sqlParam_{paramIndex}";
                if (conditional == DataConditional.NotNull || conditional == DataConditional.IsNull)
                {
                    sb.AppendLine($"{(first ? "" : " AND ")} [{o.Key}] {conditional.GetDataConditional()} ");
                }
                else
                {
                    sb.AppendLine($"{(first ? "" : " AND ")} [{o.Key}] {conditional.GetDataConditional()} @{paramName.Replace(" ", "")} ");
                    sqlParams.Add(new SqlParameter($"@{paramName.Replace(" ", "")}", o.Value));
                }
                first = false;
                paramIndex++;
            }

            using (var rep = new SqlRepository(_Configuration, _Logger))
                return(rep.ExecuteSql <T>(sb.ToString(), sqlParams) ?? new List <T>());
        }
Пример #3
0
 public IEnumerable <T> GetWhere <T>(string field, object value, DataConditional conditional = DataConditional.EqualTo) where T : IOrmGenerated
 {
     Sanitise(field);
     using (var rep = new SqlRepository(_Configuration, _Logger))
         if (conditional == DataConditional.NotNull || conditional == DataConditional.IsNull)
         {
             return(rep.ExecuteSql <T>($"WHERE [{field}] {conditional.GetDataConditional()}", new List <SqlParameter>()) ?? new List <T>());
         }
         else
         {
             return(rep.ExecuteSql <T>($"WHERE [{field}] {conditional.GetDataConditional()} @{field}", new List <SqlParameter> {
                 new SqlParameter($"@{field}", value)
             }) ?? new List <T>());
         }
 }
Пример #4
0
 public T GetSingle <T>(string field, object value, DataConditional conditional = DataConditional.EqualTo) where T : IOrmGenerated
 {
     using (var rep = new SqlRepository(_Configuration, _Logger))
     {
         Sanitise(field);
         if (conditional == DataConditional.NotNull || conditional == DataConditional.IsNull)
         {
             var sql = $"WHERE [{field}] {conditional.GetDataConditional()}";
             var ret = rep.ExecuteSqlSingle <T>(sql, new List <SqlParameter>());
             return(ret);
         }
         else
         {
             var sql = $"WHERE [{field}] {conditional.GetDataConditional()} @{field}";
             var ret = rep.ExecuteSqlSingle <T>(sql, new List <SqlParameter> {
                 new SqlParameter($"@{field}", value)
             });
             return(ret);
         }
     }
 }
Пример #5
0
        public static string GetDataConditional(this DataConditional cond)
        {
            var conditionals = new string[] { "=", ">", "<", ">=", "<=", "<>", "IS NOT NULL", "IS NULL", "IN" };

            return(conditionals[(int)cond]);
        }