예제 #1
0
        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));
        }
예제 #2
0
        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));
        }