예제 #1
0
        public static JobAc ProcessJobEntity(JobAc jobAc, ref List <dynamic> lstDocuments)
        {
            #region "MailComments"

            var lstMailComments = lstDocuments.Where(p => p.JobId == jobAc.Id && p.Type.ToString() == EntityType.MailComment.ToString()).ToList();

            if (lstMailComments.Any())
            {
                lstDocuments.RemoveAll(p => p.JobId == jobAc.Id && p.Type.ToString() == EntityType.MailComment.ToString());
                jobAc.UsedIn.Add(new UsedIn()
                {
                    Type = EntityType.MailComment.ToString(), Name = "Mail Comments", Entity = lstMailComments
                });
            }

            #endregion

            #region "CheckIns"

            var lstCheckIns = lstDocuments.Where(p => p.JobId == jobAc.Id && p.Type.ToString() == EntityType.CheckIn.ToString()).ToList();

            if (lstCheckIns.Any())
            {
                lstDocuments.RemoveAll(p => p.JobId == jobAc.Id && p.Type.ToString() == EntityType.CheckIn.ToString());
                jobAc.UsedIn.Add(new UsedIn()
                {
                    Type = EntityType.CheckIn.ToString(), Name = "Check Ins", Entity = lstCheckIns
                });
            }

            #endregion

            #region "Overview"
            var lstOverview = lstDocuments.Where(p => p.JobId == jobAc.Id && p.Type.ToString() == EntityType.Overview.ToString()).ToList();

            if (lstOverview.Any())
            {
                lstDocuments.RemoveAll(p => p.JobId == jobAc.Id && p.Type.ToString() == EntityType.Overview.ToString());
            }

            #endregion

            #region "Conclusion"
            var lstConclusion = lstDocuments.Where(p => p.JobId == jobAc.Id && p.Type.ToString() == EntityType.Conclusion.ToString()).ToList();

            if (lstConclusion.Any())
            {
                lstDocuments.RemoveAll(p => p.JobId == jobAc.Id && p.Type.ToString() == EntityType.Conclusion.ToString());
                jobAc.UsedIn.Add(new UsedIn()
                {
                    Type = EntityType.Conclusion.ToString(), Name = "Conclusion", Entity = lstConclusion
                });
            }

            #endregion

            return(jobAc);
        }
예제 #2
0
        public static JobAc ProcessJobWise(dynamic item, ref List <dynamic> lstFilteredItems, string type, string entityName)
        {
            var groupedList  = lstFilteredItems.GroupBy(x => x.JobId).ToList().Select(x => new { key = x.Key, lstItems = x.ToList() });
            var getKeyObject = groupedList.FirstOrDefault(x => x.key == item.JobId);

            if (getKeyObject != null && getKeyObject.lstItems.Count > 0)
            {
                var jobAc = new JobAc
                {
                    Type        = type,
                    Id          = item.JobId,
                    Title       = item.JobTitle,
                    Description = item.JobDescription,
                    Address     = item.JobAddress,

                    CreatedDateTime = item.JobCreatedDateTime,
                    UpdatedDateTime = item.JobUpdatedDateTime,
                    UpdatedBy       = item.JobUpdatedBy,

                    TeamName = item.TeamName,
                    TeamIcon = item.TeamIcon,
                    UsedIn   = new List <UsedIn>()
                };

                foreach (var singleItem in getKeyObject.lstItems)
                {
                    jobAc.UsedIn.Add(new UsedIn()
                    {
                        Type = type, Name = entityName, Entity = new List <dynamic> {
                            (dynamic)singleItem
                        }
                    });
                }

                lstFilteredItems.RemoveAll(x => x.JobId == item.JobId);

                return(jobAc);
            }
            return(null);
        }