public async Task <IActionResult> AssignLabelToItem(AssignLabelToItemModel assignLabelToItemModel)
        {
            long userId = long.Parse(HttpContext.Items["UserId"].ToString());

            assignLabelToItemModel.CreatedBy = userId;

            AssignLabelToItemDto assignLabelToItemDto = _mapper.Map <AssignLabelToItemDto>(assignLabelToItemModel);
            bool isAssigned = await _labelContract.AssignLabelToItem(assignLabelToItemDto);

            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 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);
            }
        }
Exemple #3
0
 /// <summary>
 /// Assign labelIds to specified ToDoItemId record.
 /// </summary>
 /// <param name="assignLabelToItemDto"></param>
 /// <returns> Boolean result of Assignment, i.e. true/false. </returns>
 public async Task <bool> AssignLabelToItem(AssignLabelToItemDto assignLabelToItemDto)
 {
     return(await _labelDbOps.AssignLabelToItem(assignLabelToItemDto));
 }