Esempio n. 1
0
 /// <summary>
 /// 创建或修改活动
 /// </summary>
 /// <param name="input"></param>
 /// <returns></returns>
 public async Task CreateOrUpdateCampaignAsync(CampaignEditDto input)
 {
     if (input.Id.HasValue)
     {
         await UpdateCampaignAsync(input);
     }
     else
     {
         input.Status = PlanState.Creat;
         await CreateCampaignAsync(input);
     }
 }
Esempio n. 2
0
 /// <summary>
 /// 创建活动
 /// </summary>
 /// <param name="input"></param>
 /// <returns></returns>
 protected async Task CreateCampaignAsync(CampaignEditDto input)
 {
     var model = input.MapTo <Campaign>();
     await _campaignAppService.InsertAsync(model);
 }
Esempio n. 3
0
        /// <summary>
        /// 修改活动信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        protected async Task UpdateCampaignAsync(CampaignEditDto input)
        {
            var entity = await _campaignAppService.GetAsync(input.Id.Value);

            await _campaignAppService.UpdateAsync(input.MapTo(entity));
        }
Esempio n. 4
0
        public async Task <ActionResult <CampaignDto> > EditCampaign([FromRoute] string campaignId, [FromBody] CampaignEditDto dto)
        {
            CampaignEditDtoValidator validator = new CampaignEditDtoValidator();
            ValidationResult         result    = await validator.ValidateAsync(dto);

            if (result.IsValid)
            {
                var userId = User.Claims
                             .Single(p => p.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier").Value;
                var administrator = await _dbContext.Administrators
                                    .AsNoTracking()
                                    .SingleOrDefaultAsync(x => x.ApplicationUserId == userId);

                #region 驗證

                if (!administrator.AdministratorConfirmed)
                {
                    return(Problem(title: "禁止修改", detail: "管理員尚未驗證", statusCode: 403));
                }

                #endregion

                var entity = await _dbContext.Campaigns
                             .SingleOrDefaultAsync(x => x.CampaignId == campaignId);

                if (entity == null)
                {
                    return(NotFound());
                }
                var updateEntity = _mapper.Map(dto, entity);
                _dbContext.Campaigns.Update(updateEntity);
                await _dbContext.SaveChangesAsync();

                var routeValues = new { campaignId = updateEntity.CampaignId };
                var returnDto   = _mapper.Map <CampaignDto>(updateEntity);
                return(CreatedAtAction(nameof(GetCampaign), routeValues, returnDto));
            }
            return(BadRequest(result.Errors));
        }