/// <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); }