/// <summary>
        /// Возвращает монографию пользователя userName
        /// </summary>
        /// <param name="id"></param>
        /// <param name="userName"></param>
        /// <returns></returns>

        public Monograf GetMonograf(int?id)
        {
            Monograf monograf = new Monograf();

            if (id == null)
            {
                return(monograf);
            }

            monograf = GetMonografs().SingleOrDefault(m => m.MonografId == id);
            return(monograf);
        }
 /// <summary>
 /// Добавляет монографию
 /// </summary>
 /// <returns></returns>
 public void AddMonograf(Monograf monograf)
 {
     _context.Monografs.Add(monograf);
     _context.SaveChanges();
 }
        /// <summary>
        /// Обновляет монографию
        /// </summary>
        /// <param name="monografEntry"></param>
        /// <param name="monograf"></param>
        public void UpdateMonograf(Monograf monografEntry, Monograf monograf)
        {
            monografEntry.MonografName     = monograf.MonografName;
            monografEntry.FileModelId      = monograf.FileModelId;
            monografEntry.YearId           = monograf.YearId;
            monografEntry.RowStatusId      = monograf.RowStatusId;
            monografEntry.IsACHII          = monograf.IsACHII;
            monografEntry.MonografNirTemas = monograf.MonografNirTemas;

            ////////
            /// + списки направлений, авторов и пр.
            if (monograf.MonografNirSpecials != null && monograf.MonografNirSpecials.Count > 0)
            {
                foreach (var monografNirSpecial in monografEntry.MonografNirSpecials)
                {
                    bool isExists = false;
                    foreach (var monografNirSpecialEntry in monografEntry.MonografNirSpecials)
                    {
                        if (monografNirSpecialEntry.NirSpecialId == monografNirSpecial.NirSpecialId)
                        {
                            isExists = true;
                        }
                    }
                    if (!isExists)
                    {
                        monografEntry.MonografNirSpecials.Add(monografNirSpecial);
                    }
                }
            }

            if (monograf.MonografAuthors != null && monograf.MonografAuthors.Count > 0)
            {
                foreach (var monografAuthor in monograf.MonografAuthors)
                {
                    bool isExists = false;
                    foreach (var monografAuthorEntry in monografEntry.MonografAuthors)
                    {
                        if (monografAuthorEntry.MonografAuthorId == monografAuthor.MonografAuthorId)
                        {
                            isExists = true;
                        }
                    }
                    if (!isExists)
                    {
                        monografEntry.MonografAuthors.Add(monografAuthor);
                    }
                }

                decimal firstAuthorPart = 1;
                for (int i = 1; i < monografEntry.MonografAuthors.Count; i++)
                {
                    firstAuthorPart -= monografEntry.MonografAuthors[i].AuthorPart;
                }

                if (firstAuthorPart < 0)
                {
                    firstAuthorPart = 0;
                }
                monografEntry.MonografAuthors[0].AuthorPart = firstAuthorPart;
            }

            _context.SaveChanges();
        }