示例#1
0
        public IActionResult UpdateRecordViewByName(string Name, string ViewName, [FromBody]JObject submitObj)
        {
            RecordViewResponse response = new RecordViewResponse();

            InputRecordView view = new InputRecordView();

            Type inputViewType = view.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
            {
                view = InputRecordView.Convert(submitObj);
            }
            catch (Exception e)
            {
                return DoBadRequestResponse(response, "Input object is not in valid format! It cannot be converted.", e);
            }

            return DoResponse(entMan.UpdateRecordView(Name, view));
        }
示例#2
0
        public IActionResult PatchRecordViewByName(string Name, string ViewName, [FromBody]JObject submitObj)
        {
            RecordViewResponse response = new RecordViewResponse();
            Entity entity = new Entity();
            InputRecordView view = new InputRecordView();

            try
            {
                DbEntity storageEntity = DbContext.Current.EntityRepository.Read(Name);
                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>();

                RecordView updatedView = entity.RecordViews.FirstOrDefault(v => v.Name == ViewName);
                if (updatedView == null)
                {
                    response.Timestamp = DateTime.UtcNow;
                    response.Success = false;
                    response.Message = "View with such Name does not exist!";
                    return DoBadRequestResponse(response);
                }
                view = updatedView.MapTo<InputRecordView>();

                Type inputViewType = view.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);

                InputRecordView inputView = InputRecordView.Convert(submitObj);

                foreach (var prop in submitObj.Properties())
                {
                    if (prop.Name.ToLower() == "name")
                        view.Name = inputView.Name;
                    if (prop.Name.ToLower() == "label")
                        view.Label = inputView.Label;
                    if (prop.Name.ToLower() == "title")
                        view.Title = inputView.Title;
                    if (prop.Name.ToLower() == "default")
                        view.Default = inputView.Default;
                    if (prop.Name.ToLower() == "system")
                        view.System = inputView.System;
                    if (prop.Name.ToLower() == "weight")
                        view.Weight = inputView.Weight;
                    if (prop.Name.ToLower() == "cssclass")
                        view.CssClass = inputView.CssClass;
                    if (prop.Name.ToLower() == "type")
                        view.Type = inputView.Type;
                    if (prop.Name.ToLower() == "regions")
                        view.Regions = inputView.Regions;
                    if (prop.Name.ToLower() == "sidebar")
                        view.Sidebar = inputView.Sidebar;
                    if (prop.Name.ToLower() == "iconname")
                        view.IconName = inputView.IconName;
                    if (prop.Name.ToLower() == "dynamichtmltemplate")
                        view.DynamicHtmlTemplate = inputView.DynamicHtmlTemplate;
                    if (prop.Name.ToLower() == "datasourceurl")
                        view.DataSourceUrl = inputView.DataSourceUrl;
                    if (prop.Name.ToLower() == "actionitems")
                        view.ActionItems = inputView.ActionItems;
                    if (prop.Name.ToLower() == "servicecode")
                        view.ServiceCode = inputView.ServiceCode;
                }
            }
            catch (Exception e)
            {
                return DoBadRequestResponse(response, "Input object is not in valid format! It cannot be converted.", e);
            }

            return DoResponse(entMan.UpdateRecordView(entity, view));
        }