public void ApproveKudos(int kudosLogId, UserAndOrganizationDTO userOrg) { var kudosLog = _kudosLogsDbSet .Include(x => x.Employee) .First(x => x.Id == kudosLogId && x.OrganizationId == userOrg.OrganizationId); kudosLog.Approve(userOrg.UserId); if (!kudosLog.IsRecipientDeleted()) { if (kudosLog.IsMinus()) { _asyncRunner.Run <IKudosNotificationService>(n => n.NotifyApprovedKudosDecreaseRecipient(kudosLog), _uow.ConnectionName); } else { _asyncRunner.Run <IKudosNotificationService>(n => n.NotifyApprovedKudosRecipient(kudosLog), _uow.ConnectionName); } } _uow.SaveChanges(false); UpdateProfileKudos(kudosLog.Employee, userOrg); }
public NewlyCreatedPostDTO CreateNewPost(NewPostDTO newPostDto) { var wall = _wallsDbSet. FirstOrDefault(x => x.Id == newPostDto.WallId && x.OrganizationId == newPostDto.OrganizationId); if (wall == null) { throw new ValidationException(ErrorCodes.ContentDoesNotExist, "Wall not found"); } var post = new Post { AuthorId = newPostDto.UserId, Created = DateTime.UtcNow, LastEdit = DateTime.UtcNow, CreatedBy = newPostDto.UserId, MessageBody = newPostDto.MessageBody, PictureId = newPostDto.PictureId, SharedEventId = newPostDto.SharedEventId, LastActivity = DateTime.UtcNow, WallId = newPostDto.WallId, Likes = new LikesCollection() }; _postsDbSet.Add(post); _uow.SaveChanges(newPostDto.UserId); var postCreator = _usersDbSet.Single(user => user.Id == newPostDto.UserId); var postCreatorDto = MapUserToDto(postCreator); var newlyCreatedPostDto = MapNewlyCreatedPostToDto(post, postCreatorDto, wall.Type); return(newlyCreatedPostDto); }
public async Task AddProviderImage(string userId, ClaimsIdentity externalIdentity) { var user = _usersDbSet.First(u => u.Id == userId); if (user.PictureId == null && externalIdentity.FindFirst("picture") != null) { byte[] data = data = await new WebClient().DownloadDataTaskAsync(externalIdentity.FindFirst("picture").Value); user.PictureId = await _pictureService.UploadFromStream(new MemoryStream(data), "image/jpeg", Guid.NewGuid().ToString() + ".jpg", user.OrganizationId); _uow.SaveChanges(userId); } }
public void Delete(string userToDelete, UserAndOrganizationDTO userOrg) { var user = _usersDbSet .Single(u => u.Id == userToDelete && u.OrganizationId == userOrg.OrganizationId); ClearUserKudos(user); UnassignUserFromWalls(userToDelete, userOrg.OrganizationId); _userManager.RemoveLogins(userToDelete); _usersDbSet.Remove(user); _uow.SaveChanges(userOrg.UserId); }
private void CreateNewLinks(AddEditDeleteExternalLinkDTO updateLinks, DateTime timestamp) { foreach (var link in updateLinks.LinksToCreate) { var newLink = new ExternalLink { Name = link.Name, Url = link.Url, OrganizationId = updateLinks.OrganizationId, Created = timestamp, CreatedBy = updateLinks.UserId, Modified = timestamp }; _externalLinkDbSet.Add(newLink); } _uow.SaveChanges(false); }
public void AddNewToken(RefreshTokenDTO tokenDto) { var timestamp = DateTime.UtcNow; var newToken = new RefreshToken { Id = tokenDto.Id, ExpiresUtc = tokenDto.ExpiresUtc, IssuedUtc = tokenDto.IssuedUtc, Subject = tokenDto.Subject, ProtectedTicket = tokenDto.ProtectedTicket, Created = timestamp, Modified = timestamp, OrganizationId = tokenDto.OrganizationId, CreatedBy = tokenDto.Subject, ModifiedBy = tokenDto.Subject }; _refreshTokensDbSet.Add(newToken); _uow.SaveChanges(false); }
public void CreateMonitor(MonitorDTO newMonitor, UserAndOrganizationDTO userAndOrganizationDTO) { if (_monitorsDbSet.Any(x => x.Name == newMonitor.Name && x.OrganizationId == userAndOrganizationDTO.OrganizationId)) { throw new ValidationException(ErrorCodes.DuplicatesIntolerable, "Monitor names should be unique"); } var timestamp = DateTime.UtcNow; var monitor = new Monitor() { Created = timestamp, Modified = timestamp, CreatedBy = userAndOrganizationDTO.UserId, ModifiedBy = userAndOrganizationDTO.UserId, Name = newMonitor.Name, OrganizationId = userAndOrganizationDTO.OrganizationId }; _monitorsDbSet.Add(monitor); _uow.SaveChanges(false); }
public void UpdateWall(UpdateWallDto updateWallDto) { var wall = _wallsDbSet .Include(w => w.Moderators) .Include(w => w.Members) .FirstOrDefault(w => w.Id == updateWallDto.Id && w.OrganizationId == updateWallDto.OrganizationId); if (wall == null) { throw new ValidationException(ErrorCodes.ContentDoesNotExist, "Wall not found"); } var isWallAdmin = _permissionService.UserHasPermission(updateWallDto, AdministrationPermissions.Wall); var isModerator = wall.Moderators.Any(m => m.UserId == updateWallDto.UserId); if (!isWallAdmin && !isModerator) { throw new UnauthorizedException(); } IEnumerable <string> newMembersIds = new List <string>(); IEnumerable <string> newModeratorsIds = new List <string>(); ICollection <WallModerator> removedModerators = new List <WallModerator>(); if (updateWallDto.ModeratorsIds != null) { newMembersIds = updateWallDto.ModeratorsIds.Where(x => !wall.Members.Select(m => m.UserId).Contains(x)); newModeratorsIds = updateWallDto.ModeratorsIds.Where(x => !wall.Moderators.Select(m => m.UserId).Contains(x)); removedModerators = wall.Moderators.Where(x => !updateWallDto.ModeratorsIds.Contains(x.UserId)).ToList(); } wall.Description = updateWallDto.Description; wall.Logo = updateWallDto.Logo; wall.Name = updateWallDto.Name; foreach (var newMemberId in newMembersIds) { wall.Members.Add(new WallMember { UserId = newMemberId }); } foreach (var newModeratorId in newModeratorsIds) { wall.Moderators.Add(new WallModerator { UserId = newModeratorId }); } foreach (var removedModerator in removedModerators) { _moderatorsDbSet.Remove(removedModerator); wall.Moderators.Remove(removedModerator); } _uow.SaveChanges(updateWallDto.UserId); }
public bool UpdateTestCount(OrderGatherSearchDto orderGatherSearchDto) { int firstTestCount = _opwayDataRepository.GetFirstTestCount(orderGatherSearchDto.SnMin, orderGatherSearchDto.SnMax); int lastTestCount = _opwayDataRepository.GetLastTestCount(orderGatherSearchDto.SnMin, orderGatherSearchDto.SnMax); var order = _orderRepository.GetOrderByOrderId(orderGatherSearchDto.OrderId); if (order.FisrtTestCount != firstTestCount || order.LastTestCount != lastTestCount) { order.FisrtTestCount = firstTestCount; order.LastTestCount = lastTestCount; _orderRepository.Update(order); } return(_unitOfWork2.SaveChanges()); }
public void AddProjectsToUser(string userId, IEnumerable <int> newProjectIds, UserAndOrganizationDTO userOrg) { var user = _usersDbSet .Include(x => x.Projects) .First(x => x.Id == userId && x.OrganizationId == userOrg.OrganizationId); var wallsThatShouldBeRemovedFromUser = user.Projects .Where(x => !newProjectIds.Contains(x.Id)) .Select(x => x.WallId) .ToList(); var wallsThatShouldBeAddedToUser = _projectsDbSet.Where(x => newProjectIds.Contains(x.Id)).Select(x => x.WallId).ToList(); _wallService.AddMemberToWalls(userId, wallsThatShouldBeAddedToUser); _wallService.RemoveMemberFromWalls(userId, wallsThatShouldBeRemovedFromUser); user.Projects = _projectsDbSet.Where(p => newProjectIds.Contains(p.Id)).ToList(); _uow.SaveChanges(userOrg.UserId); }
public void DeleteBook(int bookId, UserAndOrganizationDTO userOrg) { var bookOffices = _bookOfficesDbSet .Include(x => x.Book) .Include(x => x.BookLogs) .Where(x => x.BookId == bookId && x.OrganizationId == userOrg.OrganizationId) .ToList(); _bookServiceValidator.CheckIfBookOfficesFoundWhileDeleting(bookOffices.Any()); UpdateMetaFields(userOrg, bookOffices); _uow.SaveChanges(false); RemoveBookRelatedEntities(bookOffices); _uow.SaveChanges(false); }
public void SetManagingDirector(string userId, UserAndOrganizationDTO userAndOrganizationDTO) { if (!_roleService.HasRole(userId, Contracts.Constants.Roles.Manager)) { throw new ValidationException(ErrorCodes.UserIsNotAManager, "User need to have manager role to become a managing director"); } var managingDirectors = _usersDbSet .Include(x => x.Roles) .Where(x => x.OrganizationId == userAndOrganizationDTO.OrganizationId) .Where(x => x.IsManagingDirector || x.Id == userId) .ToList(); foreach (var currentDirector in managingDirectors.Where(x => x.IsManagingDirector)) { currentDirector.IsManagingDirector = false; } var newManagingDirector = managingDirectors.Where(x => x.Id == userId).First(); newManagingDirector.IsManagingDirector = true; _uow.SaveChanges(userAndOrganizationDTO.UserId); }
public bool ChangeOrderStorageState(OrderStorageDto orderStorageDto, bool finished) { _orderRepository.ChangeOrderStorageState(orderStorageDto.OrderId, finished); return(_unitOfWork2.SaveChanges()); }
public void InsertDayInfo(DayFinished dayFinished) { _dayFinishedRepository.Insert(dayFinished); _unitOfWork2.SaveChanges(); }