internal IFacadeUpdateResult <GridRowData> SaveGridRow(GridRowData row) { ArgumentValidator.IsNotNull("row", row); FacadeUpdateResult <GridRowData> result = new FacadeUpdateResult <GridRowData>(); IGridRowService service = UnitOfWork.GetService <IGridRowService>(); GridRow instance = RetrieveOrNew <GridRowData, GridRow, IGridRowService>(result.ValidationResult, row.Id); if (result.IsSuccessful) { // Grid cells if (instance.IsNew) { instance.ReferenceId = row.ReferenceId; instance.GridId = row.GridId; instance.Sort = row.Sort; // Save row first var saveRowQuery = service.Save(instance); // Then save cells foreach (GridCellData newValue in row.Cells) { GridCell child = instance.Cells.AddNewBo(); child.GridColumnId = newValue.GridColumnId; child.ValueText = newValue.ValueText; child.ValueHtml = newValue.ValueHtml; child.ValueInt = newValue.ValueInt; child.ValueDate = newValue.ValueDate; child.ValueUrl = newValue.ValueUrl; } } else { foreach (GridCellData newValue in row.Cells) { GridCell child = instance.Cells.SingleOrDefault(o => object.Equals(o.GridColumnId, newValue.GridColumnId)); if (child != null) { child.GridColumnId = newValue.GridColumnId; child.ValueText = newValue.ValueText; child.ValueHtml = newValue.ValueHtml; child.ValueInt = newValue.ValueInt; child.ValueDate = newValue.ValueDate; child.ValueUrl = newValue.ValueUrl; } else { AddError(result.ValidationResult, "GridCellCannotBeFound"); } } } var saveQuery = service.Save(instance); result.AttachResult(instance.RetrieveData <GridRowData>()); result.Merge(saveQuery); } return(result); }
internal IFacadeUpdateResult <GridRowData> DeleteGridRow(object instanceId) { ArgumentValidator.IsNotNull("instanceId", instanceId); FacadeUpdateResult <GridRowData> result = new FacadeUpdateResult <GridRowData>(); IGridRowService service = UnitOfWork.GetService <IGridRowService>(); var query = service.Retrieve(instanceId); if (query.HasResult) { GridRow instance = query.ToBo <GridRow>(); var saveQuery = instance.Delete(); result.Merge(saveQuery); } else { AddError(result.ValidationResult, "GridRowCannotBeFound"); } return(result); }