コード例 #1
0
        public ActionResult NewNote(Guid[] candidateIds, string text, bool isShared)
        {
            try
            {
                var employer = CurrentEmployer;

                // Create them.

                foreach (var candidateId in candidateIds)
                {
                    var note = new CandidateNote
                    {
                        Text        = text,
                        CandidateId = candidateId,
                    };

                    if (isShared)
                    {
                        _candidateNotesCommand.CreateSharedNote(employer, note);
                    }
                    else
                    {
                        _candidateNotesCommand.CreatePrivateNote(employer, note);
                    }
                }
            }
            catch (UserException ex)
            {
                ModelState.AddModelError(ex, new StandardErrorHandler());
            }

            return(Json(new JsonResponseModel()));
        }
コード例 #2
0
ファイル: CandidateNotesTests.cs プロジェクト: formist/LinkMe
 private static void AssertNote(CandidateNote expectedNote, CandidateNote note)
 {
     Assert.AreEqual(expectedNote.Id, note.Id);
     Assert.AreEqual(expectedNote.RecruiterId, note.RecruiterId);
     Assert.AreEqual(expectedNote.OrganisationId, note.OrganisationId);
     Assert.AreEqual(expectedNote.CandidateId, note.CandidateId);
     Assert.AreEqual(expectedNote.Text, note.Text);
 }
コード例 #3
0
ファイル: ApiGetNotesTests.cs プロジェクト: formist/LinkMe
        private CandidateNote CreateNote(IEmployer employer, Guid memberId, int index)
        {
            var note = new CandidateNote {
                CandidateId = memberId, Text = string.Format(TextFormat, index), CreatedTime = DateTime.Now.AddMinutes(-1 * index)
            };

            _candidateNotesCommand.CreateSharedNote(employer, note);
            return(note);
        }
コード例 #4
0
        void ICandidateNotesCommand.UpdateNote(IEmployer employer, CandidateNote note)
        {
            if (!CanUpdateNote(employer, note))
            {
                throw new NoteOwnerPermissionsException(employer, note.Id);
            }

            _contenderNotesCommand.UpdateNote(note);
        }
コード例 #5
0
        private static bool CanUpdateNote(IHasId <Guid> employer, CandidateNote note)
        {
            // Must own the note to update it.

            if (employer == null || note == null)
            {
                return(false);
            }
            return(note.RecruiterId == employer.Id);
        }
コード例 #6
0
ファイル: ApiNotesTests.cs プロジェクト: formist/LinkMe
 protected static void AssertModel(IEmployer createdBy, NoteModel model, CandidateNote expectedNote)
 {
     if (expectedNote.Id != Guid.Empty)
     {
         Assert.AreEqual(expectedNote.Id, model.Id);
     }
     Assert.AreEqual(expectedNote.IsShared, model.IsShared);
     Assert.AreEqual(true, model.UpdatedTime != DateTime.MinValue);
     Assert.AreEqual(expectedNote.Text, model.Text);
     Assert.AreEqual(createdBy == null ? null : createdBy.FullName, model.CreatedBy);
 }
コード例 #7
0
        void ICandidateNotesCommand.UnshareNote(IEmployer employer, CandidateNote note)
        {
            // Must be able to update the note.

            if (!CanUpdateNote(employer, note))
            {
                throw new NoteOwnerPermissionsException(employer, note.Id);
            }

            Prepare(employer, note, false);
            _contenderNotesCommand.UpdateNote(note);
        }
コード例 #8
0
        private void AssertNote(bool expectAccess, CandidateNote expectedNote, IEmployerContact noteReader)
        {
            var note = _candidateNotesCommand.GetCandidateNote(noteReader, expectedNote.Id);

            if (expectAccess)
            {
                AssertNote(expectedNote, note);
            }
            else
            {
                Assert.IsNull(note);
            }
        }
