重新格式化显示的数据

时间:2016-04-04 09:39:19

标签: asp.net angularjs

Data layout

重新格式化第二个视图中显示的数据的最简单方法是什么? 我在后端使用.Net,在前端使用Angular。 我有一个方法可以返回具有状态的用户集合的出勤集合,我可以将它们过滤为仅查询日期范围内的数据。 我不知道如何让用户显示相同的数据,因为数据库结构如下: 培训有很多时间表。 时间表有很多人参加。 出勤有很多服务员,每个服务员都有自己的身份。

现在很容易通过出席情况显示数据,但我无法弄清楚如何通过服务员(用户)显示数据来显示他们的所有出席情况。

是否有任何人可以在类似的东西上提供的例子,以及如何在Asp或角度上进行。

我尝试过创建新的dto模型,但是我不能在不使用很多查询的情况下获得必要的数据,并且映射数据的次数太多了。

我搜索过类似的问题,但没有发现任何相关问题。

编辑: 我正在寻找最简单的解决方案。 我想知道如何解决这两种方式,我无法决定哪种方式更好? 这是当前方法,适用于第一个视图:

 public ICollection<AttendanceModel> ScheduleLog(int scheduleId, SearchAttendancesModel searchAttendances)
    {

        if (searchAttendances == null)
            throw new ArgumentNullException("searchAttendances");
        if (searchAttendances.Attendants == null)
            throw new ArgumentNullException("searchAttendances.Attendants");
        if (searchAttendances.AttendantStatuses == null)
            throw new ArgumentNullException("searchAttendances.AttendantStatuses");
        var query = _context
                        .Attendances
                        .Where(x=>x.ScheduleId==scheduleId)
                        .AsQueryable();
        if (searchAttendances.FromDate != DateTime.MinValue)
        {
            query = query.
                    Where(x => x.Date >= searchAttendances.FromDate);
        }
        if (searchAttendances.ToDate != DateTime.MinValue)
        {
            query = query.
                    Where(x => x.Date <= searchAttendances.ToDate);
        }

        return query.ToList().Select(x => x.MapToAttendanceModel()).ToList();
    }

它为我提供了第一个视图显示的必要数据,我可以通过表格重复显示,但正如我已经说过的,我有很多困难按用户而不是按计划分组数据,然后显示该数据(每个用户的所有出席次数)而不是每次出席的所有用户。 以下是我的模型的样子:

这是所有出席的时间表:

public class ScheduleModel
{
    public int Id { get; set; }

    [Required]
    public DateTime StartDate { get; set; }

    [Required]
    public DateTime EndDate { get; set; }
    public string Description { get; set; }
    public virtual ICollection<AttendanceModel> Attendances { get; set; }
}

这是出席日期,出席和收集服务员的日期,每个服务员都有用户及其身份。

public class AttendanceModel
{
    public int Id { get; set; }
    [Required]
    public DateTime Date { get; set; }
    [Required]
    public virtual ICollection<AttendantModel> Attendants { get; set; }
}

这是一名具有该出勤用户和身份的助理

public class AttendantModel
{
    public int Id { get; set; }
    public virtual LookupModel ApplicantStatus { get; set; }
    public virtual UserModel User { get; set; }
}

0 个答案:

没有答案