Exemple #1
0
        public IActionResult UpdateRecordTreeByName(string entityName, string treeName, [FromBody]JObject submitObj)
        {
            RecordListResponse response = new RecordListResponse();

            InputRecordTree tree = new InputRecordTree();

            Type inputViewType = tree.GetType();

            foreach (var prop in submitObj.Properties())
            {
                int count = inputViewType.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);

            try
            {
                tree = InputRecordTree.Convert(submitObj);
            }
            catch (Exception e)
            {
                return DoBadRequestResponse(response, "Input object is not in valid format! It cannot be converted.", e);
            }

            return DoResponse(entMan.UpdateRecordTree(entityName, tree));
        }
Exemple #2
0
        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);
        }