Exemple #1
0
 public Container(APMCore.Model.Container source) : base(source)
 {
     _pairsLocker = new object();
     _workPairs   = new WorkPairCollection();
     _pairs       = new PairCollection();
     _opacity     = 1;
 }
Exemple #2
0
        /// <summary>
        /// 创建一个Container,其Filter为该实例
        /// </summary>
        /// <param name="containerUID">Container的唯一标识符</param>
        /// <returns>创建的Container</returns>
        public async Task <Container> CreateContainerAsync(long containerUID)
        {
            Container container = await Task.Run(() => {
                APMCore.Model.Container source = new APMCore.Model.Container(containerUID);
                return(new Container(source)
                {
                    FilterUID = FilterUID,
                    Filter = this,
                    DataBase = DataBase
                });
            });

            return(container);
        }
        /// <summary>
        /// 根据Template创建Container实例
        /// </summary>
        /// <param name="containerUID">container的UID</param>
        /// <returns>创建的Container</returns>
        public async Task <Container> MakeInstanceAsync(long containerUID)
        {
            Container container = await Task.Run(() => {
                APMCore.Model.Container source = new APMCore.Model.Container(containerUID)
                {
                    Avatar      = "",
                    Header      = Header,
                    Description = Description,
                    FilterUID   = FilterUID
                };
                return(new Container(source)
                {
                    DataBase = DataBase,
                    Filter = Filter,
                });
            });

            if (!string.IsNullOrEmpty(Avatar))
            {
                await container.SetAvatarAsync(Avatar);
            }

            container.UpdateToSource(UpdateMethod.Insert);

            foreach (IPair pair in Pairs)
            {
                IPair sourcePair = await container.AddPairAsync();

                sourcePair.Title  = pair.Title;
                sourcePair.Detail = pair.Detail;
            }

            container.UpdateToSource(UpdateMethod.Update);

            return(container);
        }