|
@@ -306,29 +306,36 @@ namespace InABox.Database
|
|
|
|
|
|
if (requiredEntities.Count > 0)
|
|
|
{
|
|
|
+ var sql = string.IsNullOrWhiteSpace(prefix)
|
|
|
+ ? $"select max(cast({prop.Name} as integer)) from {typeof(T).Name.Split('.').Last()}"
|
|
|
+ : $"select max(cast(substr({prop.Name},{prefix.Length+1}) as integer)) from {typeof(T).Name.Split('.').Last()} where {prop.Name} like '{prefix}%'";
|
|
|
+ var result = Provider.List(sql);
|
|
|
+ int.TryParse(result.FirstOrDefault()?.FirstOrDefault()?.ToString() ?? "0", out int newvalue);
|
|
|
|
|
|
- var filter = new Filter<T>(prop.Name).IsGreaterThanOrEqualTo(String.Format("{0}0",prefix))
|
|
|
- .And(prop.Name).IsLessThanOrEqualTo(String.Format("{0}9999999999", prefix));
|
|
|
|
|
|
- var filter2 = autoinc.AutoIncrementFilter();
|
|
|
- if (filter2 != null)
|
|
|
- filter = filter.And(filter2);
|
|
|
-
|
|
|
- var newvalue = 0;
|
|
|
- var row = Provider.Query(
|
|
|
- filter,
|
|
|
- Columns.None<T>().Add(prop.Name),
|
|
|
- new SortOrder<T>(prop.Name, SortDirection.Descending),
|
|
|
- CoreRange.Database(1)
|
|
|
- ).Rows.FirstOrDefault();
|
|
|
- if (row != null)
|
|
|
- {
|
|
|
- var id = row.Get<string>(prop.Name);
|
|
|
- if (!string.IsNullOrWhiteSpace(prefix))
|
|
|
- id = id.Substring(prefix.Length);
|
|
|
- id = new string(id.Where(c => char.IsDigit(c)).ToArray());
|
|
|
- int.TryParse(id, out newvalue);
|
|
|
- }
|
|
|
+ // var filter = new Filter<T>(prop.Name).IsGreaterThanOrEqualTo(String.Format("{0}0",prefix))
|
|
|
+ // .And(prop.Name).IsLessThanOrEqualTo(String.Format("{0}9999999999", prefix));
|
|
|
+ //
|
|
|
+ // var filter2 = autoinc.AutoIncrementFilter();
|
|
|
+ // if (filter2 != null)
|
|
|
+ // filter = filter.And(filter2);
|
|
|
+ //
|
|
|
+ // var newvalue = 0;
|
|
|
+ // var row = Provider.Query(
|
|
|
+ // filter,
|
|
|
+ // Columns.None<T>().Add(prop.Name),
|
|
|
+ // new SortOrder<T>(prop.Name, SortDirection.Descending),
|
|
|
+ // CoreRange.Database(1)
|
|
|
+ // ).Rows.FirstOrDefault();
|
|
|
+ // if (row != null)
|
|
|
+ // {
|
|
|
+ // var id = row.Get<string>(prop.Name);
|
|
|
+ // if (!string.IsNullOrWhiteSpace(prefix))
|
|
|
+ // id = id.Substring(prefix.Length);
|
|
|
+ // id = new string(id.Where(c => char.IsDigit(c)).ToArray());
|
|
|
+ // int.TryParse(id, out newvalue);
|
|
|
+ // }
|
|
|
+ //
|
|
|
|
|
|
foreach (var entity in requiredEntities)
|
|
|
{
|