Пример #1
0
        public List <TeamSite> GetTeamSites([FromQuery] int id, [FromQuery] string startdate, [FromQuery] string enddate)
        {
            string          query     = "SELECT SessionSite FROM SessionEmployeeTable WHERE EmployeeId=@EmployeeId AND SessionDate=@Date;";
            Team            team      = GetByIdStatic(id);
            List <string>   dates     = new List <string>();
            List <TeamSite> teamsites = new List <TeamSite>();

            for (DateTime dt = DateTime.Parse(startdate); dt <= DateTime.Parse(enddate); dt = dt.AddDays(1))
            {
                dates.Add(dt.ToString("yyyy-MM-dd"));
            }
            using (SqlConnection conn = new SqlConnection(Connection.ConnString))
            {
                try
                {
                    conn.Open();
                    foreach (string date in dates)
                    {
                        TeamSite teamsite = new TeamSite
                        {
                            Date    = date,
                            Day     = DateTime.Parse(date).DayOfWeek.ToString(),
                            Members = new List <SessionEmployee>()
                        };
                        foreach (TeamMember member in team.Members)
                        {
                            SessionEmployee employee = new SessionEmployee();
                            employee.EmployeeName = member.EmployeeName;
                            List <string> sites = new List <string>();
                            sites = conn.Query <string>(query, new { date, member.EmployeeId }).ToList();
                            if (sites.Count < 1)
                            {
                                employee.SessionSite = AbsenceController.GetEmployeeStatus(member.EmployeeId, date);
                            }
                            else if (sites.Count > 0)
                            {
                                employee.SessionSite = string.Join(", ", sites);
                            }
                            teamsite.Members.Add(employee);
                        }
                        teamsites.Add(teamsite);
                    }
                }
                catch (Exception ex)
                {
                    System.Diagnostics.Debug.WriteLine(ex);
                }
            }
            return(teamsites);
        }