コード例 #9
0
        private Member CreateMember(IEmployer employer, int index, bool inFolder, bool isFlagged, bool hasNotes, bool hasBeenViewed, bool canContact)
        {
            var member    = _memberAccountsCommand.CreateTestMember(index);
            var candidate = _candidatesQuery.GetCandidate(member.Id);

            _candidateResumesCommand.AddTestResume(candidate);

            // In folder.

            if (inFolder)
            {
                var folder = _candidateFoldersQuery.GetShortlistFolder(employer);
                _candidateListsCommand.AddCandidateToFolder(employer, folder, member.Id);
            }

            // Is flagged.

            if (isFlagged)
            {
                var flagList = _candidateFlagListsQuery.GetFlagList(employer);
                _candidateListsCommand.AddCandidateToFlagList(employer, flagList, member.Id);
            }

            // Has notes.

            if (hasNotes)
            {
                var note = new CandidateNote {
                    CandidateId = member.Id, Text = "A note"
                };
                _candidateNotesCommand.CreatePrivateNote(employer, note);
            }

            // Has been viewed.

            if (hasBeenViewed)
            {
                _employerMemberViewsCommand.ViewMember(_app, employer, member);
            }

            // Has been contacted.

            if (canContact)
            {
                _employerMemberViewsCommand.AccessMember(_app, employer, _employerMemberViewsQuery.GetProfessionalView(employer, member), MemberAccessReason.PhoneNumberViewed);
            }

            _updateMemberSearchCommand.AddMember(member.Id);
            return(member);
        }
コード例 #10
0
        public void TestHasSharedNotes()
        {
            var employer0 = CreateEmployer(0);
            var employer1 = CreateEmployer(1, employer0.Organisation);

            var member = CreateMember(0);
            var note   = new CandidateNote {
                CandidateId = member.Id, Text = NoteText
            };

            _candidateNotesCommand.CreateSharedNote(employer0, note);

            TestCount(employer0, member.Id, 1, v => v.Notes);
            TestCount(employer1, member.Id, 1, v => v.Notes);
        }
コード例 #11
0
ファイル: CandidateNotesTests.cs プロジェクト: formist/LinkMe
        private CandidateNote CreateNote(int index, IEmployer noteCreator, Guid memberId, bool isShared)
        {
            var note = new CandidateNote {
                CandidateId = memberId, Text = string.Format(TextFormat, index)
            };

            if (isShared)
            {
                _candidateNotesCommand.CreateSharedNote(noteCreator, note);
            }
            else
            {
                _candidateNotesCommand.CreatePrivateNote(noteCreator, note);
            }
            return(note);
        }
コード例 #12
0
ファイル: ApiNewNotesTests.cs プロジェクト: formist/LinkMe
        public void TestNewNotesShared()
        {
            // Create member.

            var member0 = _memberAccountsCommand.CreateTestMember(0);
            var member1 = _memberAccountsCommand.CreateTestMember(1);

            // Create employer and log in.

            var employer = _employerAccountsCommand.CreateTestEmployer(0, _organisationsCommand.CreateTestVerifiedOrganisation(0));

            LogIn(employer);

            AssertModels(employer, Notes(member0.Id));
            AssertModels(employer, Notes(member1.Id));

            var note1 = new CandidateNote {
                Text = string.Format(NoteTextFormat, 1), RecruiterId = employer.Id, OrganisationId = employer.Organisation.Id
            };
            var model = CreateNote(new[] { member0.Id, member1.Id }, note1.Text, true);

            // Assert.

            AssertJsonSuccess(model);
            AssertNotes(employer, member0.Id, note1);
            AssertNotes(employer, member1.Id, note1);

            AssertModels(null, Notes(member0.Id), note1);
            AssertModels(null, Notes(member1.Id), note1);

            // Add another.

            var note2 = new CandidateNote {
                Text = string.Format(NoteTextFormat, 2), RecruiterId = employer.Id, OrganisationId = employer.Organisation.Id
            };

            model = CreateNote(new[] { member0.Id, member1.Id }, note2.Text, true);

            // Assert.

            AssertJsonSuccess(model);
            AssertNotes(employer, member0.Id, note1, note2);
            AssertNotes(employer, member1.Id, note1, note2);

            AssertModels(null, Notes(member0.Id), note2, note1);
            AssertModels(null, Notes(member1.Id), note2, note1);
        }
