public IMemento GetById(int id) { if (id == ServiceId) { return(this); } else if (_darthVader.GetById(id) != null) { _darthVader.GetById(id); } return(null); }
public override bool CheckAvailability(IMemento aParam, IService aService) { var aux = aParam.GetById(aService.Id); //var initialTime = aux.Get("initialtime"); var endTime = aux.Get("date"); var iDate = aux.Get("initialdate"); var eDate = aux.Get("enddate"); var i = ""; var e = ""; var a = 0; foreach (var r in DataHolder.GetInstance().Services.Where(times => times.Id == aService.Id).SelectMany(times => times.ServiceValues.Where(r => r.Property.Name == "initialtimeoff" || r.Property.Name == "endtimeoff"))) { if (r.Property.Name == "initialtimeoff") { i = r.Value; } else { e = r.Value; } } if (Convert.ToDateTime(endTime) >= Convert.ToDateTime(i) && Convert.ToDateTime(endTime) <= Convert.ToDateTime(e) || Convert.ToDateTime(iDate) >= Convert.ToDateTime(i) && Convert.ToDateTime(iDate) <= Convert.ToDateTime(e) || Convert.ToDateTime(eDate) >= Convert.ToDateTime(i) && Convert.ToDateTime(eDate) <= Convert.ToDateTime(e)) { return(false); } return(_darthVader.CheckAvailability(aParam, aService)); }
public override bool CheckAvailability(IMemento aParam, IService aService) { var aux = aParam.GetById(aService.Id); var initialDate = Convert.ToDateTime(aux.Get("initialdate")); var endDate = Convert.ToDateTime(aux.Get("enddate")); var qt = 0; var ans = true; for (var i = 0; i < Convert.ToInt32((endDate - initialDate).Days); i++) { foreach (var serv in DataHolder.GetInstance().Reservations.Where(date => date.Id == aService.Id)) { var ini = new DateTime(); foreach (var start in serv.ServiceValues.Where(start => start.Property.Name == "initialdate")) { ini = Convert.ToDateTime(start.Value); } var end = new DateTime(); foreach (var endo in serv.ServiceValues.Where(endo => endo.Property.Name == "initialdate")) { end = Convert.ToDateTime(endo.Value); } if (ini.DayOfYear <= initialDate.DayOfYear && initialDate.DayOfYear <= end.DayOfYear) { foreach (var ar in serv.ServiceValues.Where(ar => ar.Property.Name == "quantity")) { qt += Convert.ToInt32(ar.Value); } } } aParam = new Memento(aParam); aParam.Add("qt", qt.ToString()); ans = ans && _darthVader.CheckAvailability(aParam, aService); if (!ans) { break; } initialDate.Date.AddDays(1); } return(ans); }
public override bool CheckAvailability(IMemento aParam, IService aService) { var aux = aParam.GetById(aService.Id); var initialTime = aux.Get("initialtime"); var date = aux.Get("date"); var iTime = ""; var eTime = ""; var qt = 0; foreach (var serv in DataHolder.GetInstance().Services.Where(serv => serv.Id == aService.Id)) { foreach (var times in serv.ServiceValues.Where(times => times.Property.Name == "initialtime")) { iTime = times.Value; } foreach (var times in serv.ServiceValues.Where(times => times.Property.Name == "endtime")) { eTime = times.Value; } } if (Convert.ToDateTime(iTime) < Convert.ToDateTime(initialTime) && Convert.ToDateTime(initialTime) > Convert.ToDateTime(eTime)) { return(false); } foreach (var serv in DataHolder.GetInstance().Reservations.Where(serv => serv.Id == aService.Id)) { foreach (var times in serv.ServiceValues.Where(times => times.Property.Name == "date")) { if (date.Split(' ')[0] == times.Value.Split(' ')[0]) { foreach (var ar in serv.ServiceValues.Where(ar => ar.Property.Name == "quantity")) { qt += Convert.ToInt32(ar.Value); } } } } aParam = new Memento(aParam); aParam.Add("qt", qt.ToString()); return(_darthVader.CheckAvailability(aParam, aService)); }