public override bool Save()
        {
            if (!Entity.CanEdit)
            {
                return(false);
            }

            Entity.UpdateAlreadyLoaded(UoW, _routeListRepository);
            var valid = new QS.Validation.QSValidator <CarLoadDocument> (UoWGeneric.Root);

            if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel))
            {
                return(false);
            }

            Entity.LastEditor     = _employeeRepository.GetEmployeeForCurrentUser(UoW);
            Entity.LastEditedTime = DateTime.Now;
            if (Entity.LastEditor == null)
            {
                MessageDialogHelper.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику, вы не можете изменять складские документы, так как некого указывать в качестве кладовщика.");
                return(false);
            }

            if (Entity.Items.Any(x => x.Amount == 0))
            {
                var res = MessageDialogHelper.RunQuestionYesNoCancelDialog(
                    "<span foreground=\"red\">В списке есть нулевые позиции. Убрать нулевые позиции перед сохранением?</span>");
                switch (res)
                {
                case -4:                                                //DeleteEvent
                case -6:                                                //Cancel
                    return(false);

                case -8:                                                //Yes
                    Entity.ClearItemsFromZero();
                    break;

                case -9:                                                //No
                    break;
                }
            }

            Entity.UpdateOperations(UoW);

            logger.Info("Сохраняем погрузочный талон...");
            UoWGeneric.Save();

            logger.Info("Меняем статус маршрутного листа...");
            if (Entity.RouteList.ShipIfCan(UoW, CallTaskWorker, out _))
            {
                MessageDialogHelper.RunInfoDialog("Маршрутный лист отгружен полностью.");
            }
            UoW.Save(Entity.RouteList);
            UoW.Commit();

            logger.Info("Ok.");

            return(true);
        }