コード例 #13
0
        private void TestNote <T>(bool verified, int?credits, bool isShared)
            where T : Credit
        {
            var member      = _createMemberContactsCommand.CreateContact(1);
            var noteCreator = _createEmployerContactsCommand.CreateContact(1, verified);
            var noteReader  = _createEmployerContactsCommand.CreateContact(2, noteCreator.Organisation);

            // Allocate some credits.

            if (credits != null)
            {
                _allocationsCommand.CreateAllocation(noteCreator.Id, new Allocation {
                    CreditId = _creditsCommand.GetCredit <T>().Id, Quantity = credits
                });
            }
            _allocationsCommand.CreateAllocation(noteReader.Id, new Allocation {
                CreditId = _creditsCommand.GetCredit <T>().Id
            });

            // Add one note.

            const string text = "Here's a new note";
            var          note = new CandidateNote {
                CandidateId = member.Id, Text = text
            };

            if (isShared)
            {
                _candidateNotesCommand.CreateSharedCandidateNote(noteCreator, note);
            }
            else
            {
                _candidateNotesCommand.CreateCandidateNote(noteCreator, note);
            }

            if (!isShared || credits != null)
            {
                AssertNote(true, note, noteCreator);
                AssertNote(isShared, note, noteReader);
            }
            else
            {
                Assert.IsTrue(credits == null);
            }
        }
コード例 #14
0
        public void TestFilterHasNotes()
        {
            var member1  = CreateMember(1);
            var member2  = CreateMember(2);
            var employer = _employersCommand.CreateTestEmployer(1, _organisationsCommand.CreateTestOrganisation(1));

            // Member1 has notes.

            var note = new CandidateNote {
                CandidateId = member1.Id, Text = "A note"
            };

            _candidateNotesCommand.CreatePrivateNote(employer, note);

            // Filter.

            TestFilter(employer, CreateHasNotesCriteria, new[] { member1.Id, member2.Id }, new[] { member1.Id }, new[] { member2.Id });
        }
コード例 #15
0
        private static bool CanAccessNote(IEmployer employer, CandidateNote note)
        {
            if (employer == null || note == null)
            {
                return(false);
            }

            if (!note.IsShared)
            {
                // Must be the owner.

                return(note.RecruiterId == employer.Id);
            }

            // Must belong to the same organisation.

            return(note.OrganisationId == employer.Organisation.Id);
        }
コード例 #16
0
ファイル: ApiGetNotesTests.cs プロジェクト: formist/LinkMe
        public void TestGetSharedNotes()
        {
            const int employerCount = 3;
            var       employers     = new Employer[employerCount];

            var organisation = _organisationsCommand.CreateTestVerifiedOrganisation(0);

            for (var index = 0; index < employerCount; ++index)
            {
                employers[index] = _employerAccountsCommand.CreateTestEmployer(index, organisation);
            }

            // Create notes.

            var member = _memberAccountsCommand.CreateTestMember(0);

            const int noteCount  = 8;
            var       notes      = new CandidateNote[noteCount];
            var       createdBys = new Employer[noteCount];

            for (var index = 0; index < noteCount; ++index)
            {
                var employer = employers[Random.Next(3)];
                notes[index]      = CreateNote(employer, member.Id, index);
                createdBys[index] = employer;
            }

            foreach (var employer in employers)
            {
                LogIn(employer);
                for (var index = 0; index < noteCount; ++index)
                {
                    var model = Note(notes[index].Id);
                    AssertModel(employer == createdBys[index] ? null : createdBys[index], model, notes[index]);
                }

                var notesModel = Notes(member.Id);
                Assert.AreEqual(notes.Length, notesModel.Notes.Count);
                for (var index = 0; index < notes.Length; ++index)
                {
                    AssertModel(employer == createdBys[index] ? null : createdBys[index], notesModel.Notes[index], notes[index]);
                }
            }
        }
