Example #1
0
 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);
                    }
                }
            }
        }