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. }
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); }
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); }
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); }
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); }
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); }
public bool IsItemPublishable(Entities.PublicationEntities.PublicationItem publicationItem) { return(publicationItem.Status == 0 || publicationItem.Status == 1); }