public async Task <IActionResult> GetAllTodos(bool includeChecked) { var UsersOrgId = int.Parse(User.FindFirst("Organization").Value); var UsersId = int.Parse(User.FindFirst("UsersId").Value); List <ActivityNextStepDto> activityList = new List <ActivityNextStepDto>(); var activities = new List <Activity>(); if (includeChecked) { activities = await _context.Activities .FromSql("SELECT * FROM Activities JOIN ActivityUsers ON Activities.Id = ActivityUsers.ActivityId WHERE ActivityUsers.UserId = {0} AND Activities.OrganizationId = {1} AND Activities.TodoChecked = true AND Activities.Type == 'ToDo' ORDER BY Date Desc", UsersId, UsersOrgId) .ToListAsync(); } if (!includeChecked) { activities = await _context.Activities .FromSql("SELECT * FROM Activities JOIN ActivityUsers ON Activities.Id = ActivityUsers.ActivityId WHERE ActivityUsers.UserId = {0} AND Activities.OrganizationId = {1} AND Activities.TodoChecked = false AND Activities.Type == 'ToDo' ORDER BY Date Desc", UsersId, UsersOrgId) .ToListAsync(); } foreach (var activity in activities) { var creatorNameActivity = await _context.Users.SingleOrDefaultAsync(x => x.Id == activity.CreatorId); var nextStep = new NextStep(); var nextstepUsers = new List <User>(); var nextstepContactpersons = new List <Contactperson>(); if (activity.NextStepId != null) { nextStep = await _context.NextStep.SingleOrDefaultAsync(x => x.Id == activity.NextStepId); var creatorNameNextStep = await _context.Users.SingleOrDefaultAsync(x => x.Id == nextStep.CreatorId); nextstepUsers = await _context.Users .FromSql("SELECT * FROM AspNetUsers JOIN NextstepUsers ON AspNetUsers.Id = NextstepUsers.UserId WHERE NextstepUsers.NextstepId = {0}", nextStep.Id).ToListAsync(); nextstepContactpersons = await _context.Contactpersons .FromSql("SELECT * FROM Contactpersons JOIN NextstepContactpersons ON Contactpersons.Id = NextstepContactpersons.ContactpersonId WHERE NextstepContactpersons.NextstepId = {0}", nextStep.Id).ToListAsync(); } var activityUsers = await _context.Users .FromSql("SELECT * FROM AspNetUsers JOIN ActivityUsers ON AspNetUsers.Id = ActivityUsers.UserId WHERE ActivityUsers.ActivityId = {0}", activity.Id).ToListAsync(); var activityContactpersons = await _context.Contactpersons .FromSql("SELECT * FROM Contactpersons JOIN ActivityContactpersons ON Contactpersons.Id = ActivityContactpersons.ContactpersonId WHERE ActivityContactpersons.ActivityId = {0}", activity.Id).ToListAsync(); var activityNextStepDto = new ActivityNextStepDto() { Id = activity.Id, NextStepId = nextStep.Id, Description = activity.Description, Title = activity.Title, Date = activity.Date, Type = activity.Type.ToString(), TodoChecked = activity.TodoChecked, Creator = creatorNameActivity.UserName, BusinessParticipants = activityUsers, CustomerParticipiants = activityContactpersons, Archived = activity.Archived }; if (nextStep.Title != null) { activityNextStepDto.NextStepBusinessParticipants = nextstepUsers; activityNextStepDto.NextStepCustomerParticipiants = nextstepContactpersons; activityNextStepDto.NextStepDescription = nextStep.Description; activityNextStepDto.NextStepTitle = nextStep.Title; activityNextStepDto.NextStepDate = nextStep.Date; activityNextStepDto.NextStepType = nextStep.Type.ToString(); activityNextStepDto.NextStepCreator = creatorNameActivity.UserName; } activityList.Add(activityNextStepDto); } return(Ok(activityList)); }
public async Task <IActionResult> GetAllArchivedActivitiesForCustomer(int customerId, bool includeArchived) { var UsersOrgId = int.Parse(User.FindFirst("Organization").Value); List <ActivityNextStepDto> activityList = new List <ActivityNextStepDto>(); var activities = new List <Activity>(); if (includeArchived) { activities = await _context.Activities.Where(x => x.Customer.Id == customerId && x.Customer.OrganizationId == UsersOrgId).ToListAsync(); } else if (!includeArchived) { activities = await _context.Activities.Where(x => x.Customer.Id == customerId && x.Customer.OrganizationId == UsersOrgId && x.Archived == false).ToListAsync(); } else { Console.WriteLine("Something went wrong"); } foreach (var activity in activities) { var creatorNameActivity = await _context.Users.SingleOrDefaultAsync(x => x.Id == activity.CreatorId); var nextStep = new NextStep(); var nextstepUsers = new List <User>(); var nextstepContactpersons = new List <Contactperson>(); if (activity.NextStepId != null) { nextStep = await _context.NextStep.SingleOrDefaultAsync(x => x.Id == activity.NextStepId); var creatorNameNextStep = await _context.Users.SingleOrDefaultAsync(x => x.Id == nextStep.CreatorId); nextstepUsers = await _context.Users .FromSql("SELECT * FROM AspNetUsers JOIN NextstepUsers ON AspNetUsers.Id = NextstepUsers.UserId WHERE NextstepUsers.NextstepId = {0}", nextStep.Id).ToListAsync(); nextstepContactpersons = await _context.Contactpersons .FromSql("SELECT * FROM Contactpersons JOIN NextstepContactpersons ON Contactpersons.Id = NextstepContactpersons.ContactpersonId WHERE NextstepContactpersons.NextstepId = {0}", nextStep.Id).ToListAsync(); } var activityUsers = await _context.Users .FromSql("SELECT * FROM AspNetUsers JOIN ActivityUsers ON AspNetUsers.Id = ActivityUsers.UserId WHERE ActivityUsers.ActivityId = {0}", activity.Id).ToListAsync(); var activityContactpersons = await _context.Contactpersons .FromSql("SELECT * FROM Contactpersons JOIN ActivityContactpersons ON Contactpersons.Id = ActivityContactpersons.ContactpersonId WHERE ActivityContactpersons.ActivityId = {0}", activity.Id).ToListAsync(); var activityNextStepDto = new ActivityNextStepDto() { Id = activity.Id, NextStepId = nextStep.Id, Description = activity.Description, Title = activity.Title, Date = activity.Date, Type = activity.Type.ToString(), Creator = creatorNameActivity.UserName, BusinessParticipants = activityUsers, CustomerParticipiants = activityContactpersons, Archived = activity.Archived }; if (nextStep.Title != null) { activityNextStepDto.NextStepBusinessParticipants = nextstepUsers; activityNextStepDto.NextStepCustomerParticipiants = nextstepContactpersons; activityNextStepDto.NextStepDescription = nextStep.Description; activityNextStepDto.NextStepTitle = nextStep.Title; activityNextStepDto.NextStepDate = nextStep.Date; activityNextStepDto.NextStepType = nextStep.Type.ToString(); activityNextStepDto.NextStepCreator = creatorNameActivity.UserName; } activityList.Add(activityNextStepDto); } return(Ok(activityList)); }