public RecordTreeResponse CreateRecordTree(string entityName, InputRecordTree inputRecordTree) { RecordTreeResponse response = new RecordTreeResponse(); var entityResponse = ReadEntity(entityName); if (!entityResponse.Success) { response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = entityResponse.Message; return response; } else if (entityResponse.Object == null) { response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = "Entity with such Id does not exist!"; return response; } Entity entity = entityResponse.Object; return CreateRecordTree(entity, inputRecordTree); }
public IActionResult PatchRecordTreeByName(string entityName, string treeName, [FromBody]JObject submitObj) { RecordTreeResponse response = new RecordTreeResponse(); Entity entity = new Entity(); InputRecordTree tree = new InputRecordTree(); try { DbEntity storageEntity = DbContext.Current.EntityRepository.Read(entityName); if (storageEntity == null) { response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = "Entity with such Name does not exist!"; return DoBadRequestResponse(response); } entity = storageEntity.MapTo<Entity>(); RecordTree treeToUpdate = entity.RecordTrees.FirstOrDefault(l => l.Name == treeName); if (treeToUpdate == null) { response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = "REcord tree with such Name does not exist!"; return DoBadRequestResponse(response); } tree = treeToUpdate.MapTo<InputRecordTree>(); Type inputListType = tree.GetType(); foreach (var prop in submitObj.Properties()) { int count = inputListType.GetProperties().Where(n => n.Name.ToLower() == prop.Name.ToLower()).Count(); if (count < 1) response.Errors.Add(new ErrorModel(prop.Name, prop.Value.ToString(), "Input object contains property that is not part of the object model.")); } if (response.Errors.Count > 0) return DoBadRequestResponse(response); InputRecordTree inputTree = InputRecordTree.Convert(submitObj); foreach (var prop in submitObj.Properties()) { if (prop.Name.ToLower() == "label") tree.Label = inputTree.Label; if (prop.Name.ToLower() == "default") tree.Default = inputTree.Default; if (prop.Name.ToLower() == "system") tree.System = inputTree.System; if (prop.Name.ToLower() == "depthlimit") tree.DepthLimit = inputTree.DepthLimit; if (prop.Name.ToLower() == "cssclass") tree.CssClass = inputTree.CssClass; if (prop.Name.ToLower() == "iconname") tree.IconName = inputTree.IconName; if (prop.Name.ToLower() == "nodenamefieldid") tree.NodeNameFieldId = inputTree.NodeNameFieldId; if (prop.Name.ToLower() == "nodelabelfieldid") tree.NodeLabelFieldId = inputTree.NodeLabelFieldId; if (prop.Name.ToLower() == "nodeweightfieldid") tree.NodeWeightFieldId = inputTree.NodeWeightFieldId; if (prop.Name.ToLower() == "rootnodes") tree.RootNodes = inputTree.RootNodes; if (prop.Name.ToLower() == "nodeobjectproperties") tree.NodeObjectProperties = inputTree.NodeObjectProperties; } } catch (Exception e) { return DoBadRequestResponse(response, "Input object is not in valid format! It cannot be converted.", e); } var updateResponse = entMan.UpdateRecordTree(entity, tree); return DoResponse(updateResponse); }
private RecordTreeResponse CreateRecordTree(Entity entity, InputRecordTree inputRecordTree) { RecordTreeResponse response = new RecordTreeResponse { Success = true, Message = "The tree was successfully created!", }; if (!inputRecordTree.Id.HasValue) inputRecordTree.Id = Guid.NewGuid(); RecordTree recordTree = inputRecordTree.MapTo<RecordTree>(); try { response.Object = recordTree; response.Errors = ValidateRecordTree(entity, inputRecordTree); recordTree = inputRecordTree.MapTo<RecordTree>(); if (response.Errors.Count > 0) { response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = "The tree was not created. Validation error occurred!"; return response; } entity.RecordTrees.Add(recordTree); DbEntity updatedEntity = entity.MapTo<DbEntity>(); bool result = DbContext.Current.EntityRepository.Update(updatedEntity); if (!result) { Cache.ClearEntities(); response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = "The tree was not created! An internal error occurred!"; return response; } } catch (Exception e) { Cache.ClearEntities(); response.Success = false; response.Object = recordTree; response.Timestamp = DateTime.UtcNow; #if DEBUG response.Message = e.Message + e.StackTrace; #else response.Message = "The tree was not created. An internal error occurred!"; #endif return response; } Cache.ClearEntities(); return ReadRecordTree(entity.Id, recordTree.Id); }
private RecordTreeResponse ReadRecordTree(Entity entity, RecordTree recordTree) { RecordTreeResponse response = new RecordTreeResponse { Success = true, Message = "The list was successfully returned!", }; try { response.Object = recordTree; } catch (Exception e) { response.Timestamp = DateTime.UtcNow; response.Success = false; #if DEBUG response.Message = e.Message + e.StackTrace; #else response.Message = "An internal error occurred!"; #endif return response; } response.Timestamp = DateTime.Now; return response; }
public RecordTreeResponse ReadRecordTree(string entityName, string name) { RecordTreeResponse response = new RecordTreeResponse(); EntityResponse entityResponse = ReadEntity(entityName); if (!entityResponse.Success) { response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = entityResponse.Message; return response; } else if (entityResponse.Object == null) { response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = "Entity with such name does not exist!"; return response; } Entity entity = entityResponse.Object; RecordTree recordTree = entity.RecordTrees.FirstOrDefault(r => r.Name == name); if (recordTree == null) { response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = "Record tree with such Name does not exist!"; return response; } return ReadRecordTree(entity, recordTree); }
public RecordTreeResponse DeleteRecordTree(string entityName, string name) { RecordTreeResponse response = new RecordTreeResponse { Success = true, Message = "The tree was successfully deleted!", }; try { var entityResponse = ReadEntity(entityName); if (!entityResponse.Success) { response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = entityResponse.Message; return response; } else if (entityResponse.Object == null) { response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = "Entity with such Id does not exist!"; return response; } Entity entity = entityResponse.Object; RecordTree recordTree = entity.RecordTrees.FirstOrDefault(l => l.Name == name); if (recordTree == null) { response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = "The tree was not deleted. Validation error occurred!"; response.Errors.Add(new ErrorModel("name", name, "Tree with such Name does not exist!")); return response; } entity.RecordTrees.Remove(recordTree); DbEntity updatedEntity = entity.MapTo<DbEntity>(); bool result = DbContext.Current.EntityRepository.Update(updatedEntity); if (!result) { Cache.ClearEntities(); response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = "The tree was not updated! An internal error occurred!"; return response; } } catch (Exception e) { Cache.ClearEntities(); response.Timestamp = DateTime.UtcNow; response.Success = false; #if DEBUG response.Message = e.Message + e.StackTrace; #else response.Message = "The tree was not deleted. An internal error occurred!"; #endif return response; } Cache.ClearEntities(); response.Timestamp = DateTime.UtcNow; return response; }
public RecordTreeResponse CreateRecordTree(string entityName, InputRecordTree inputRecordTree) { RecordTreeResponse response = new RecordTreeResponse(); IStorageEntity storageEntity = EntityRepository.Read(entityName); if (storageEntity == null) { response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = "Entity with such name does not exist!"; return response; } return CreateRecordTree(storageEntity.MapTo<Entity>(), inputRecordTree); }
public RecordTreeResponse UpdateRecordTree(Entity entity, InputRecordTree inputRecordTree) { RecordTreeResponse response = new RecordTreeResponse { Success = true, Message = "The tree was successfully updated!", }; RecordTree recordTree = inputRecordTree.MapTo<RecordTree>(); try { response.Object = recordTree; response.Errors = ValidateRecordTree(entity, inputRecordTree); recordTree = inputRecordTree.MapTo<RecordTree>(); if (response.Errors.Count > 0) { response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = "The tree was not updated. Validation error occurred!"; return response; } RecordTree treeToUpdate = entity.RecordTrees.FirstOrDefault(r => r.Id == recordTree.Id); if (treeToUpdate.Id == recordTree.Id) entity.RecordTrees.Remove(treeToUpdate); entity.RecordTrees.Add(recordTree); IStorageEntity updatedEntity = entity.MapTo<IStorageEntity>(); bool result = EntityRepository.Update(updatedEntity); if (!result) { response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = "The tree was not updated! An internal error occurred!"; return response; } } catch (Exception e) { response.Success = false; response.Object = recordTree; response.Timestamp = DateTime.UtcNow; #if DEBUG response.Message = e.Message + e.StackTrace; #else response.Message = "The tree was not updated. An internal error occurred!"; #endif return response; } return ReadRecordTree(entity.Id, recordTree.Id); }
public RecordTreeResponse DeleteRecordTree(Guid entityId, Guid id) { RecordTreeResponse response = new RecordTreeResponse { Success = true, Message = "The tree was successfully deleted!", }; try { IStorageEntity storageEntity = EntityRepository.Read(entityId); if (storageEntity == null) { response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = "Entity with such Id does not exist!"; return response; } Entity entity = storageEntity.MapTo<Entity>(); RecordTree recordTree = entity.RecordTrees.FirstOrDefault(v => v.Id == id); if (recordTree == null) { response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = "The tree was not deleted. Validation error occurred!"; response.Errors.Add(new ErrorModel("id", id.ToString(), "Tree with such Id does not exist!")); return response; } entity.RecordTrees.Remove(recordTree); IStorageEntity updatedEntity = entity.MapTo<IStorageEntity>(); bool result = EntityRepository.Update(updatedEntity); if (!result) { response.Timestamp = DateTime.UtcNow; response.Success = false; response.Message = "The tree was not updated! An internal error occurred!"; return response; } } catch (Exception e) { response.Timestamp = DateTime.UtcNow; response.Success = false; #if DEBUG response.Message = e.Message + e.StackTrace; #else response.Message = "The tree was not deleted. An internal error occurred!"; #endif return response; } response.Timestamp = DateTime.UtcNow; return response; }