Ejemplo n.º 1
0
        /// <summary>
        /// Get specific todolist record.
        /// </summary>
        /// <param name="Id"></param>
        /// <param name="userId"></param>
        /// <returns>ToDoList item by Id for logged in user</returns>
        public async Task <ToDoListDto> GetToDoListById(long Id, long userId)
        {
            ToDoListDbModel toDoListDbDto = await _toDoDbContext.ToDoLists
                                            .Include(p => p.ToDoItems).Include(p => p.Labels).FirstOrDefaultAsync(p => p.ToDoListId == Id && p.CreatedBy == userId);

            return(_mapper.Map <ToDoListDto>(toDoListDbDto));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Adds ToDoList record to ToDoList table.
        /// </summary>
        /// <param name="createToDoListDto"></param>
        /// <returns> added ToDoList record. </returns>
        public async Task <ToDoListDto> CreateToDoList(CreateToDoListDto createToDoListDto)
        {
            ToDoListDbModel toDoListDbDto = _mapper.Map <ToDoListDbModel>(createToDoListDto);

            toDoListDbDto.CreationDate = DateTime.UtcNow;
            _toDoDbContext.ToDoLists.Add(toDoListDbDto);
            await _toDoDbContext.SaveChangesAsync();

            return(_mapper.Map <ToDoListDto>(toDoListDbDto));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Delete ToDoList record based on ToDoListId passed.
        /// </summary>
        /// <param name="id"></param>
        /// <param name="userId"></param>
        /// <returns> 1 if success else -1. </returns>
        public async Task <int> DeleteToDoList(long id, long userId)
        {
            ToDoListDbModel toDoListDbDto = await _toDoDbContext.ToDoLists
                                            .FirstOrDefaultAsync(p => p.ToDoListId == id && p.CreatedBy == userId);

            if (toDoListDbDto == null)
            {
                return(0);
            }

            _toDoDbContext.ToDoLists.Remove(toDoListDbDto);
            return(await _toDoDbContext.SaveChangesAsync());
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Create mapping of LabelId/s to ToDoListId
        /// </summary>
        /// <param name="assignLabelToListDto"></param>
        /// <returns> success/failure result </returns>
        public async Task <bool> AssignLabelToList(AssignLabelToListDto assignLabelToListDto)
        {
            //Remove existing mapping first
            MapLabelsToListDbModel existingListMapping = _toDoDbContext.MapLabelsToLists
                                                         .Where(mapping => mapping.ToDoListId == assignLabelToListDto.ToDoListId &&
                                                                mapping.CreatedBy == assignLabelToListDto.CreatedBy).FirstOrDefault();
            ToDoListDbModel existingToDoListDbModel = _toDoDbContext.ToDoLists
                                                      .Where(list => list.ToDoListId == assignLabelToListDto.ToDoListId).FirstOrDefault();

            if (existingListMapping != null && existingToDoListDbModel != null)                      // remove existing mapping first based on UserId and ToDoListId combination.
            {
                _toDoDbContext.MapLabelsToLists.Remove(existingListMapping);
                await _toDoDbContext.SaveChangesAsync();
            }
            int saveResult = 0;

            if (assignLabelToListDto.LabelId.Count() == 1)      // One to one mapping of LabelId to ToDoListId
            {
                MapLabelsToListDbModel mapLabelsToListDbDto = new MapLabelsToListDbModel
                {
                    CreatedBy  = assignLabelToListDto.CreatedBy,
                    LabelId    = assignLabelToListDto.LabelId.FirstOrDefault(),
                    ToDoListId = assignLabelToListDto.ToDoListId
                };
                _toDoDbContext.MapLabelsToLists.Add(mapLabelsToListDbDto);
                saveResult = await _toDoDbContext.SaveChangesAsync();
            }
            else if (assignLabelToListDto.LabelId.Count() > 1)      // Many to one mapping of LabelIds to ToDoListId
            {
                for (int labelId = 0; labelId < assignLabelToListDto.LabelId.Length; labelId++)
                {
                    MapLabelsToListDbModel mapLabelsToListDbDto = new MapLabelsToListDbModel
                    {
                        CreatedBy  = assignLabelToListDto.CreatedBy,
                        LabelId    = assignLabelToListDto.LabelId[labelId],
                        ToDoListId = assignLabelToListDto.ToDoListId
                    };
                    _toDoDbContext.MapLabelsToLists.Add(mapLabelsToListDbDto);
                }
                saveResult = await _toDoDbContext.SaveChangesAsync();
            }
            if (saveResult > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Update ToDoListId.
        /// </summary>
        /// <param name="updateToDoListDto"></param>
        /// <returns> Updated ToDoListId. </returns>
        public async Task <ToDoListDto> UpdateToDoList(UpdateToDoListDto updateToDoListDto)
        {
            ToDoListDbModel toDoListDbModel = await _toDoDbContext.ToDoLists
                                              .FirstOrDefaultAsync(p => p.ToDoListId == updateToDoListDto.ToDoListId);

            if (toDoListDbModel == null)
            {
                return(null);
            }
            toDoListDbModel.Description  = updateToDoListDto.Description;
            toDoListDbModel.UpdationDate = DateTime.UtcNow;
            await _toDoDbContext.SaveChangesAsync();

            return(_mapper.Map <ToDoListDto>(toDoListDbModel));
        }