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