Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }