public async Task DeleteDifficulties()
        {
            // Arrange
            var difficulty = context.Difficulties.FirstOrDefault(d => d.Id == 1);

            // Act
            var result = await sut.Delete(difficulty);

            // Assert
            Assert.That(result.Success, Is.True);
        }
        public async Task <IBaseResult> DeleteDifficulty(int id)
        {
            var result = new BaseResult();

            if (id == 0)
            {
                result.Success = false;
                result.Message = DifficultiesMessages.DifficultiesNotFoundMessage;

                return(result);
            }

            try
            {
                var response = await difficultiesRepository.GetById(id, true);

                if (response.Success)
                {
                    var updateDeleteResponse = await difficultiesRepository.Delete((Difficulty)response.Object);

                    if (updateDeleteResponse.Success)
                    {
                        result.Success = updateDeleteResponse.Success;
                        result.Message = DifficultiesMessages.DifficultyDeletedMessage;

                        return(result);
                    }
                    else if (!updateDeleteResponse.Success && updateDeleteResponse.Exception != null)
                    {
                        result.Success = updateDeleteResponse.Success;
                        result.Message = updateDeleteResponse.Exception.Message;

                        return(result);
                    }
                    else
                    {
                        result.Success = false;
                        result.Message = DifficultiesMessages.DifficultyNotDeletedMessage;

                        return(result);
                    }
                }
                else if (!response.Success && response.Exception != null)
                {
                    result.Success = response.Success;
                    result.Message = response.Exception.Message;

                    return(result);
                }
                else
                {
                    result.Success = false;
                    result.Message = DifficultiesMessages.DifficultyNotFoundMessage;

                    return(result);
                }
            }
            catch (Exception exp)
            {
                result.Success = false;
                result.Message = exp.Message;

                return(result);
            }
        }