示例#1
0
        public void Publish(int publicationTaskID)
        {
            try
            {
                PublicationTask publicationTask = Proxy.PopulatePublicationTask(publicationTaskID);

                if (publicationTask != null)
                {
                    bool isTaskPublishable = Proxy.IsTaskPublishable(publicationTask);

                    if (isTaskPublishable)
                    {
                        publicationTask.Status = 1;
                        HelperClasses.Output.ThrowIfFailed(Proxy.SaveTask(publicationTask), string.Format("Could not set task {0} queued status.", publicationTaskID));
                        PublishItems(publicationTask);

                        HelperClasses.Output.ThrowIfFailed(Proxy.IsTaskPublished(publicationTask), string.Format("Unpublished items in task {0}.", publicationTaskID));

                        publicationTask.Status = 2;
                        HelperClasses.Output.ThrowIfFailed(Proxy.SaveTask(publicationTask), string.Format("Could not set task {0} published status.", publicationTaskID));
                    }
                }
                else
                {
                    HelperClasses.Output.ThrowIfFailed(false, "Could not populate publication task.");
                }
            }
            catch (Exception ex)
            {
                HelperClasses.Output.ThrowIfFailed(false, ex.Message);
            }

            //Life is good, so let transaction commit
            HelperClasses.Output.WriteMessage(string.Format("Published {0} ", publicationTaskID.ToString()));
        }
示例#2
0
        public bool SaveTask(PublicationTask publicationTask)
        {
            bool saved = false;

            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Suppress))
            {
                saved = DAL.PublicationDAL.PublicationTask.SavePublicationTask(publicationTask);
                scope.Complete();
            }

            return(saved);
        }
示例#3
0
        public bool IsTaskPublished(PublicationTask publicationTask)
        {
            foreach (Entities.PublicationEntities.PublicationItem publicationItem in publicationTask.PublicationItems)
            {
                if (publicationItem.Status != 2) // 2 = Published
                {
                    return(false);
                }
            }

            return(true);
        }
示例#4
0
        public bool IsTaskPublishable(PublicationTask publicationTask)
        {
            if (publicationTask == null)
            {
                return(false);
            }

            if (publicationTask.Status == 0 || publicationTask.Status == 1)
            {
                return(true);
            }

            return(false);
        }
示例#5
0
        public PublicationTask PopulatePublicationTask(int publicationTaskID)
        {
            PublicationTask publicationTask = null;

            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Suppress))
            {
                publicationTask = DAL.PublicationDAL.PublicationTask.GetPublicationTask(publicationTaskID);
                publicationTask.PublicationItems = DAL.PublicationDAL.PublicationItem.GetPublicationItems(publicationTask.PublicationTaskID);

                scope.Complete();
            }

            return(publicationTask);
        }