public int AddDistributionUser(DistributionUser distributionUser) { return(_distributionRepository.AddDistributionUser(distributionUser)); }
private void AddDistributionUser(DistributionListViewModel distributionViewModel, DistributionList distribution, Guid loggedUser) { List <DistributionUser> distributionUsers = new List <DistributionUser>(); //if select all is selected in grid.. if (distributionViewModel.UserSelection != null) { if (distributionViewModel.UserSelection.SelectedAll) { var users = _userService.GetUsersData(string.Empty) .Where(x => !string.IsNullOrEmpty(x.Firstname) && !string.IsNullOrEmpty(x.WorkEmail)); var usersExceptExcludelist = users.Where(x => !distributionViewModel.UserSelection.ExcludeList.Select(y => y.UserGuid).Contains(x.UserGuid)); if (usersExceptExcludelist.Count() > 0) { foreach (var user in usersExceptExcludelist) { var distributionUser = new DistributionUser() { DistributionUserGuid = Guid.NewGuid(), DistributionListGuid = distribution.DistributionListGuid, UserGuid = user.UserGuid, CreatedOn = CurrentDateTimeHelper.GetCurrentDateTime(), CreatedBy = loggedUser, UpdatedOn = CurrentDateTimeHelper.GetCurrentDateTime(), UpdatedBy = loggedUser }; distributionUsers.Add(distributionUser); } } //see if user has been selected from multi select drop down control... if (distributionViewModel.SelectedUsers.Count() > 0) { foreach (var user in distributionViewModel.SelectedUsers) { var distributionUser = new DistributionUser() { DistributionUserGuid = Guid.NewGuid(), DistributionListGuid = distribution.DistributionListGuid, UserGuid = user.UserGuid, CreatedOn = CurrentDateTimeHelper.GetCurrentDateTime(), CreatedBy = loggedUser, UpdatedOn = CurrentDateTimeHelper.GetCurrentDateTime(), UpdatedBy = loggedUser }; distributionUsers.Add(distributionUser); } } // finally save the distinct user.. var distributionUniqueUser = distributionUsers.GroupBy(p => p.UserGuid) .Select(g => g.FirstOrDefault()) .ToList();; if (distributionUniqueUser.Count() > 0) { foreach (var user in distributionUniqueUser) { var distributionUser = new DistributionUser() { DistributionUserGuid = Guid.NewGuid(), DistributionListGuid = distribution.DistributionListGuid, UserGuid = user.UserGuid, CreatedOn = CurrentDateTimeHelper.GetCurrentDateTime(), CreatedBy = loggedUser, UpdatedOn = CurrentDateTimeHelper.GetCurrentDateTime(), UpdatedBy = loggedUser }; _distributionListService.AddDistributionUser(distributionUser); } } } // select all is not selected in grid.. else { if (distributionViewModel.UserSelection.IncludeList.Count() > 0) { foreach (var user in distributionViewModel.UserSelection.IncludeList) { var distributionUser = new DistributionUser() { DistributionUserGuid = Guid.NewGuid(), DistributionListGuid = distribution.DistributionListGuid, UserGuid = user.UserGuid, CreatedOn = CurrentDateTimeHelper.GetCurrentDateTime(), CreatedBy = loggedUser, UpdatedOn = CurrentDateTimeHelper.GetCurrentDateTime(), UpdatedBy = loggedUser }; distributionUsers.Add(distributionUser); } } //see if user has been selected from multi select drop down control... if (distributionViewModel.SelectedUsers.Count() > 0) { foreach (var user in distributionViewModel.SelectedUsers) { var distributionUser = new DistributionUser() { DistributionUserGuid = Guid.NewGuid(), DistributionListGuid = distribution.DistributionListGuid, UserGuid = user.UserGuid, CreatedOn = CurrentDateTimeHelper.GetCurrentDateTime(), CreatedBy = loggedUser, UpdatedOn = CurrentDateTimeHelper.GetCurrentDateTime(), UpdatedBy = loggedUser }; distributionUsers.Add(distributionUser); } } // finally save the distinct user.. var distributionUniqueUser = distributionUsers.GroupBy(p => p.UserGuid) .Select(g => g.FirstOrDefault()) .ToList(); if (distributionUniqueUser.Count() > 0) { foreach (var user in distributionUniqueUser) { var distributionUser = new DistributionUser() { DistributionUserGuid = Guid.NewGuid(), DistributionListGuid = distribution.DistributionListGuid, UserGuid = user.UserGuid, CreatedOn = CurrentDateTimeHelper.GetCurrentDateTime(), CreatedBy = loggedUser, UpdatedOn = CurrentDateTimeHelper.GetCurrentDateTime(), UpdatedBy = loggedUser }; _distributionListService.AddDistributionUser(distributionUser); } } } } else { if (distributionViewModel.SelectedUsers.Count() > 0) { foreach (var user in distributionViewModel.SelectedUsers) { var distributionUser = new DistributionUser() { DistributionUserGuid = Guid.NewGuid(), DistributionListGuid = distribution.DistributionListGuid, UserGuid = user.UserGuid, CreatedOn = CurrentDateTimeHelper.GetCurrentDateTime(), CreatedBy = loggedUser, UpdatedOn = CurrentDateTimeHelper.GetCurrentDateTime(), UpdatedBy = loggedUser }; _distributionListService.AddDistributionUser(distributionUser); } } } }