public ActionResult Create(StoreActivity dto) { var storeIds = Request.Params["StoreIds"]; var memberTypes = Request.Params["MemberTypes"]; var onlyOncePerMember = Request.Params["OnlyOncePerMember"]; if (onlyOncePerMember != null && onlyOncePerMember == "on") { dto.OnlyOncePerMember = true; } else { dto.OnlyOncePerMember = false; } if (dto.MinConsume < dto.DiscountMoney) { return(Json(new OperationResult(OperationResultType.Error, "折扣金额不可高于最低消费金额"))); } dto.StoreIds = storeIds; dto.MemberTypes = memberTypes; dto.OperatorId = AuthorityHelper.OperatorId; var result = _storeActivityContract.Insert(dto); return(Json(result)); }
/// <summary> /// 载入创建数据 /// </summary> /// <returns></returns> public ActionResult Create() { var memberTypeList = _memberTypeContract.SelectList(string.Empty); memberTypeList.Add(new SelectListItem() { Text = "非会员", Value = "-1" }); ViewBag.MemberType = memberTypeList; var activity = new StoreActivity(); return(PartialView(activity)); }
public async Task StoreDailyLeaderboardsAsync( IEnumerable <DailyLeaderboard> leaderboards, CancellationToken cancellationToken) { using (var operation = telemetryClient.StartOperation <RequestTelemetry>("Store daily leaderboards")) { try { using (var activity = new StoreActivity(Log, "daily leaderboards")) { var rowsAffected = await storeClient.BulkUpsertAsync(leaderboards, cancellationToken).ConfigureAwait(false); activity.Report(rowsAffected); } using (var activity = new StoreActivity(Log, "players")) { var players = leaderboards .SelectMany(l => l.Entries) .Select(e => e.SteamId) .Distinct() .Select(s => new Player { SteamId = s }); var options = new BulkUpsertOptions { UpdateWhenMatched = false }; var rowsAffected = await storeClient.BulkUpsertAsync(players, options, cancellationToken).ConfigureAwait(false); activity.Report(rowsAffected); } using (var activity = new StoreActivity(Log, "replays")) { var replays = leaderboards .SelectMany(l => l.Entries) .Where(e => e.ReplayId != null) .Select(e => e.ReplayId.Value) .Distinct() .Select(r => new Replay { ReplayId = r }); var options = new BulkUpsertOptions { UpdateWhenMatched = false }; var rowsAffected = await storeClient.BulkUpsertAsync(replays, options, cancellationToken).ConfigureAwait(false); activity.Report(rowsAffected); } using (var activity = new StoreActivity(Log, "daily entries")) { var entries = leaderboards.SelectMany(e => e.Entries); var rowsAffected = await storeClient.BulkUpsertAsync(entries, cancellationToken).ConfigureAwait(false); activity.Report(rowsAffected); } operation.Telemetry.Success = true; } catch (Exception) when(operation.Telemetry.MarkAsUnsuccessful()) { } } }