Example #1
0
        public List <ProjectDTO> GetTeamProjects(OrganisationTeam team)
        {
            var projects = new List <ProjectDTO>();

            foreach (var user in team.Users)
            {
                var userProjects = user.OrgUser.Assignments
                                   .Where(a => a.Project.OrganisationId == team.OrganisationId)
                                   .Select(x => Mapper.Map <ProjectDTO>(x.Project))
                                   .ToList();

                projects.AddRange(userProjects);
            }

            var result = projects.Distinct().ToList();

            foreach (var p in result)
            {
                var lastEntry = UnitOfWork.FilledFormsRepository
                                .AllAsNoTracking
                                .Where(x => x.ProjectId == p.Id)
                                .OrderByDescending(x => x.SurveyDate)
                                .Take(1)
                                .FirstOrDefault();

                if (lastEntry != null)
                {
                    p.LastEntry = lastEntry.SurveyDate;
                }
            }

            return(result);
        }
Example #2
0
        private void NotifyUserAboutLeavingTeam(OrganisationTeam team, string userEmail)
        {
            var content = @"<p>You have left <strong>" + team.Name + @"</strong> from <strong>" + team.Organisation.Name + @"</strong>.</p>";

            var email = new Email
            {
                To      = userEmail,
                Subject = $"Left organization team - {team.Name}",
                Content = WebHelpers.GenerateEmailTemplate(content, "You have left a team")
            };

            UnitOfWork.EmailsRepository.InsertOrUpdate(email);
        }
Example #3
0
        public List <OrgUserDTO> GetAssignableUsers(OrganisationTeam team)
        {
            var users = UnitOfWork.OrgUsersRepository
                        .AllIncluding(u => u.Type)
                        .Where(u => u.OrganisationId == team.OrganisationId)
                        .OrderBy(u => u.Surname)
                        .ThenBy(u => u.FirstName)
                        .ToList()
                        .Select(u => Mapper.Map <OrgUserDTO>(u))
                        .ToList();

            var result = users
                         .Where(x => !team.Users.Any(u => u.OrgUserId == x.Id))
                         .ToList();

            return(result);
        }
Example #4
0
        public IHttpActionResult Post([FromBody] OrganisationTeamDTO value)
        {
            var orgTeam = new OrganisationTeam
            {
                Name        = value.Name,
                Description = value.Description,
                Colour      = value.Colour,
                IsActive    = value.IsActive
            };

            if (CurrentUser is OrgUser)
            {
                orgTeam.Organisation = CurrentOrgUser.Organisation;
            }
            else
            {
                if (value.Organisation == null)
                {
                    return(BadRequest("organisation is required"));
                }

                orgTeam.OrganisationId = Guid.Parse(value.Organisation.Id);
            }

            try
            {
                UnitOfWork.OrganisationTeamsRepository.InsertOrUpdate(orgTeam);
                UnitOfWork.Save();

                MemoryCacher.DeleteStartingWith(CACHE_KEY);

                return(Ok());
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }