コード例 #1
0
        public IActionResult Edit([FromBody] DistributionListViewModel distributionViewModel)
        {
            try
            {
                var loggedUser   = UserHelper.CurrentUserGuid(HttpContext);
                var distribution = ObjectMapper <DistributionListViewModel, DistributionList> .Map(distributionViewModel);

                distribution.UpdatedOn = CurrentDateTimeHelper.GetCurrentDateTime();
                distribution.UpdatedBy = loggedUser;

                _distributionListService.Edit(distribution);

                _distributionListService.DeleteDistributionUserByDistributionListId(distributionViewModel.DistributionListGuid);

                //add selected users for distribution..
                AddDistributionUser(distributionViewModel, distribution, loggedUser);

                return(Ok(new { status = ResponseStatus.success.ToString(), message = "Successfully Updated !!" }));
            }
            catch (Exception e)
            {
                ModelState.AddModelError("", e.Message);
                return(BadRequestFormatter.BadRequest(this, e));
            }
        }
コード例 #2
0
        public IActionResult Add([FromBody] DistributionListViewModel distributionViewModel)
        {
            try
            {
                var checkDuplicateDistributionTitle = _distributionListService.IsDuplicateTitle(distributionViewModel.Title);

                if (checkDuplicateDistributionTitle)
                {
                    var errorMessage = "Found duplicate distribution title..";
                    ModelState.AddModelError("", errorMessage);
                    return(Ok(new { status = false, message = errorMessage }));
                }

                var loggedUser   = UserHelper.CurrentUserGuid(HttpContext);
                var distribution = ObjectMapper <DistributionListViewModel, DistributionList> .Map(distributionViewModel);

                distribution.DistributionListGuid = Guid.NewGuid();
                distribution.IsActive             = true;
                distribution.CreatedOn            = CurrentDateTimeHelper.GetCurrentDateTime();
                distribution.CreatedBy            = loggedUser;
                distribution.UpdatedOn            = CurrentDateTimeHelper.GetCurrentDateTime();

                //add selected users for distribution..
                _distributionListService.Add(distribution);

                AddDistributionUser(distributionViewModel, distribution, loggedUser);
                return(Ok(new { status = true, message = "Successfully Updated !!" }));
            }
            catch (Exception e)
            {
                ModelState.AddModelError("", e.Message);
                return(BadRequestFormatter.BadRequest(this, e));
            }
        }
コード例 #3
0
        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);
                    }
                }
            }
        }