コード例 #17
0
ファイル: ApiEditNotesTests.cs プロジェクト: formist/LinkMe
        public void TestEditBoth()
        {
            // Create member.

            var member = _memberAccountsCommand.CreateTestMember(0);

            // Create notes.

            var employer = _employerAccountsCommand.CreateTestEmployer(0, _organisationsCommand.CreateTestVerifiedOrganisation(0));
            var note1    = new CandidateNote {
                Text = string.Format(NoteTextFormat, 1), CandidateId = member.Id, CreatedTime = DateTime.Now.AddDays(-1)
            };

            _candidateNotesCommand.CreatePrivateNote(employer, note1);
            var note2 = new CandidateNote {
                Text = string.Format(NoteTextFormat, 2), CandidateId = member.Id, CreatedTime = DateTime.Now.AddDays(-2)
            };

            _candidateNotesCommand.CreatePrivateNote(employer, note2);

            // Log in and edit tex.

            LogIn(employer);

            AssertModels(null, Notes(member.Id), note1, note2);
            AssertModel(null, Note(note1.Id), note1);
            AssertModel(null, Note(note2.Id), note2);

            var newText = string.Format(NoteTextFormat, 3);
            var model   = EditNote(note1, newText, true);

            note1.Text           = newText;
            note1.OrganisationId = employer.Organisation.Id;

            // Assert.

            AssertJsonSuccess(model);
            AssertNotes(employer, member.Id, note1, note2);

            AssertModels(null, Notes(member.Id), note1, note2);
            AssertModel(null, Note(note1.Id), note1);
            AssertModel(null, Note(note2.Id), note2);
        }
コード例 #18
0
        public void TestFilterBlockHasNotes()
        {
            var member   = CreateMember(1);
            var employer = _employersCommand.CreateTestEmployer(1, _organisationsCommand.CreateTestOrganisation(1));

            // Member has notes.

            var note = new CandidateNote {
                CandidateId = member.Id, Text = "A note"
            };

            _candidateNotesCommand.CreatePrivateNote(employer, note);

            // Filter.

            TestFilter(new[] { member.Id }, employer, CreateHasNotesCriteria(true));

            // Block.

            _candidateListsCommand.AddCandidateToBlockList(employer, _candidateBlockListsQuery.GetTemporaryBlockList(employer), member.Id);
            TestFilter(new Guid[0], employer, CreateHasNotesCriteria(true));
        }
コード例 #19
0
        public void TestMultipleMembersHaveNotes()
        {
            var employer0 = CreateEmployer(0);
            var employer1 = CreateEmployer(1, employer0.Organisation);

            var member0 = CreateMember(0);
            var member1 = CreateMember(1);
            var note    = new CandidateNote {
                CandidateId = member0.Id, Text = NoteText
            };

            _candidateNotesCommand.CreateSharedNote(employer0, note);

            note = new CandidateNote {
                CandidateId = member0.Id, Text = NoteText
            };
            _candidateNotesCommand.CreatePrivateNote(employer0, note);
            note = new CandidateNote {
                CandidateId = member1.Id, Text = NoteText
            };
            _candidateNotesCommand.CreatePrivateNote(employer0, note);

            TestCount(employer0, member0.Id, 2, v => v.Notes);
            TestCount(employer0, member1.Id, 1, v => v.Notes);

            TestCount(employer1, member0.Id, 1, v => v.Notes);
            TestCount(employer1, member1.Id, 0, v => v.Notes);

            var views = _employerMemberViewsQuery.GetEmployerMemberViews(employer0, new[] { member0.Id, member1.Id });

            Assert.AreEqual(2, views[member0.Id].Notes);
            Assert.AreEqual(1, views[member1.Id].Notes);

            views = _employerMemberViewsQuery.GetEmployerMemberViews(employer1, new[] { member0.Id, member1.Id });
            Assert.AreEqual(1, views[member0.Id].Notes);
            Assert.AreEqual(0, views[member1.Id].Notes);
        }
コード例 #20
0
 void ICandidateNotesCommand.CreateSharedNote(IEmployer employer, CandidateNote note)
 {
     Prepare(employer, note, true);
     _contenderNotesCommand.CreateNote(note);
 }
