private static string ThrowExceptionSnippet(DenyUserEditInfo info) { return(string.Format( @" if (invalidItem != null) throw new Rhetos.UserException( ""It is not allowed to directly enter {2} property of {0}.{1}."", ""DataStructure:{0}.{1},ID:"" + invalidItem.ID + "",Property:{2}""); ", info.Property.DataStructure.Module.Name, info.Property.DataStructure.Name, info.Property.Name, GetComparedPropertyName(info.Property))); }
private static string CheckChangesOnInsertSnippet(DenyUserEditInfo info) { return(string.Format( @" if (checkUserPermissions) {{ var invalidItem = insertedNew.Where(newItem => newItem.{3} != null).FirstOrDefault(); {4} }} ", info.Property.DataStructure.Module.Name, info.Property.DataStructure.Name, info.Property.Name, GetComparedPropertyName(info.Property), ThrowExceptionSnippet(info))); }
private static string CheckChangesOnUpdateSnippet(DenyUserEditInfo info) { return(string.Format( @" if (checkUserPermissions) {{ var changes = updatedNew.Zip(updated, (newItem, oldItem) => new {{ newItem, oldItem }}); foreach (var change in changes) if (change.newItem.{3} == null && change.oldItem.{3} != null) change.newItem.{3} = change.oldItem.{3}; var invalidItem = changes .Where(change => change.newItem.{3} != null && !change.newItem.{3}.Equals(change.oldItem.{3}) || change.newItem.{3} == null && change.oldItem.{3} != null) .Select(change => change.newItem) .FirstOrDefault(); {4} }} ", info.Property.DataStructure.Module.Name, info.Property.DataStructure.Name, info.Property.Name, GetComparedPropertyName(info.Property), ThrowExceptionSnippet(info))); }