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)); }
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)); }