コード例 #21
0
        public void TestOrganisationSharedNotes()
        {
            var member      = _createMemberContactsCommand.CreateContact(1);
            var noteCreator = _createEmployerContactsCommand.CreateContact(1, false);

            _allocationsCommand.CreateAllocation(noteCreator.Id, new Allocation {
                CreditId = _creditsCommand.GetCredit <ContactCredit>().Id, Quantity = 100
            });

            var organisation = noteCreator.Organisation;
            var noteReader   = _createEmployerContactsCommand.CreateContact(2, organisation);

            _allocationsCommand.CreateAllocation(noteReader.Id, new Allocation {
                CreditId = _creditsCommand.GetCredit <ApplicantCredit>().Id, Quantity = 100
            });

            // Create a private note and a shared note.

            const string noteText1 = "Here's a new note";
            var          note1     = new CandidateNote {
                CandidateId = member.Id, Text = noteText1
            };

            _candidateNotesCommand.CreateCandidateNote(noteCreator, note1);

            NoteCreationDelay();

            const string noteText2 = "A second note";
            var          note2     = new CandidateNote {
                CandidateId = member.Id, Text = noteText2
            };

            _candidateNotesCommand.CreateSharedCandidateNote(noteCreator, note2);

            // Check access.

            AssertNote(true, note1, noteCreator);
            AssertNote(false, note1, noteReader);
            AssertNote(true, note2, noteCreator);
            AssertNote(true, note2, noteReader);

            // The note creator leaves the company, so they cannot access their own shared notes.

            var otherOrganisation = new Organisation {
                Name = "OtherOrganisation"
            };

            _organisationsCommand.CreateOrganisation(otherOrganisation);

            _createEmployerContactsCommand.UpdateOrganisation(noteCreator, otherOrganisation);

            // Check access.

            AssertNote(true, note1, noteCreator);
            AssertNote(false, note1, noteReader);
            AssertNote(false, note2, noteCreator);
            AssertNote(true, note2, noteReader);

            // Create a private note while not part of the company.

            const string noteText3 = "A third note";
            var          note3     = new CandidateNote {
                CandidateId = member.Id, Text = noteText3
            };

            _candidateNotesCommand.CreateCandidateNote(noteCreator, note3);

            AssertNote(true, note1, noteCreator);
            AssertNote(false, note1, noteReader);
            AssertNote(false, note2, noteCreator);
            AssertNote(true, note2, noteReader);
            AssertNote(true, note3, noteCreator);
            AssertNote(false, note3, noteReader);

            // Join again so can see original notes.

            _createEmployerContactsCommand.UpdateOrganisation(noteCreator, organisation);

            AssertNote(true, note1, noteCreator);
            AssertNote(false, note1, noteReader);
            AssertNote(true, note2, noteCreator);
            AssertNote(true, note2, noteReader);
            AssertNote(true, note3, noteCreator);
            AssertNote(false, note3, noteReader);

            // Change the latest note to shared, so now the second employer can see it.

            _candidateNotesCommand.ShareCandidateNote(noteCreator, note3);

            AssertNote(true, note1, noteCreator);
            AssertNote(false, note1, noteReader);
            AssertNote(true, note2, noteCreator);
            AssertNote(true, note2, noteReader);
            AssertNote(true, note3, noteCreator);
            AssertNote(true, note3, noteReader);

            // Make that note private once again.

            _candidateNotesCommand.UnshareCandidateNote(noteCreator, note3);

            AssertNote(true, note1, noteCreator);
            AssertNote(false, note1, noteReader);
            AssertNote(true, note2, noteCreator);
            AssertNote(true, note2, noteReader);
            AssertNote(true, note3, noteCreator);
            AssertNote(false, note3, noteReader);
        }
