public ActionResult CreateAjaxAddCustomerContributorGrid([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")] IEnumerable <BulkCustomerContributorViewModel> customerContributors) { var outputContributors = new List <BulkCustomerContributorViewModel>(); if (ModelState.IsValid) { var inputContributors = customerContributors as IList <BulkCustomerContributorViewModel> ?? customerContributors.ToList(); try { if (customerContributors != null && inputContributors.Any()) { var userName = _contextManager.UserManager.Name; var now = DateTime.Now; var customerId = _appUserContext.Current.CurrentCustomer.Id; var contributors = _contributorService.GetCustomersContributors(customerId).Select(c => c.UserId).ToList(); foreach (var contributor in inputContributors) { if (string.IsNullOrEmpty(contributor.UserId) || contributors.Contains(contributor.UserId)) { continue; } var user = _userManager.Users.FirstOrDefault(u => u.Id == contributor.UserId); if (user != null) { var newContributor = new Contributor { UserId = contributor.UserId, EmailAddress = user.Email, CustomerId = customerId, InsertedBy = userName, InsertedDate = now, UpdatedBy = userName, UpdatedDate = now }; newContributor.Id = _contributorService.Create(newContributor); outputContributors.Add(Mapper.Map <BulkCustomerContributorViewModel>(newContributor)); } } } } catch (Exception ex) { _contextManager.ResponseManager.StatusCode = 500; _contextManager.ResponseManager.AppendHeader(ModelStateErrorNames.ErrorMessage, ex.Message); } } return(Json(outputContributors.ToDataSourceResult(request, ModelState))); }
public void ContributorService_Create_CallInsertCustomerAndCallsSaveChanges() { #region Arrange var dateTimeNow = DateTime.Now; var contributor = new Contributor { Id = 3, UserId = Guid.NewGuid().ToString(), CustomerId = 2, EmailAddress = "*****@*****.**", InsertedBy = UserNameOne, InsertedDate = dateTimeNow, UpdatedBy = UserNameOne, UpdatedDate = dateTimeNow, }; #endregion #region Act var response = _contributorService.Create(contributor); #endregion #region Assert _mockContributorRepository.Verify(x => x.Insert(It.IsAny <Contributor>()), Times.Once()); _mockUnitOfWork.Verify(x => x.Save(), Times.Exactly(1)); Assert.IsNotNull(response); Assert.AreEqual(_contributors.Count, response); #endregion }