Beispiel #1
0
        /// <summary>Отмена последнего изменения</summary>
        public static bool Revert()
        {
            if (prevState == null || prevState.Project == null)
            {
                return(false);
            }

            // просто изменения
            if (prevState.IsDelete == false)
            {
                // Сохраняем на сервер
                if (!ServiceManager.ChangeProject(prevState.Project.GetAgrProject()))
                {
                    MessageBox.Show("Не удалось сохранить изменения на сервер", "Внимание", MessageBoxButton.OK, MessageBoxImage.Error);
                    return(false);
                }

                var msg = string.Format("Отмена изменений в проекте: '{0}'", prevState.Project.ID);
                EventMessages.Insert(0, new EventMessage(DateTime.Now, prevState.Project.ProjectID, msg));

                prevState = null;
            }
            else
            {
                EventMessages.Insert(0, new EventMessage(DateTime.Now, prevState.Project.ProjectID, "Востановление удаленного проекта не поддерживается"));
            }

            return(true);
        }
Beispiel #2
0
        /// <summary>Изменение настроек проекта</summary>
        static void ChangeProjectPropety(int projectId, ProjectPropertyType type, object value, bool isSendToServer = false)
        {
            lock (projects)
            {
                var project = projects.SingleOrDefault(x => x.ProjectID == projectId);
                if (project == null)
                {
                    return;
                }

                // копия состояния
                Project projectPreviesState = null;
                if (isSendToServer)
                {
                    projectPreviesState = project.Clone();
                }

                project.SetValue(type, value);

                if (isSendToServer)
                {
                    // сохраняем изменения в буфер
                    prevState = new ProjectUndoBuffer {
                        Project = projectPreviesState
                    };

                    // Сохраняем на сервер
                    if (!ServiceManager.ChangeProject(project.GetAgrProject()))
                    {
                        MessageBox.Show("Не удалось сохранить изменения на сервер", "Внимание", MessageBoxButton.OK, MessageBoxImage.Error);
                        return;
                    }
                }

                var sValue = "";
                if (value != null && !(value is IEnumerable))
                {
                    sValue = value.ToString();
                }

                var msg = string.Format("Изменения в проекте: '{0}' тип изменения: '{1}'  {2}", project.ID, Project.GetDescription(type), (string.IsNullOrEmpty(sValue) ? "" : "значение: '" + sValue + "'"));
                EventMessages.Insert(0, new EventMessage(DateTime.Now, project.ProjectID, msg));

                // если не на этом компе изменилось то ставим
                if (!isSendToServer)
                {
                    // Ставим что новый проект
                    TrayIconManager.SetBaloonTip(string.Format("Изменения в проекте: '{0}'", project.ID), 5);
                    TrayIconManager.SetMessageDefault();
                }
            }
        }
Beispiel #3
0
        /// <summary>Удаляем проект</summary>
        public static bool TryRemoveProject(int projectId)
        {
            LogManager.LogInfo(unit, string.Format("Удаляем проект с ID: {0}", projectId));

            if (!ServiceManager.RemoveProject(projectId))
            {
                return(false);
            }

            lock (projects)
            {
                var project = projects.SingleOrDefault(x => x.ProjectID == projectId);
                if (project != null)
                {
                    prevState = new ProjectUndoBuffer {
                        IsDelete = true, Project = project.Clone()
                    }
                }
                ;
            }

            return(true);
        }