public IHttpActionResult addInteraction(ContactInteraction interaction)
 {
     if (ModelState.IsValid)
     {
         if (interaction.Id == 0)
         {
             interaction.CreatedOn = DateTime.Now;
             var dto = new DateTimeOffset(interaction.Date);
             interaction.Date = dto.DateTime;
             var contact = _repo.Find <Contact>(interaction.ContactId);
             contact.LastInteraction = interaction.Date;
             _repo.Add(interaction);
             _repo.SaveChanges();
             return(Ok());
         }
         else
         {
             var original = _repo.Find <ContactInteraction>(interaction.Id);
             original.Id          = interaction.Id;
             original.Subject     = interaction.Subject;
             original.Description = interaction.Description;
             original.Date        = interaction.Date;
             original.ContactId   = interaction.ContactId;
             original.Contact     = interaction.Contact;
             _repo.SaveChanges();
             return(Ok());
         }
     }
     return(BadRequest());
 }
Exemple #2
0
        public void SetContactInteractionUpdatesExistingInteraction()
        {
            var userRepository    = new Mock <IRepository <InsideUser> >();
            var contactRepository = new LocalRepository <Contact>();

            var userManager    = new Mock <IIdentityMembershipProvider>();
            var tokenGenerator = new Mock <IAccessTokenProvider>();

            var budgetRepositoryMock = new Mock <IRepository <Budget> >();
            var clientRepositoryMock = new Mock <IRepository <Client> >();
            var serverTimeMock       = new Mock <IServerTime>();

            var accessToken = "AccessToken";
            var clientId    = 13;
            var contact     = new Contact()
            {
                Id       = 1,
                ClientId = clientId
            };

            contactRepository.Add(contact);

            var interaction1 = new ContactInteraction
            {
                Type  = "Rating",
                Value = "Lead"
            };

            contact.Interaction.Add(interaction1);

            var interaction2 = new Interaction()
            {
                Type  = "Rating",
                Value = "Ej Lead"
            };


            tokenGenerator.Setup(tg => tg.Validate(clientId, accessToken)).Returns(true);

            var controller = new ExternalController(
                userRepository.Object,
                contactRepository,
                tokenGenerator.Object,
                userManager.Object,
                budgetRepositoryMock.Object,
                clientRepositoryMock.Object,
                serverTimeMock.Object);


            var result = controller.SetContactInteraction(clientId, accessToken, contact.Id, interaction2) as OkNegotiatedContentResult <Contact>;

            Assert.IsTrue(
                contactRepository.Where(l => l.Id == l.Id)
                .First()
                .Interaction.Any(li => li.Type == "Rating" && li.Value == "Ej Lead"));

            Assert.IsFalse(
                contactRepository.Where(l => l.Id == l.Id)
                .First()
                .Interaction.Any(li => li.Type == "Rating" && li.Value == "Lead"));
        }