Ejemplo n.º 1
0
 public IActionResult AddCollaborator(int noteID, CollaboratorsRequest collaborators)
 {
     try
     {
         bool   success = false;
         string message;
         var    idClaim            = HttpContext.User.Claims.FirstOrDefault(id => id.Type.Equals("id", StringComparison.InvariantCultureIgnoreCase));
         int    userID             = Convert.ToInt32(idClaim.Value);
         UserNoteResponseData data = _userNoteBusiness.AddCollaborator(userID, noteID, collaborators);
         if (data != null)
         {
             success = true;
             message = "Collaborator Added Successfully";
             return(Ok(new { success, message, data }));
         }
         else
         {
             message = "Try Again!";
             return(Ok(new { success, message }));
         }
     }
     catch (Exception ex)
     {
         return(BadRequest(new { ex.Message }));
     }
 }
        public async Task <IActionResult> AddUpdateCollaborator(int NoteId, CollaboratorsRequest collaboratorsRequest)
        {
            try
            {
                var    user   = HttpContext.User;
                bool   status = false;
                string message;
                if (user.HasClaim(c => c.Type == _tokenType))
                {
                    if (user.Claims.FirstOrDefault(c => c.Type == _tokenType).Value == _login &&
                        user.Claims.FirstOrDefault(c => c.Type == _userType).Value == _regularUser)
                    {
                        int UserId = Convert.ToInt32(user.Claims.FirstOrDefault(c => c.Type == _userId).Value);

                        NoteResponseModel data = await _notesBusiness.AddUpdateCollaborator(NoteId, collaboratorsRequest, UserId);

                        if (data != null)
                        {
                            status  = true;
                            message = "The Collaborators has Been Successfully Added To the Note.";
                            return(Ok(new { status, message, data }));
                        }
                        message = "Unable to Add the Collaborators to the Note.";
                        return(Ok(new { status, message }));
                    }
                }
                message = "Invalid Token";
                return(BadRequest(new { status, message }));
            }
            catch (Exception e)
            {
                return(BadRequest(new { e.Message }));
            }
        }
 /// <summary>
 /// It Add Or Update the Collaborator to the Note
 /// </summary>
 /// <param name="NoteId">Note Id</param>
 /// <param name="collaboratorsRequest">Collaborator Data</param>
 /// <returns>Note Response Model</returns>
 public async Task <NoteResponseModel> AddUpdateCollaborator(int NoteId, CollaboratorsRequest collaboratorsRequest, int userId)
 {
     try
     {
         if (NoteId <= 0 || collaboratorsRequest == null || userId <= 0)
         {
             return(null);
         }
         else
         {
             return(await _notesRepository.AddUpdateCollaborator(NoteId, collaboratorsRequest, userId));
         }
     }
     catch (Exception e)
     {
         throw new Exception(e.Message);
     }
 }
        public UserNoteResponseData AddCollaborator(int userID, int noteID, CollaboratorsRequest collaborators)
        {
            try
            {
                var notesinfo = _context.UserNotes.
                                Where(userNote => userNote.UserId == userID && userNote.NotesId == noteID && userNote.NotesId == noteID).FirstOrDefault();

                foreach (CollaboratorRequest collaborator in collaborators.Collaborators)
                {
                    var collaboratorsData = _context.Collaborators.
                                            Where(userCollab => userCollab.UserID == collaborator.UserID && userCollab.NoteID == noteID).
                                            FirstOrDefault();
                    if (userID == collaborator.UserID || collaboratorsData != null)
                    {
                        return(null);
                    }
                    else
                    {
                        CollaboratorInfo userNotes = new CollaboratorInfo()
                        {
                            UserID       = collaborator.UserID,
                            NoteID       = noteID,
                            CreatedDate  = DateTime.Now,
                            ModifiedDate = DateTime.Now,
                        };
                        _context.Collaborators.Add(userNotes);
                        _context.SaveChanges();
                    }
                }

                List <LabelResponseData> labelsData = _context.NotesLabels.
                                                      Where(note => note.NotesId == notesinfo.NotesId).
                                                      Join(_context.Labels,
                                                           noteLabel => noteLabel.LabelId,
                                                           label => label.LabelID,
                                                           (noteLabel, label) => new LabelResponseData
                {
                    LabelID   = noteLabel.LabelId,
                    LabelName = label.LabelName,
                }).
                                                      ToList();
                List <CollaboratorResponseData> collabsData = _context.Collaborators.
                                                              Where(noted => noted.NoteID == noteID).
                                                              Join(_context.Users,
                                                                   noteCollab => noteCollab.UserID,
                                                                   collab => collab.ID,
                                                                   (noteCollab, collab) => new CollaboratorResponseData
                {
                    UserID = noteCollab.UserID,
                    Email  = collab.Email
                }).
                                                              ToList();

                UserNoteResponseData noteResponseData = new UserNoteResponseData()
                {
                    NoteId        = notesinfo.NotesId,
                    Title         = notesinfo.Title,
                    Description   = notesinfo.Description,
                    Color         = notesinfo.Color,
                    Image         = notesinfo.Image,
                    Pin           = notesinfo.Pin,
                    Archived      = notesinfo.Archived,
                    Trash         = notesinfo.Trash,
                    Reminder      = notesinfo.Reminder,
                    Labels        = labelsData,
                    Collaborators = collabsData
                };
                return(noteResponseData);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        public UserNoteResponseData AddCollaborator(int userID, int noteID, CollaboratorsRequest collaborators)
        {
            UserNoteResponseData data = _userNoteRepository.AddCollaborator(userID, noteID, collaborators);

            return(data);
        }