private void CreateOrUpdate(List <SessionDto> sessions) { foreach (var sessionDto in sessions) { var sessionCircle = sessionCircles.FirstOrDefault(x => x.Session.SPID == sessionDto.SPID); if (sessionCircle == null) { sessionCircle = sessionCircleFactory.Create(sessionDto, sessionCircles); sessionCircle.OnMouseDown(BeginMove); sessionCircle.OnMouseDown(SelectSessionCircle); sessionCircles.Add(sessionCircle); canvas.Add(sessionCircle.UiElement, sessionDto.BlockedBy.HasValue ? 3 : 1); } sessionCircle.Session = sessionDto; } }