Ejemplo n.º 1
0
        public Result <PostingItem> Save(PostingItem entity)
        {
            switch (entity.EntityState)
            {
            case ItemState.Added:
                return(_repositoryCommand.Save(entity).Bind(id => _repositoryQuery.GetById(id))
                       .Bind <PostingItem>(item => _serviceDetails.AddItemDetails(item)));

            case ItemState.Modified:
                return(GetById(entity.Id));

            case ItemState.Delete:
                return(Result <PostingItem> .Fail <PostingItem>("Not Implemented Exception on Delete state"));

            case ItemState.Unchanged:
                return(Result <PostingItem> .Fail <PostingItem>("Not Implemented Exception on Unchanged state"));

            default:
                return(Result <PostingItem> .Fail <PostingItem>("Wrong entity state"));
            }
        }