using FLY.Thick.FilmCasting.Common;
using FObjBase;
using FObjBase.Reflect;
using System.Collections.Generic;
using System.ComponentModel;

namespace FLY.Thick.FilmCasting.IService
{


    /// <summary>
    /// 
    /// </summary>
    public interface IFilmCastingProfileService:INotifyPropertyChanged
    {
        [PropertyPush]
        FilmCastingProfileParam Param { get; }

        /// <summary>
        /// 应用 & 保存
        /// </summary>
        void Apply(FilmCastingProfileParam param);

        /// <summary>
        /// 获取产品列表, 返回类型为 List&lt;string&gt;
        /// </summary>
        /// <param name="asyncDelegate"></param>
        /// <param name="asyncContext"></param>
        [Call(typeof(List<string>))]
        void GetList(AsyncCBHandler asyncDelegate, object asyncContext);

        /// <summary>
        /// 删除指定产品
        /// </summary>
        /// <param name="productname"></param>
        void Del(string productname);

        /// <summary>
        /// 读取指定产品
        /// </summary>
        /// <param name="productname"></param>
        /// <param name="asyncDelegate"></param>
        /// <param name="asyncContext"></param>
        [Call(typeof(FilmCastingProfileParam))]
        void Read(string productname, AsyncCBHandler asyncDelegate, object asyncContext);
    }
}
