public async Task CreateAchievement(AchievementCreateDTO Achievement, CancellationToken Cancel)
        {
            if (ModelsValidator.AchievementIsValid((Mapper.Map <AchievementUpdateDTO>(Achievement))))
            {
                var _Achievement = Mapper.Map <Achievement>(Achievement);
                _Achievement.Id = new Guid();
                await UnitOfWork.AchievementRepository.Create(_Achievement, Cancel);

                await UnitOfWork.SaveChangesAsync(Cancel);
            }
            else
            {
                throw new ArgumentException();
            }
        }
        public async Task UpdateAchievement(Guid Id, AchievementUpdateDTO Achievement, CancellationToken Cancel)
        {
            if (ModelsValidator.AchievementIsValid(Achievement))
            {
                if ((await UnitOfWork.AchievementRepository
                     .DbSet.FirstOrDefaultAsync(item => item.Id == Id, Cancel)) == null)
                {
                    throw new ArgumentNullException();
                }

                var _Achievement = await UnitOfWork.AchievementRepository.DbSet.FirstOrDefaultAsync(item => item.Id == Id, Cancel);

                Mapper.Map(Achievement, _Achievement);
                UnitOfWork.AchievementRepository.Update(_Achievement);
                await UnitOfWork.SaveChangesAsync(Cancel);
            }
            else
            {
                throw new ArgumentException();
            }
        }