public async Task <IActionResult> AssignLabelToList(AssignLabelToListModel assignLabelToListModel) { long userId = long.Parse(HttpContext.Items["UserId"].ToString()); assignLabelToListModel.CreatedBy = userId; AssignLabelToListDto assignLabelToListDto = _mapper.Map <AssignLabelToListDto>(assignLabelToListModel); bool isAssigned = await _labelContract.AssignLabelToList(assignLabelToListDto); if (isAssigned) { return(Ok( new ApiResponse <object> { IsSuccess = true, Result = "Assignment to ToDoItem successful." })); } return(NotFound( new ApiResponse <string> { IsSuccess = false, Result = "Assignment to ToDoItem failed." })); }
/// <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); } }
/// <summary> /// assign labelids to specified ToDoList record. /// </summary> /// <param name="assignLabelToListDto"></param> /// <returns> Boolean result of Assignment, i.e. true/false. </returns> public async Task <bool> AssignLabelToList(AssignLabelToListDto assignLabelToListDto) { return(await _labelDbOps.AssignLabelToList(assignLabelToListDto)); }