Пример #1
0
        protected override bool SaveEntity()
        {
            Debug.Assert(Absence != null);
            if (!IsModified())
            {
                return(true);
            }
            else
            {
                if (Absence.IsNew)
                {
                    Absence.LanguageID = SharedConsts.NeutralLangId;
                }

                Absence copyAbsence = CreateCopyAbsence();

                SaveInputDataTo(copyAbsence);
                try
                {
                    if (Absence.IsNew)
                    {
                        copyAbsence = ClientEnvironment.AbsenceService.Save(copyAbsence);
                    }
                    else
                    {
                        ClientEnvironment.AbsenceService.SaveOrUpdate(copyAbsence);
                    }


                    AssignAbsence(copyAbsence, Absence);

                    _modified = true;

                    if (AbsenceManager != null && AbsenceManager.GetById(Absence.ID) == null)
                    {
                        AbsenceManager.AddToDiction(Absence);
                    }
                }
                catch (ValidationException)
                {
                    string str = GetLocalized("ErrorUniqueAbsenceNameOrAbb");
                    if (String.IsNullOrEmpty(str))
                    {
                        str = "Absence name or abbreviation not unique";
                    }
                    ErrorMessage(str);
                    return(false);
                }
                catch (EntityException ex)
                {
                    ProcessEntityException(ex);
                    return(false);
                }
            }
            return(true);
        }