int ICrudService <Campaign> .Create(Campaign pEntity) { var lSchedules = pEntity.Schedules.ToList(); pEntity.RemoveAllSchedules(); iRepo.Add(pEntity); foreach (var sche in lSchedules) { if (sche.Id == 0) { iSchServ.Create(sche); } else if (sche.Id > 0) { iSchServ.Update(sche); } else { } pEntity.AddSchedule(iSchChecker, sche); } return(pEntity.Id); }
public void ActiveForDate_IsActive() { Campaign lCampaign = new Campaign() { Name = "Venta de cactus", Description = "Publicidad para la venta de cactus para el vivero XX" }; Schedule lInterval = new Schedule() { Name = "Miércoles y Jueves de la primera quincena de febrero", ActiveUntil = new DateTime(2016, 2, 15), ActiveFrom = new DateTime(2016, 2, 1) }; Day lDay1 = new Day() { Id = 4, Value = Days.Miercoles }; Day lDay2 = new Day() { Id = 5, Value = Days.Jueves }; lInterval.AddDay(lDay1); lInterval.AddDay(lDay2); TimeSpan time1 = new TimeSpan(18, 0, 0); TimeSpan time2 = new TimeSpan(21, 0, 0); ScheduleEntry lTimeInterval = new ScheduleEntry() { End = time2, Start = time1 }; lInterval.AddTimeInterval(lTimeInterval); lCampaign.AddSchedule(DomainServiceLocator.Resolve <IScheduleChecker>(), lInterval); DateTime lDate = new DateTime(2016, 2, 3, 19, 0, 0); bool lResult = lCampaign.IsActiveAt(DomainServiceLocator.Resolve <IScheduleChecker>(), lDate); // Assert.IsTrue(lResult); /* var serv1 = DomainServiceLocator.Resolve<IScheduleChecker>(); * var serv2 = DomainServiceLocator.Resolve<IScheduleChecker>(); * var serv3 = BusinessServiceLocator.Resolve<>(); * var serv4 = BusinessServiceLocator.Resolve<DateIntervalService>(); * * * * Assert.AreSame(serv1, serv2); * Assert.AreNotSame(serv3, serv4);*/ }
private void SeedCampaigns(DigitalSignageContext pContext) { IList <Schedule> lDateIntervalList = pContext.DateIntervals.ToList(); Campaign lCampaign1 = new Campaign() { Name = "Publicidad Samsung S7 (ver 47283289)", Description = "Una mas de las muchas campa;as de lagsung" }; var query = from interval in lDateIntervalList where interval.ActiveDays.Count() >= 4 select interval; foreach (var interval in query) { lCampaign1.AddSchedule(DomainServiceLocator.Resolve <IScheduleChecker>(), interval); } ; Campaign lCampaign2 = new Campaign() { Name = "Publicidad Apple iPhone 5se", Description = "Primera publicidad de Apple en Argentina," + " para el nuevo celular que no va a dar resultados" }; query = from interval in lDateIntervalList where interval.ActiveFrom <= new DateTime(2016, 02, 01) select interval; foreach (var interval in query) { lCampaign2.AddSchedule(DomainServiceLocator.Resolve <IScheduleChecker>(), interval); } pContext.Set <Campaign>().Add(lCampaign1); pContext.Set <Campaign>().Add(lCampaign2); // pContext.Campaigns.Add(lCampaign2); pContext.SaveChanges(); }