/// <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)); }
// 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); }
/// <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()); }
/// <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); } }
/// <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)); }
/// <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)); }
public ToDoItemViewModel GetTaskById(int id) { ToDoItemDbModel item = _data.GetTaskById(id); return(ConvertModelToViewModel(item)); }