public Schedule EditSchedule(Guid scheduleId, out Luna.Core.Tuple <IEnumerable <ServiceQueue>, IEnumerable <Organization> > relations) { var schedule = _repository.Get(scheduleId); relations = new Core.Tuple <IEnumerable <ServiceQueue>, IEnumerable <Organization> >( _serviceQueueRepository.GetServiceQueueByCampaign(schedule.Campaign as Campaign), _organizationRepository.GetByCampaign(schedule.Campaign)); return(schedule); }
public Schedule CreateNewSchedule(Campaign campaign, out Luna.Core.Tuple <IEnumerable <ServiceQueue>, IEnumerable <Organization> > relations) { var last = _repository.FindLast(campaign); relations = new Core.Tuple <IEnumerable <ServiceQueue>, IEnumerable <Organization> >( _serviceQueueRepository.GetServiceQueueByCampaign(campaign), campaign.Organizations.OfType <Organization>()); IDictionary <ServiceQueue, int> defaultSvcQueues; ICollection <Entity> defaultOrgs; if (last != null) { defaultSvcQueues = new Dictionary <ServiceQueue, int>(last.ServiceQueues); defaultOrgs = new HashedSet <Entity>(last.Organizations); } else { defaultSvcQueues = relations.Item1.ToDictionary(o => o, o => 0); defaultOrgs = new HashedSet <Entity>(relations.Item2.Cast <Entity>().ToList()); } var defaultStart = last == null ? DateTime.Today : last.End; var schedule = _entityFactory.Create <Schedule>(new Dictionary <string, object> { { "Campaign", campaign }, { "ServiceQueues", defaultSvcQueues }, { "Organizations", defaultOrgs }, { "Start", defaultStart }, { "End", defaultStart.AddMonths(1) }, { "Name", string.Format("{0:MMM}", defaultStart) } }); return(schedule); }