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."
            }));
        }
Exemple #2
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);
            }
        }
Exemple #3
0
 /// <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));
 }