/// <summary>
        /// Creates Diary note for user
        /// </summary>
        /// <param name="createDiaryNoteDto"></param>
        /// <returns></returns>
        public async Task <bool> CreateDiaryNote(CreateDiaryNoteDto createDiaryNoteDto)
        {
            _logger.LogInformation($"Executing {MethodBase.GetCurrentMethod().Name} Method Of Class: { this.GetType().Name}");

            // Map to database model
            CreateDiaryNote diaryNote = _mapper.Map <CreateDiaryNote>(createDiaryNoteDto);

            // Add to actual database using context
            DiaryNotes.Add(diaryNoteKey, diaryNote);
            diaryNoteKey++;

            return(true);
        }
        /// <summary>
        /// Creates Diary note for user
        /// </summary>
        /// <param name="createDiaryNoteDto"></param>
        /// <returns></returns>
        public async Task <bool> CreateDiaryNote(CreateDiaryNoteDto createDiaryNoteDto)
        {
            if (createDiaryNoteDto.UserId <= 0)
            {
                throw new InvalidUserIdException("User Id is not valid");
            }

            if (createDiaryNoteDto.NoteDate.Date < DateTime.Now.Date)
            {
                throw new MinimumDateException("Cannot create dairy note for past date");
            }

            return(await _diaryDataService.CreateDiaryNote(createDiaryNoteDto));
        }
        public async Task <IActionResult> CreateDiaryNote(CreateDiaryNoteDto createDiaryNoteDto)
        {
            try
            {
                _logger.LogInformation($"Executing {MethodBase.GetCurrentMethod().Name} Method Of Class: { this.GetType().Name}");

                bool success = await _diaryService.Value.CreateDiaryNote(createDiaryNoteDto);

                if (!success)
                {
                    return(StatusCode(500, "Error occured while adding diary note"));
                }

                return(Ok("Diary note added successfully"));
            }
            catch (InvalidUserIdException ex)
            {
                _logger.LogError(ex.Message);
                return(BadRequest(ex.Message));
            }
        }