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()); }
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")); }