private void AddChallenge(ChallengeDetailsDto dto) { var entity = mapper.Map <Challenge>(dto); entity.CreationDate = DateTimeOffset.Now; entity.EditionDate = DateTimeOffset.Now; entity.Club = db.Clubs.Find(dto.ClubId); entity.Author = db.Athletes.Find(dto.AuthorId); entity.ChallengeActivityTypes = new List <ChallengeActivityType>(); foreach (var activityTypeId in dto.ActivityTypesIds) { entity.ChallengeActivityTypes.Add(new ChallengeActivityType { ChallengeId = entity.Id, ActivityTypeId = activityTypeId }); } db.Challenges.Add(entity); }
public async Task AddOrEditChallenge(ChallengeDetailsDto dto) { if (dto.Id != default) { this.EditChallenge(dto); } else { this.AddChallenge(dto); } await db.SaveChangesAsync(); if (dto.Id != default) { await this.UpdateChallengeRank(dto.Id); } }
private void EditChallenge(ChallengeDetailsDto dto) { var entity = db.Challenges.Find(dto.Id); mapper.Map(dto, entity); entity.EditionDate = DateTimeOffset.Now; entity.Club = db.Clubs.Find(dto.ClubId); entity.Author = db.Athletes.Find(dto.AuthorId); if (entity.ChallengeActivityTypes.Any()) { entity.ChallengeActivityTypes.Clear(); } foreach (var activityTypeId in dto.ActivityTypesIds) { entity.ChallengeActivityTypes.Add(new ChallengeActivityType { ChallengeId = entity.Id, ActivityTypeId = activityTypeId }); } }