public object PersistValidation(PersistValidationRequest request) { // Variables. var result = default(object); var rootId = CoreConstants.System.Root.ToInvariantString(); var validationsRootId = GuidHelper.GetGuid(ValidationConstants.Id); var parentId = GuidHelper.GetGuid(request.ParentId); var kindId = GuidHelper.GetGuid(request.KindId); // Catch all errors. try { // Parse or create the validation ID. var validationId = string.IsNullOrWhiteSpace(request.ValidationId) ? Guid.NewGuid() : GuidHelper.GetGuid(request.ValidationId); // Get the ID path. var parent = parentId == Guid.Empty ? null : Entities.Retrieve(parentId); var path = parent == null ? new[] { validationsRootId, validationId } : parent.Path.Concat(new[] { validationId }).ToArray(); // Create validation. var validation = new Validation() { KindId = kindId, Id = validationId, Path = path, Name = request.ValidationName, Alias = request.ValidationAlias, Data = JsonHelper.Serialize(request.Data) }; // Persist validation. Persistence.Persist(validation); // Variables. var fullPath = new[] { rootId } .Concat(path.Select(x => GuidHelper.GetString(x))) .ToArray(); // Success. result = new { Success = true, Id = GuidHelper.GetString(validationId), Path = fullPath }; } catch(Exception ex) { // Error. LogHelper.Error<ValidationsController>(PersistValidationError, ex); result = new { Success = false, Reason = UnhandledError }; } // Return result. return result; }
public object PersistValidation(PersistValidationRequest request) { // Variables. var result = default(object); var rootId = CoreConstants.System.Root.ToInvariantString(); var validationsRootId = GuidHelper.GetGuid(ValidationConstants.Id); var parentId = GuidHelper.GetGuid(request.ParentId); var kindId = GuidHelper.GetGuid(request.KindId); // Catch all errors. try { // Parse or create the validation ID. var validationId = string.IsNullOrWhiteSpace(request.ValidationId) ? Guid.NewGuid() : GuidHelper.GetGuid(request.ValidationId); // Get the ID path. var parent = parentId == Guid.Empty ? null : Entities.Retrieve(parentId); var path = parent == null ? new[] { validationsRootId, validationId } : parent.Path.Concat(new[] { validationId }).ToArray(); // Create validation. var validation = new Validation() { KindId = kindId, Id = validationId, Path = path, Name = request.ValidationName, Alias = request.ValidationAlias, Data = JsonHelper.Serialize(request.Data) }; // Persist validation. Persistence.Persist(validation); // Variables. var fullPath = new[] { rootId } .Concat(path.Select(x => GuidHelper.GetString(x))) .ToArray(); // Success. result = new { Success = true, Id = GuidHelper.GetString(validationId), Path = fullPath }; } catch (Exception ex) { // Error. LogHelper.Error <ValidationsController>(PersistValidationError, ex); result = new { Success = false, Reason = UnhandledError }; } // Return result. return(result); }