Пример #1
0
        public static bool UpdateBokning(Bokning bokning, DateTime startTid, DateTime slutTid, Resurstid[] tidsluckor)
        {
            lock (Bokningar)
            {
                if (tidsluckor.Any(slot => Tidsluckor.TryGetValue(slot.ResurstidId, out var t) && t.Bokningsnr != bokning.Bokningsnr))
                {
                    return(false);
                }

                foreach (var slot in bokning.Resurstider)
                {
                    Tidsluckor.TryRemove(slot.ResurstidId, out var dummy);
                }

                foreach (var slot in tidsluckor)
                {
                    Tidsluckor.TryAdd(slot.ResurstidId, slot);
                }
            }

            bokning.Resurstider      = tidsluckor;
            bokning.StartTid         = startTid;
            bokning.SlutTid          = slutTid;
            bokning.SenastUppdaterad = DateTime.Now;

            _MessageService.Send(_Config.MessageServiceExchange, "", bokning);
            return(true);
        }
Пример #2
0
        public static void CancelBokning(Bokning bokning)
        {
            foreach (var slot in bokning.Resurstider)
            {
                Tidsluckor.TryRemove(slot.ResurstidId, out var dummy);
            }

            bokning.Avbokad          = true;
            bokning.SenastUppdaterad = DateTime.Now;

            _MessageService.Send(_Config.MessageServiceExchange, "", bokning);
        }
Пример #3
0
        public static bool TryAddBokning(Bokning bokning)
        {
            lock (Bokningar)
            {
                if (bokning.Resurstider.Any(slot => Tidsluckor.ContainsKey(slot.ResurstidId)))
                {
                    return(false);
                }

                foreach (var slot in bokning.Resurstider)
                {
                    Tidsluckor.TryAdd(slot.ResurstidId, slot);
                }

                Bokningar.TryAdd(bokning.Bokningsnr, bokning);
            }

            _MessageService.Send(_Config.MessageServiceExchange, "", bokning);
            return(true);
        }
Пример #4
0
 public static bool TryGetBokning(int bokningsnr, out Bokning booking) => Bokningar.TryGetValue(bokningsnr, out booking);