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 ApplyParam(FilmCastingProfileParam param);


        /// <summary>
        /// 应用 & 保存 其它参数
        /// </summary>
        void Apply();
        /// <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);

        /// <summary>
        /// 自动下辊条件 平均值变化 10um
        /// </summary>
        double RollDown_AvgChanged { get; set; }
        /// <summary>
        /// 自动下辊条件 膜宽度变化 100mm
        /// </summary>
        double RollDown_FilmWidthChanged { get; set; }
        /// <summary>
        /// 自动下辊条件 生产长度 大于 10000m
        /// </summary>
        double RollDown_FilmLength { get; set; }
        /// <summary>
        /// 自动下辊条件 生产时间 2小时
        /// </summary>
        double RollDown_TimeoutHour { get; set; }
        /// <summary>
        /// 自动下辊条件 停止时间 大于 10min
        /// </summary>
        double RollDown_StopTimeMin { get; set; }

        
    }
}
