Esempio n. 1
0
        public IEnumerable <Demand> GetAll(string filterType, List <string> roles, Guid userAccountId)
        {
            Expression <Func <Demand, bool> > expression = p => p.RecordStatus == Helpdesk.Model.Enums.RecordStatus.A;

            if (!string.IsNullOrEmpty(filterType))
            {
                switch (filterType)
                {
                case "completed":
                    expression = expression.And(p => p.IsCompleted && p.IsDissolved && p.IsAccepted && p.ApplicationUserAccountId == userAccountId);
                    break;

                case "assigned":
                    expression = expression.And(p => p.IsAccepted && p.IsDissolved != true && p.IsCompleted != true && p.ApplicationUserAccountId == userAccountId);
                    break;

                case "notAssigned":
                    expression = expression.And(p => p.IsAccepted != true && p.IsDissolved != true && p.IsAccepted != true);
                    break;

                case "solved":
                    expression = expression.And(p => p.IsDissolved && p.IsCompleted != true && p.IsAccepted && p.ApplicationUserAccountId == userAccountId);
                    break;

                default:
                    break;
                }
            }

            var data = demandRepository.GetAll(expression);

            return(data);
        }
Esempio n. 2
0
 public IActionResult Get()
 {
     try
     {
         return(Ok(_DemandRepository.GetAll()));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
Esempio n. 3
0
        public string AnnualOrMonthlyReportJson(int year, int month, string taskStatusfilterKey)
        {
            Expression <Func <Demand, bool> > expression = p => p.RecordStatus == Helpdesk.Model.Enums.RecordStatus.A;

            if (year != 0 && month == 0)
            {
                expression = expression.And(p => p.CreateDate.Value.Year == year);
            }

            if (month != 0 && year != 0)
            {
                expression = p => p.CreateDate.Value.Month == month && p.CreateDate.Value.Year == year;
            }

            if (!string.IsNullOrEmpty(taskStatusfilterKey))
            {
                switch (taskStatusfilterKey)
                {
                case "dissolved":     // çözülmüş
                    expression = expression.And(p => p.IsDissolved == true);
                    break;

                case "completed":     // tamamlandı
                    expression = expression.And(p => p.IsCompleted == true);
                    break;

                case "assigned":     // atanmış
                    expression = expression.And(p => p.IsAccepted == true);
                    break;

                case "notAssigned":     // acık
                    expression = expression.And(p => p.IsAccepted != true);
                    break;

                default:
                    expression = expression.And(p => p.IsAccepted != true);
                    break;
                }
            }
            else
            {
                expression = expression.And(p => p.IsAccepted != true);
            }

            var demands = demandRepository.GetAll(expression, out int records, null);

            if (taskStatusfilterKey == "notAssigned")
            {
                var emergencys = orderOfUrgencyService.GetAll();
                var joinedData = emergencys.GroupJoin(inner: demands,
                                                      outerKeySelector: urgency => urgency.Id,
                                                      innerKeySelector: d => d.OrderOfUrgencyId,
                                                      resultSelector: (urgency, uList) => new
                {
                    Key   = urgency.Id,
                    Name  = urgency.Title,
                    Count = uList.Count()
                });
                return(JsonConvert.SerializeObject(joinedData));
            }
            else
            {
                var agents     = applicationUserRepository.GetAll(/*a => a.RecordStatus == Helpdesk.Model.Enums.RecordStatus.A*/);
                var joinedData = agents.GroupJoin(inner: demands,
                                                  outerKeySelector: agent => agent.AccountId,
                                                  innerKeySelector: d => d.ApplicationUserAccountId,
                                                  resultSelector: (agent, dList) => new
                {
                    Key   = agent.Id,
                    Name  = agent.FirstName + " " + agent.LastName,
                    Count = dList.Count()
                });

                return(JsonConvert.SerializeObject(joinedData));
            }
        }