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); }
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); }
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); }
public static bool TryGetBokning(int bokningsnr, out Bokning booking) => Bokningar.TryGetValue(bokningsnr, out booking);