PageModel.SaveAs C# (CSharp) Method

SaveAs() public method

public SaveAs ( dynamic, item, string newId ) : PageModel,
item dynamic,
newId string
return PageModel,
    public PageModel SaveAs(dynamic item, string newId)
    {
        Assert.IsTrue(item != null);
        var oldId = item.Id as string;
        Value = item;
        Value.Id = newId;
        Validate();
        if (HasError) return this;

        if (oldId != newId)
        {
            if (Repository.Exists(newId))
            {
                Errors.Add("Id", string.Format("{0} exisits already.", Value.Id));
            }
            else
            {
                Repository.Delete(oldId);
            }
        }

        if (!HasError) Value.Id = Repository.Save(Value.Id as string, Value);
        return this;
    }

Usage Example

コード例 #1
0
ファイル: PageModelTest.cs プロジェクト: kouweizhong/Rabbit
    public void SaveAs_Should_Validate_New_Id_Exists()
    {
        dynamic data = new ExpandoObject();

        data.Id    = "old-id";
        data.Title = "new title";
        var repository = new Mock();

        repository.Setup("Exists", new object[] { "new-id" }, true); // <-- it should catch this
        var model = new PageModel();

        model.Repository = repository;
        model.SaveAs(data, "new-id");
        Assert.IsTrue(model.HasError);
        repository.Verify();
    }
All Usage Examples Of PageModel::SaveAs