コード例 #22
0
        public void TestNoteOwner()
        {
            var member      = _createMemberContactsCommand.CreateContact(1);
            var noteCreator = _createEmployerContactsCommand.CreateContact(1, false);

            _allocationsCommand.CreateAllocation(noteCreator.Id, new Allocation {
                CreditId = _creditsCommand.GetCredit <ContactCredit>().Id, Quantity = 100
            });
            var noteReader = _createEmployerContactsCommand.CreateContact(2, noteCreator.Organisation);

            _allocationsCommand.CreateAllocation(noteReader.Id, new Allocation {
                CreditId = _creditsCommand.GetCredit <ApplicantCredit>().Id, Quantity = 100
            });

            // Add a private note.

            const string noteText1 = "Here's a new note";
            var          note1     = new CandidateNote {
                CandidateId = member.Id, Text = noteText1
            };

            _candidateNotesCommand.CreateCandidateNote(noteCreator, note1);

            // Add a shared note.

            NoteCreationDelay();

            const string noteText2 = "A second note";
            var          note2     = new CandidateNote {
                CandidateId = member.Id, Text = noteText2
            };

            _candidateNotesCommand.CreateSharedCandidateNote(noteCreator, note2);

            AssertNote(true, note1, noteCreator);
            AssertNote(false, note1, noteReader);
            AssertNote(true, note2, noteCreator);
            AssertNote(true, note2, noteReader);

            // Try to update the first note text as the reader.

            const string updatedText = "Updated first note";
            var          note        = _candidateNotesCommand.GetCandidateNote(noteCreator, note1.Id);

            note.Text = updatedText;

            try
            {
                _candidateNotesCommand.UpdateCandidateNote(noteReader, note);
                Assert.Fail();
            }
            catch (NoteOwnerPermissionsException)
            {
            }

            AssertNote(true, note1, noteCreator);
            AssertNote(false, note1, noteReader);
            AssertNote(true, note2, noteCreator);
            AssertNote(true, note2, noteReader);

            // Try to update the second note text as the reader.

            note      = _candidateNotesCommand.GetCandidateNote(noteCreator, note2.Id);
            note.Text = updatedText;

            try
            {
                _candidateNotesCommand.UpdateCandidateNote(noteReader, note);
                Assert.Fail();
            }
            catch (NoteOwnerPermissionsException)
            {
            }

            AssertNote(true, note1, noteCreator);
            AssertNote(false, note1, noteReader);
            AssertNote(true, note2, noteCreator);
            AssertNote(true, note2, noteReader);

            // Try to delete the first note.

            try
            {
                _candidateNotesCommand.DeleteCandidateNode(noteReader, note1.Id);
                Assert.Fail();
            }
            catch (NoteOwnerPermissionsException)
            {
            }

            AssertNote(true, note1, noteCreator);
            AssertNote(false, note1, noteReader);
            AssertNote(true, note2, noteCreator);
            AssertNote(true, note2, noteReader);

            // Try to delete the second note.

            try
            {
                _candidateNotesCommand.DeleteCandidateNode(noteReader, note2.Id);
                Assert.Fail();
            }
            catch (NoteOwnerPermissionsException)
            {
            }

            AssertNote(true, note1, noteCreator);
            AssertNote(false, note1, noteReader);
            AssertNote(true, note2, noteCreator);
            AssertNote(true, note2, noteReader);
        }
