Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
            }
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
        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);
        }
Example #7
0
        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);
        }
Example #8
0
        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());
        }
Example #10
0
        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);
        }
Example #11
0
        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);
        }
Example #12
0
        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);
        }
Example #13
0
 public bool ChangeOrderStorageState(OrderStorageDto orderStorageDto, bool finished)
 {
     _orderRepository.ChangeOrderStorageState(orderStorageDto.OrderId, finished);
     return(_unitOfWork2.SaveChanges());
 }
Example #14
0
 public void InsertDayInfo(DayFinished dayFinished)
 {
     _dayFinishedRepository.Insert(dayFinished);
     _unitOfWork2.SaveChanges();
 }