Exemplo n.º 1
0
 public IMemento GetById(int id)
 {
     if (id == ServiceId)
     {
         return(this);
     }
     else if (_darthVader.GetById(id) != null)
     {
         _darthVader.GetById(id);
     }
     return(null);
 }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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));
        }