コード例 #23
0
        private void TestNotes(bool isShared1, bool isShared2)
        {
            var member      = _createMemberContactsCommand.CreateContact(1);
            var noteCreator = _createEmployerContactsCommand.CreateContact(1, false);

            _allocationsCommand.CreateAllocation(noteCreator.Id, new Allocation {
                CreditId = _creditsCommand.GetCredit <ContactCredit>().Id, Quantity = 100
            });
            var noteReader = _createEmployerContactsCommand.CreateContact(2, noteCreator.Organisation);

            _allocationsCommand.CreateAllocation(noteReader.Id, new Allocation {
                CreditId = _creditsCommand.GetCredit <ApplicantCredit>().Id, Quantity = 100
            });

            // Add one note.

            const string noteText1 = "Here's a new note";
            var          note1     = new CandidateNote {
                CandidateId = member.Id, Text = noteText1
            };

            if (isShared1)
            {
                _candidateNotesCommand.CreateSharedCandidateNote(noteCreator, note1);
            }
            else
            {
                _candidateNotesCommand.CreateCandidateNote(noteCreator, note1);
            }

            AssertNote(true, note1, noteCreator);
            AssertNote(isShared1, note1, noteReader);

            // Add another note.

            NoteCreationDelay();

            const string noteText2 = "A second note";
            var          note2     = new CandidateNote {
                CandidateId = member.Id, Text = noteText2
            };

            if (isShared2)
            {
                _candidateNotesCommand.CreateSharedCandidateNote(noteCreator, note2);
            }
            else
            {
                _candidateNotesCommand.CreateCandidateNote(noteCreator, note2);
            }

            AssertNote(true, note2, noteCreator);
            AssertNote(isShared2, note2, noteReader);

            // Check the order.

            AssertNotes(noteCreator, member, note2, note1);
            if (isShared1)
            {
                if (isShared2)
                {
                    AssertNotes(noteReader, member, note2, note1);
                }
                else
                {
                    AssertNotes(noteReader, member, note1);
                }
            }
            else
            {
                if (isShared2)
                {
                    AssertNotes(noteReader, member, note2);
                }
                else
                {
                    AssertNotes(noteReader, member);
                }
            }

            // Update the first note text.

            NoteCreationDelay();
            const string updatedText = "Updated first note";

            note1.Text = updatedText;
            _candidateNotesCommand.UpdateCandidateNote(noteCreator, note1);

            AssertNote(true, note1, noteCreator);
            AssertNote(isShared1, note1, noteReader);
            AssertNote(true, note2, noteCreator);
            AssertNote(isShared2, note2, noteReader);

            // Order should be reversed now.

            AssertNotes(noteCreator, member, note1, note2);
            if (isShared1)
            {
                if (isShared2)
                {
                    AssertNotes(noteReader, member, note1, note2);
                }
                else
                {
                    AssertNotes(noteReader, member, note1);
                }
            }
            else
            {
                if (isShared2)
                {
                    AssertNotes(noteReader, member, note2);
                }
                else
                {
                    AssertNotes(noteReader, member);
                }
            }

            // Delete the first note.

            _candidateNotesCommand.DeleteCandidateNode(noteCreator, note1.Id);

            Assert.IsNull(_candidateNotesCommand.GetCandidateNote(noteCreator, note1.Id));
            Assert.IsNull(_candidateNotesCommand.GetCandidateNote(noteReader, note1.Id));
            AssertNote(true, note2, noteCreator);
            AssertNote(isShared2, note2, noteReader);

            AssertNotes(noteCreator, member, note2);
            if (isShared2)
            {
                AssertNotes(noteReader, member, note2);
            }
            else
            {
                AssertNotes(noteReader, member);
            }
        }
コード例 #24
0
 void ICandidateNotesCommand.CreatePrivateNote(IEmployer employer, CandidateNote note)
 {
     Prepare(employer, note, false);
     _contenderNotesCommand.CreateNote(note);
 }
コード例 #25
0
ファイル: ApiNotesTests.cs プロジェクト: formist/LinkMe
 protected static void AssertModel(IEmployer createdBy, JsonNoteModel model, CandidateNote expectedNote)
 {
     AssertJsonSuccess(model);
     AssertModel(createdBy, model.Note, expectedNote);
 }
コード例 #26
0
 private static void Prepare(IEmployer employer, CandidateNote note, bool isShared)
 {
     note.RecruiterId    = employer.Id;
     note.OrganisationId = isShared ? employer.Organisation.Id : (Guid?)null;
 }
コード例 #27
0
        bool ICandidateNotesCommand.CanDeleteNote(IEmployer employer, CandidateNote note)
        {
            // Same thing at the moment.

            return(CanUpdateNote(employer, note));
        }
コード例 #28
0
 bool ICandidateNotesCommand.CanUpdateNote(IEmployer employer, CandidateNote note)
 {
     return(CanUpdateNote(employer, note));
 }