Ejemplo n.º 1
0
        /// <summary>
        /// Adds ToDoItem record to ToDoItem table.
        /// </summary>
        /// <param name="createToDoItemDto"></param>
        /// <returns>added ToDoItem record.</returns>
        public async Task <ToDoItemDto> AddToDoItem(CreateToDoItemDto createToDoItemDto)
        {
            ToDoItemDbModel toDoItemDbDto = _mapper.Map <ToDoItemDbModel>(createToDoItemDto);

            toDoItemDbDto.CreationDate = DateTime.UtcNow;
            _toDoDbContext.ToDoItems.Add(toDoItemDbDto);
            await _toDoDbContext.SaveChangesAsync();

            return(_mapper.Map <ToDoItemDto>(toDoItemDbDto));
        }
Ejemplo n.º 2
0
        // to reduce risk of overposting.
        private ToDoItemDbModel ConvertViewModelToModel(ToDoItemViewModel item)
        {
            ToDoItemDbModel model = new ToDoItemDbModel()
            {
                Id     = item.Id,
                Name   = item.Name,
                IsDone = item.IsDone
            };

            return(model);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Delete ToDoItem record based on ToDoItemId passed.
        /// </summary>
        /// <param name="id"></param>
        /// <param name="userId"></param>
        /// <returns> 1 if success else -1. </returns>
        public async Task <int> DeleteToDoItem(long id, long userId)
        {
            ToDoItemDbModel toDoItemDbDto = await _toDoDbContext.ToDoItems
                                            .FirstOrDefaultAsync(p => p.ToDoItemId == id && p.CreatedBy == userId);

            if (toDoItemDbDto == null)
            {
                return(0);
            }
            _toDoDbContext.ToDoItems.Remove(toDoItemDbDto);
            return(await _toDoDbContext.SaveChangesAsync());
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Create mapping of LabelId/s to ToDoItemId
        /// </summary>
        /// <param name="assignLabelToItemDto"></param>
        /// <returns> success/failure result </returns>
        public async Task <bool> AssignLabelToItem(AssignLabelToItemDto assignLabelToItemDto)
        {
            //Remove existing mapping first
            MapLabelsToItemDbModel existingItemMapping = _toDoDbContext.MapLabelsToItems
                                                         .Where(mapping => mapping.ToDoItemId == assignLabelToItemDto.ToDoItemId &&
                                                                mapping.CreatedBy == assignLabelToItemDto.CreatedBy).FirstOrDefault();
            ToDoItemDbModel existingToDoItemDbModel = _toDoDbContext.ToDoItems
                                                      .Where(item => item.ToDoItemId == assignLabelToItemDto.ToDoItemId).FirstOrDefault();

            if (existingItemMapping != null && existingToDoItemDbModel != null)                // remove existing mapping first based on UserId and ToDoItemId combination.
            {
                _toDoDbContext.MapLabelsToItems.Remove(existingItemMapping);
                await _toDoDbContext.SaveChangesAsync();
            }
            int saveResult = 0;

            if (assignLabelToItemDto.LabelId.Count() == 1)      // One to one mapping of LabelId to ToDoItemId
            {
                MapLabelsToItemDbModel mapLabelsToItemDbDto = new MapLabelsToItemDbModel
                {
                    CreatedBy  = assignLabelToItemDto.CreatedBy,
                    LabelId    = assignLabelToItemDto.LabelId.FirstOrDefault(),
                    ToDoItemId = assignLabelToItemDto.ToDoItemId
                };
                _toDoDbContext.MapLabelsToItems.Add(mapLabelsToItemDbDto);
                saveResult = await _toDoDbContext.SaveChangesAsync();
            }
            else if (assignLabelToItemDto.LabelId.Count() > 1)      // Many to one mapping of LabelIds to ToDoItemId
            {
                for (int labelId = 0; labelId < assignLabelToItemDto.LabelId.Length; labelId++)
                {
                    MapLabelsToItemDbModel mapLabelsToItemDbDto = new MapLabelsToItemDbModel
                    {
                        CreatedBy  = assignLabelToItemDto.CreatedBy,
                        LabelId    = assignLabelToItemDto.LabelId[labelId],
                        ToDoItemId = assignLabelToItemDto.ToDoItemId
                    };
                    _toDoDbContext.MapLabelsToItems.Add(mapLabelsToItemDbDto);
                }
                saveResult = await _toDoDbContext.SaveChangesAsync();
            }
            if (saveResult > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Updates todoitem record based on input.
        /// </summary>
        /// <param name="updateToDoItemDto">ToDoItemObject to be updated.</param>
        /// <returns> Updated ToDoItem record.</returns>
        public async Task <ToDoItemDto> UpdateToDoItem(UpdateToDoItemDto updateToDoItemDto)
        {
            ToDoItemDbModel toDoItemDbDto = await _toDoDbContext.ToDoItems
                                            .FirstOrDefaultAsync(p => p.ToDoItemId == updateToDoItemDto.ToDoItemId);

            if (toDoItemDbDto == null)
            {
                return(null);
            }
            toDoItemDbDto.Notes        = updateToDoItemDto.Notes;
            toDoItemDbDto.UpdationDate = DateTime.UtcNow;

            await _toDoDbContext.SaveChangesAsync();

            return(_mapper.Map <ToDoItemDto>(toDoItemDbDto));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Gets specific todoitem record.
        /// </summary>
        /// <param name="toDoItemId"></param>
        /// <param name="userId"></param>
        /// <returns>ToDoItem record for the given Id.</returns>
        public async Task <ToDoItemDto> GetToDoItemById(long toDoItemId, long userId)
        {
            ToDoItemDbModel toDoItemDbDto = await _toDoDbContext.ToDoItems.Include(p => p.Labels).FirstOrDefaultAsync(p => p.ToDoItemId == toDoItemId && p.CreatedBy == userId);

            return(_mapper.Map <ToDoItemDto>(toDoItemDbDto));
        }
Ejemplo n.º 7
0
        public ToDoItemViewModel GetTaskById(int id)
        {
            ToDoItemDbModel item = _data.GetTaskById(id);

            return(ConvertModelToViewModel(item));
        }