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