示例#1
0
        public void Distribute(int publicationItemID)
        {
            BLL.DistributionHub.IDistributionHub distributionHub = InProcFactory.CreateInstance <BLL.DistributionHub.DistributionHub, BLL.DistributionHub.IDistributionHub>();

            try
            {
                Entities.PublicationEntities.PublicationItem publicationItem = distributionHub.PopulatePublicationItem(publicationItemID);

                HelperClasses.Output.ThrowIfFailed(publicationItem != null, string.Format("Could not load item {0}", publicationItemID.ToString()));

                bool isItemPublishable = distributionHub.IsItemPublishable(publicationItem);

                if (isItemPublishable)
                {
                    publicationItem.Status = 1;
                    HelperClasses.Output.ThrowIfFailed(distributionHub.SaveItem(publicationItem), string.Format("Could not set queued status for item {0} published status.", publicationItemID.ToString()));

                    HelperClasses.Output.ThrowIfFailed(PublishIt(publicationItemID), string.Format("Could not stream to destination: {0}", publicationItemID.ToString()));

                    publicationItem.Status = 2;
                    HelperClasses.Output.ThrowIfFailed(distributionHub.SaveItem(publicationItem), string.Format("Could not set item {0} published status.", publicationItemID.ToString()));
                }
            }
            catch (Exception ex)
            {
                HelperClasses.Output.ThrowIfFailed(false, ex.Message);
            }
            finally
            {
                InProcFactory.CloseProxy(distributionHub);
            }

            //Life is good, so let the transaction commit and be published.
        }
示例#2
0
        public static Entities.PublicationEntities.PublicationItem GetPublicationItem(int publicationItemID)
        {
            DAL.Utilities.Helper helper = new DAL.Utilities.Helper(_connectionString);
            Entities.PublicationEntities.PublicationItem publicationItem = new Entities.PublicationEntities.PublicationItem();

            SqlCommand command = new SqlCommand();

            command.CommandTimeout = 10;
            command.CommandType    = CommandType.StoredProcedure;
            command.CommandText    = "GetPublicationItem";

            command.Parameters.Add("@PublicationItemID", System.Data.SqlDbType.Int).Value = publicationItemID;

            DataTable dataTable = helper.GetDataTable(command);

            if (dataTable.Rows.Count == 0)
            {
                publicationItem = null;
            }
            else
            {
                publicationItem = DAL.PublicationDAL.PublicationItemEntityTransformer.ConvertRowToPublicationItem(dataTable.Rows[0]);
            }

            return(publicationItem);
        }
示例#3
0
        public Entities.PublicationEntities.PublicationItem PopulatePublicationItem(int publicationItemId)
        {
            Entities.PublicationEntities.PublicationItem publicationItem = null;

            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Suppress))
            {
                publicationItem = DAL.PublicationDAL.PublicationItem.GetPublicationItem(publicationItemId);

                scope.Complete();
            }

            return(publicationItem);
        }
示例#4
0
        public bool SaveItem(Entities.PublicationEntities.PublicationItem publicationItem)
        {
            #region Just a bit of output to show what's going on...

            string message = string.Empty;

            switch (publicationItem.Status)
            {
            case -1:
                message = "Cancelled: " + publicationItem.PublicationItemID.ToString();
                break;

            case 0:
                message = "Default: " + publicationItem.PublicationItemID.ToString();
                break;

            case 1:
                message = "Queued: " + publicationItem.PublicationItemID.ToString();
                break;

            case 2:
                message = "Published: " + publicationItem.PublicationItemID.ToString();
                break;

            default:
                message = "Unknown: " + publicationItem.PublicationItemID.ToString();
                break;
            }

            HelperClasses.Output.WriteMessage(message);

            #endregion

            bool saved = false;

            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Suppress))
            {
                saved = DAL.PublicationDAL.PublicationItem.SavePublicationItem(publicationItem);
                scope.Complete();
            }

            return(saved);
        }
示例#5
0
        public static bool SavePublicationItem(Entities.PublicationEntities.PublicationItem publicationItem)
        {
            bool result = false;

            SqlCommand command = new SqlCommand();

            command.CommandTimeout = 10;
            command.CommandType    = CommandType.StoredProcedure;
            command.CommandText    = "SavePublicationItem";

            command.Parameters.Add("@PublicationItemID", System.Data.SqlDbType.Int).Value = publicationItem.PublicationItemID;
            command.Parameters.Add("@PublicationTaskID", System.Data.SqlDbType.Int).Value = publicationItem.PublicationTaskID;
            command.Parameters.Add("@Name", System.Data.SqlDbType.NVarChar).Value         = publicationItem.Name;
            command.Parameters.Add("@Status", System.Data.SqlDbType.Int).Value            = publicationItem.Status;

            DAL.Utilities.Helper helper = new DAL.Utilities.Helper(_connectionString);
            result = helper.ExecuteCommand(command);

            command.Dispose();

            return(result);
        }
示例#6
0
        public static Entities.PublicationEntities.PublicationItem CreatePublicationItem(Entities.PublicationEntities.PublicationItem publicationItem)
        {
            string sql = string.Empty;

            sql  = @"INSERT INTO PublicationTaskItem (PublicationTaskID, Name, Status) ";
            sql += @"VALUES (@PublicationTaskID, @Name, @Status);";
            sql += @"SELECT CAST(SCOPE_IDENTITY() AS INT)";

            try
            {
                SqlCommand command = new SqlCommand(sql);
                command.CommandText = sql;

                command.Parameters.Add("@PublicationTaskID", System.Data.SqlDbType.Int).Value = publicationItem.PublicationTaskID;
                command.Parameters.Add("@Name", System.Data.SqlDbType.NVarChar).Value         = publicationItem.Name;
                command.Parameters.Add("@Status", System.Data.SqlDbType.Int).Value            = publicationItem.Status;

                DAL.Utilities.Helper helper = new DAL.Utilities.Helper(_connectionString);
                int publicationItemID       = helper.ExecuteCommandScalar(command);

                if (publicationItemID > 0)
                {
                    publicationItem.PublicationItemID = publicationItemID;
                }
                else
                {
                    publicationItem = null;
                }
            }
            catch (Exception ex)
            {
                string errorMessage = ex.Message;
                publicationItem = null;
            }

            return(publicationItem);
        }
示例#7
0
 public bool IsItemPublishable(Entities.PublicationEntities.PublicationItem publicationItem)
 {
     return(publicationItem.Status == 0 || publicationItem.Status == 1);
 }