/// <summary>
 ///     根据指定编号获取一个简单Campagin实体
 /// </summary>
 /// <param name="userId">用户编号</param>
 /// <param name="campaignId">广告活动编号</param>
 /// <returns>返回执行后的结果</returns>
 public IExecuteResult <CampaignSimpleData> GetCampaignSimpleById(uint userId, ulong campaignId)
 {
     if (userId == 0)
     {
         return(ExecuteResult <CampaignSimpleData> .Fail(SystemErrors.Malformed, "#Illegal user id"));
     }
     if (campaignId == 0)
     {
         return(ExecuteResult <CampaignSimpleData> .Fail(SystemErrors.Malformed, "#Illegal campaignId id"));
     }
     try
     {
         //获取参数的值
         object[]  parameterValues = new object[] { campaignId, userId };
         DataTable dt = _slaveDB.SpExecuteTable(SpName.SpGetCampaignSimpleByCampaignId, new[] { "CampaignID", "Creator" }, parameterValues);
         if (dt.Rows.Count == 0)
         {
             return(ExecuteResult <CampaignSimpleData> .Fail(SystemErrors.NotFound, SpName.SpGetCampaignSimpleByCampaignId + ":Executed count = 0"));
         }
         CampaignSimpleData campaign = _convertorSimple.ConvertToDomain(dt.Rows[0]);
         return(ExecuteResult <CampaignSimpleData> .Succeed(campaign));
     }
     catch (Exception ex)
     {
         _tracing.Error(ex, null);
         return(ExecuteResult <CampaignSimpleData> .Fail(SystemErrors.Unknown, ex.Message));
     }
 }
        /// <summary>
        ///     将关系型数据转化成领域对象
        /// </summary>
        /// <param name="dataRow">关系型数据对象</param>
        /// <returns>领域对象实例</returns>
        public CampaignSimpleData ConvertToDomain(DataRow dataRow)
        {
            if (dataRow == null)
            {
                throw new ArgumentNullException("dataRow");
            }
            if (Convert.IsDBNull(dataRow["StartDate"]))
            {
                throw new ArgumentNullException();
            }

            CampaignSimpleData campaignSimpleData = new CampaignSimpleData();

            campaignSimpleData.Status              = (AdStatus)byte.Parse(dataRow["Status"].ToString());
            campaignSimpleData.DailyBudget         = decimal.Parse(dataRow["DailyBudget"].ToString());
            campaignSimpleData.RemainingBudget     = decimal.Parse(dataRow["RemainingBudget"].ToString());
            campaignSimpleData.MediaTypeId         = uint.Parse(dataRow["MediaTypeId"].ToString());
            campaignSimpleData.Name                = (string)dataRow["Name"];
            campaignSimpleData.AccountId           = ulong.Parse(dataRow["AccountId"].ToString());
            campaignSimpleData.CampaignId          = ulong.Parse(dataRow["CampaignID"].ToString());
            campaignSimpleData.DeliveryRemainingAd = dataRow["DeliveryRemainingAd"].ToString() == "1";
            campaignSimpleData.BidType             = (BidTypes)byte.Parse(dataRow["BidType"].ToString());
            campaignSimpleData.StartDate           = ((MySqlDateTime)dataRow["StartDate"]).GetDateTime();
            campaignSimpleData.EndDate             = Convert.IsDBNull(dataRow["EndDate"]) ? (DateTime?)null : ((MySqlDateTime)dataRow["EndDate"]).GetDateTime();
            campaignSimpleData.CreateDate          = ((MySqlDateTime)dataRow["CreateDate"]).GetDateTime();
            campaignSimpleData.WaterMark           = byte.Parse(dataRow["WaterMark"].ToString()) == 0x01;
            campaignSimpleData.AdSource            = (AdSourceTypes)byte.Parse(dataRow["AdSource"].ToString());

            return(campaignSimpleData);
        }