private void quanLyTaiKhoanToolStripMenuItem_Click(object sender, EventArgs e) { lblTitle.Text = "Quản lý tài khoản"; UCUser uc = new UCUser(); addControlToPanel(uc); }
private void barBtnQuanLyTaiKhoan_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { XtraUserControl xtraUserControl = new UCUser(); xtraUserControl.Name = barBtnQuanLyTaiKhoan.Name + "UControl"; xtraUserControl.Text = barBtnQuanLyTaiKhoan.Caption; xtraUserControl.Dock = DockStyle.Fill; lblCurrent.Caption = "Quản lý tài khoản"; addTab(xtraUserControl); }
/// <summary> /// 更新一个AdGroup /// </summary> /// <param name="userId">用户编号</param> /// <param name="accountId">账户编号</param> /// <param name="adGroup">需要更新的AdGroup</param> /// <param name="user">UC用户信息</param> /// <returns>返回执行后的结果</returns> /// <exception cref="ArgumentNullException">参数不能为空</exception> public IExecuteResult Update(uint userId, ulong accountId, AdGroup adGroup, UCUser user) { if (adGroup == null) { throw new ArgumentNullException("adGroup"); } try { //获取参数的值 object[] parameterValues = new object[] { adGroup.CampaignId, accountId, adGroup.AdGroupId, userId }; //验证CampaignId、AccountId、AdGroup从属关系 DataTable dt = _slaveDB.SpExecuteTable(SpName.SpIsNotExistByAccountIdAndCampaignIdAndAdGroupId, ParametersObject.IsNotExistByAccountIdAndCampaignIdAndAdGroupId, new object[] { accountId, adGroup.CampaignId, adGroup.AdGroupId, userId }); if (dt.Rows.Count == 0) { return(ExecuteResult.Fail(SystemErrors.NotFound, SpName.SpIsNotExistByAccountIdAndCampaignIdAndAdGroupId + ":Executed count = 0")); } //check publish id. if (!string.IsNullOrEmpty(adGroup.PublishId)) { string[] subIds = adGroup.PublishId.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries); foreach (string subId in subIds) { dt = _slaveDB.SpExecuteTable(SpName.SpGetAppByPublishId, ParametersObject.GetAppByPublishId, new object[] { subId }); if (dt.Rows.Count == 0) { return(ExecuteResult.Fail(SystemErrors.NotFound, string.Format("#There isn't any records indicated that this publish id: {0} is valid.", subId))); } } } dt = _slaveDB.SpExecuteTable(SpName.SpGetAdGroupByAdGroupId, ParametersObject.CheckAndGetAdGroup, parameterValues); if (dt.Rows.Count == 0) { return(ExecuteResult.Fail(SystemErrors.NotFound, SpName.SpGetAdGroupByAdGroupId + ":Executed count = 0")); } //check account type. DataTable accountTypeDt = _slaveDB.SpExecuteTable(SpName.SpGetAccountTypeFromAccountDetail, ParametersObject.GetAccountTypeFromAccountDetail, new object[] { accountId }); if (accountTypeDt.Rows.Count == 0) { return(ExecuteResult.Fail(SystemErrors.NotFound, "#There isn't any accout accords current condition: AccountId: " + accountId)); } AccountTypes accountTypes = (AccountTypes)byte.Parse(accountTypeDt.Rows[0]["AccountTypeID"].ToString()); #region Different Login Platform Logical. UASToken token; if (!UASToken.TryParse(user.Token, out token)) { return(ExecuteResult.Fail(SystemErrors.AuthoriztionFail, "#Sadly, We cannot parse currently user's login token correctly.")); } if (token.LoginType == LoginTypes.WebSiteLogin) { adGroup.PricePolicy.DevPrice = decimal.Parse(dt.Rows[0]["AcBidPrice"].ToString()); } #endregion if (decimal.Parse(dt.Rows[0]["AcBidPrice"].ToString()) != adGroup.PricePolicy.DevPrice) { if (!user.IsAdministrator || accountTypes == AccountTypes.MediaAccount) { return(ExecuteResult.Fail(SystemErrors.BusinessObjIsNotSupported, "#Cannot update AcBidPrice field value when you were under the Administrator permission!!!")); } } #region Details Validation. uint dbAdContentId = (uint)(int)dt.Rows[0]["AdContentID"]; string dbITunesApId = Convert.IsDBNull(dt.Rows[0]["ITunesAppID"]) ? null : dt.Rows[0]["ITunesAppID"].ToString(); if (adGroup.ActionType != 0) { if (dbAdContentId < 2 || (dbAdContentId == 5 && adGroup.ITunesAppId != null)) { return(ExecuteResult.Fail(SystemErrors.BusinessObjIsNotSupported, "#Cannot pass details validation.")); } if (adGroup.ContentType.AdContentId != 7 && adGroup.ContentType.AdContentId != 8) { //AdContentID = 2,DeviceCategory的范围在2,3,4,5,6,7之内 //AdContentID = 3,DeviceCategory的范围在2,4,5,7之内 //AdContentID = 4,DeviceCategory的范围在3,6之内 //AdContentID = 5,DeviceCategory只能是8 string[] reqMsgDeviceCategory = adGroup.DeviceCategory.Split(','); if (reqMsgDeviceCategory.Any(t => MidiatorGlobal.DeviceCategory[dbAdContentId.ToString()].Contains(t) == false)) { return(ExecuteResult.Fail(SystemErrors.BusinessObjIsNotSupported, "#Cannot pass details validation.")); } //AdContentID等于5的时候,ITunesAppID不能传值 if (dbAdContentId == 5 && !string.IsNullOrEmpty(adGroup.ITunesAppId.ToString())) { return(ExecuteResult.Fail(SystemErrors.BusinessObjIsNotSupported, "#Cannot pass details validation.")); } } } #endregion //修改一条AdGroup的信息 _masterDB.SpExecuteTable(SpName.SpUpdateAdGroup, ParametersObject.UpdateAdGroup, new object[] { dt.Rows[0]["GroupID"] , dt.Rows[0]["CampaignID"] , dt.Rows[0]["AccountID"] , dt.Rows[0]["MediaTypeID"] //cannot update , adGroup.Name , Math.Round(adGroup.BidPrice, 2) , adGroup.PricePolicy.DevPrice //dt.Rows[0]["AcBidPrice"] , adGroup.Status , dt.Rows[0]["DeliveryMode"] //adGroup.DeliveryMode , dt.Rows[0]["Weight"] //adGroup.Weight , dt.Rows[0]["AdActionID"] //cannot update , dt.Rows[0]["AdContentID"] //cannot update , adGroup.Targetings.TimeTargeting //dt.Rows[0]["WeekTimePeriodIDs"] , Convert.IsDBNull(dt.Rows[0]["ThirdPartPlatformID"]) ? 0 : dt.Rows[0]["ThirdPartPlatformID"] //adGroup.ThirdpartyPlatformId , adGroup.Targetings.FrequencyTargeting.MaxClicksEveryDayByDevice , adGroup.Targetings.FrequencyTargeting.MaxImpressionsEveryDayByDevice , adGroup.Targetings.FrequencyTargeting.MaxClicksSevenDaysByDevice , adGroup.Targetings.FrequencyTargeting.MaxImpressionsSevenDaysByDevice , adGroup.Targetings.FrequencyTargeting.MaxClicksEveryDay , adGroup.Targetings.FrequencyTargeting.MaxImpressionsEveryDay , adGroup.Targetings.FrequencyTargeting.MaxClicksPutIn , adGroup.Targetings.FrequencyTargeting.MaxImpressionsPutIn , adGroup.ITunesAppId , userId , adGroup.DeviceCategory , adGroup.NetworkTypes , adGroup.Targetings.DeviceTargeting.GetCatagoryString() , adGroup.Targetings.DeviceTargeting.GetSDKString() , adGroup.Targetings.DeviceTargeting.GetOSString() , adGroup.Targetings.DeviceTargeting.GetOpString() , adGroup.Targetings.DeviceTargeting.GetAppString() , adGroup.ITunesAppCategoryId , adGroup.CPAPrice , adGroup.MaxImpressions , adGroup.MaxClicks , adGroup.MaxPerUserImpressions , adGroup.PublishId , adGroup.Targetings.TagTargeting.GetData(UserTagDirectionTypes.Forward) == null ? null : adGroup.Targetings.TagTargeting.GetData(UserTagDirectionTypes.Forward).Concat() , adGroup.Targetings.TagTargeting.GetData(UserTagDirectionTypes.Backward) == null ? null : adGroup.Targetings.TagTargeting.GetData(UserTagDirectionTypes.Backward).Concat() , adGroup.ITunesBundleId , dt.Rows[0]["DisplayType"] //cannot update }); return(ExecuteResult.Succeed(true)); } catch (Exception ex) { _tracing.Error(ex, null); return(ExecuteResult.Fail(SystemErrors.Unknown, ex.Message)); } }