示例#1
0
 public PublishedReferential(IMultipleActionReferential referential)
 {
     Label       = referential.Label;
     Description = referential.Description;
     FileHash    = referential.Hash;
     //File = referential.CloudFile == null ? null : new PublishedFile(referential.CloudFile);
 }
示例#2
0
        /// <summary>
        /// Supprime un lien référentiel - Action.
        /// </summary>
        /// <param name="referential">Le référentiel.</param>
        /// <param name="action">L'action.</param>
        /// <returns><c>true</c> si la suppression a réussi.</returns>
        public static bool DeleteReferentialActionLink(IMultipleActionReferential referential, KAction action)
        {
            if (referential is Ref1)
            {
                return(Delete(action.Ref1, referential));
            }
            if (referential is Ref2)
            {
                return(Delete(action.Ref2, referential));
            }
            if (referential is Ref3)
            {
                return(Delete(action.Ref3, referential));
            }
            if (referential is Ref4)
            {
                return(Delete(action.Ref4, referential));
            }
            if (referential is Ref5)
            {
                return(Delete(action.Ref5, referential));
            }
            if (referential is Ref6)
            {
                return(Delete(action.Ref6, referential));
            }
            if (referential is Ref7)
            {
                return(Delete(action.Ref7, referential));
            }

            throw new ArgumentOutOfRangeException(nameof(referential));
        }
示例#3
0
        /// <summary>
        /// Obtient un lien référentiel - action.
        /// </summary>
        /// <param name="referential">Le référentiel.</param>
        /// <param name="action">L'action</param>
        /// <returns>Le lien.</returns>
        public static IReferentialActionLink GetReferentialActionLink(IMultipleActionReferential referential, KAction action)
        {
            if (referential is Ref1)
            {
                return(action.Ref1.FirstOrDefault(al => al.Referential == referential));
            }
            if (referential is Ref2)
            {
                return(action.Ref2.FirstOrDefault(al => al.Referential == referential));
            }
            if (referential is Ref3)
            {
                return(action.Ref3.FirstOrDefault(al => al.Referential == referential));
            }
            if (referential is Ref4)
            {
                return(action.Ref4.FirstOrDefault(al => al.Referential == referential));
            }
            if (referential is Ref5)
            {
                return(action.Ref5.FirstOrDefault(al => al.Referential == referential));
            }
            if (referential is Ref6)
            {
                return(action.Ref6.FirstOrDefault(al => al.Referential == referential));
            }
            if (referential is Ref7)
            {
                return(action.Ref7.FirstOrDefault(al => al.Referential == referential));
            }

            throw new ArgumentOutOfRangeException(nameof(referential));
        }
示例#4
0
        /// <summary>
        /// Crée un lien référentiel - Action.
        /// </summary>
        /// <param name="referential">Le référentiel.</param>
        /// <param name="action">L'action</param>
        /// <param name="quantity">La quantité.</param>
        /// <returns>Le lien.</returns>
        public static IReferentialActionLink CreateReferentialActionLink(IMultipleActionReferential referential, KAction action, int quantity)
        {
            IReferentialActionLink al;
            IList list;

            if (referential is Ref1)
            {
                al   = new Ref1Action();
                list = action.Ref1;
            }
            else if (referential is Ref2)
            {
                al   = new Ref2Action();
                list = action.Ref2;
            }
            else if (referential is Ref3)
            {
                al   = new Ref3Action();
                list = action.Ref3;
            }
            else if (referential is Ref4)
            {
                al   = new Ref4Action();
                list = action.Ref4;
            }
            else if (referential is Ref5)
            {
                al   = new Ref5Action();
                list = action.Ref5;
            }
            else if (referential is Ref6)
            {
                al   = new Ref6Action();
                list = action.Ref6;
            }
            else if (referential is Ref7)
            {
                al   = new Ref7Action();
                list = action.Ref7;
            }
            else
            {
                throw new ArgumentOutOfRangeException(nameof(referential));
            }

            al.Action      = action;
            al.Referential = referential;
            al.Quantity    = quantity;

            list.Add(al);

            return(al);
        }
示例#5
0
        /// <summary>
        /// Supprime un lien référentiel - Action.
        /// </summary>
        /// <typeparam name="TActionLink">Le type de lien référentiel - action.</typeparam>
        /// <param name="collection">La collection dans laquelle l'élément doit être supprimé.</param>
        /// <param name="referential">Le référentiel.</param>
        /// <returns><c>true</c> si la suppression a réussi.</returns>
        static bool Delete <TActionLink>(TrackableCollection <TActionLink> collection, IMultipleActionReferential referential, bool cancelChanges = false)
            where TActionLink : IReferentialActionLink, IObjectWithChangeTracker
        {
            TActionLink al = collection.FirstOrDefault(c => c.Referential == referential);

            if (al != null)
            {
                if (cancelChanges)
                {
                    al.Referential.CancelChanges();
                }
                collection.Remove(al);
                if (al.IsMarkedAsAdded)
                {
                    al.MarkAsUnchanged();
                }

                return(true);
            }
            return(false);
        }