Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/19/10 09:17:24 (14 years ago)
Author:
kgrading
Message:

added minor speedups and better transaction handling to the server (#828)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/3.2/sources/HeuristicLab.Hive.Server.LINQDataAccess/3.2/UptimeCalendarDao.cs

    r3578 r3931  
    9999
    100100    public IEnumerable<AppointmentDto> GetCalendarForClient(ClientDto client) {
    101       Client dbc = Context.Clients.SingleOrDefault(c => c.ResourceId.Equals(client.Id));
     101      Client dbc = Context.Resources.OfType<Client>().SingleOrDefault(c => c.ResourceId.Equals(client.Id));
    102102      IList<AppointmentDto> appointments = new List<AppointmentDto>();
    103103      if (dbc != null) {
    104104        ClientGroup cg =
    105           Context.ClientGroups.SingleOrDefault(cgroup => cgroup.ResourceId.Equals(dbc.UseCalendarFromResourceId));
     105          Context.Resources.OfType<ClientGroup>().SingleOrDefault(cgroup => cgroup.ResourceId.Equals(dbc.UseCalendarFromResourceId));
    106106        //in case no plan has been set
    107107        if (cg == null)
    108           if (dbc.Resource.ClientGroup_Resources.FirstOrDefault() != null)
    109             cg = dbc.Resource.ClientGroup_Resources.FirstOrDefault().ClientGroup;
     108          if (dbc.ClientGroup_Resources_Parents.FirstOrDefault() != null)
     109            cg = dbc.ClientGroup_Resources_Parents.FirstOrDefault().ClientGroup;
    110110
    111111        if (cg == null)
    112112          return appointments;
    113113
    114         while (cg.Resource.UptimeCalendars.Count == 0) {
    115           if (cg.Resource.ClientGroup_Resources.FirstOrDefault() != null)
    116             cg = cg.Resource.ClientGroup_Resources.FirstOrDefault().ClientGroup;
     114        while (cg.UptimeCalendars.Count == 0) {
     115          if (cg.ClientGroup_Resources_Parents.FirstOrDefault() != null)
     116            cg = cg.ClientGroup_Resources_Parents.FirstOrDefault().ClientGroup;
    117117          else {
    118118            break;
     
    120120        }
    121121
    122         foreach (UptimeCalendar appointment in cg.Resource.UptimeCalendars) {
     122        foreach (UptimeCalendar appointment in cg.UptimeCalendars) {
    123123          appointments.Add(EntityToDto(appointment,null)); 
    124124        }
     
    131131     
    132132      //Get the current ClientGroup
    133       ClientGroup cg = Context.ClientGroups.SingleOrDefault(cgroup => cgroup.ResourceId.Equals(groupId));
     133      ClientGroup cg = Context.Resources.OfType<ClientGroup>().SingleOrDefault(cgroup => cgroup.ResourceId.Equals(groupId));
    134134      if(cg == null)
    135135        return;
    136136
    137137      //Get all the affected clients
    138       List<Client> clients = Context.Clients.Where(c => c.UseCalendarFromResourceId.Equals(cg.ResourceId)).ToList();
     138      List<Client> clients = Context.Resources.OfType<Client>().Where(c => c.UseCalendarFromResourceId.Equals(cg.ResourceId)).ToList();
    139139     
    140140      //Set new state
     
    146146
    147147      //Get all Subgroups
    148       List<ClientGroup> groups = (from cg1 in Context.ClientGroups
    149                                   where cg1.Resource.ClientGroup_Resources.Any(
     148      List<ClientGroup> groups = (from cg1 in Context.Resources.OfType<ClientGroup>()
     149                                  where cg1.ClientGroup_Resources_Parents.Any(
    150150                                cgr => cgr.ClientGroupId.Equals(groupId))
    151151                              select cg1).ToList();
     
    154154      //otherweise - propagate
    155155      foreach (ClientGroup cgroup in groups) {
    156         if(cgroup.Resource.UptimeCalendars.Count == 0)
    157           NotifyClientsOfNewCalendar(groupId, forcePush);       
     156        if(cgroup.UptimeCalendars.Count == 0)
     157          NotifyClientsOfNewCalendar(cgroup.ResourceId, forcePush);       
    158158      }
    159159    }
Note: See TracChangeset for help on using the changeset viewer.