Пример #1
0
        public async Task UpdateLink(LinkMod link, DocumentMod document, StyleMod style, string value)
        {
            var generatedValue = "";

            if (string.IsNullOrEmpty(value))
            {
                generatedValue = GenerateLinkValue(document, style, value);
            }
            else
            {
                generatedValue = value;
            }

            var styles = await _database.Styles.GetAll();

            var changedStyle = styles.Where(s => s.Id == style.Id).Select(s => s).SingleOrDefault();

            var linkDB = new DataAccessLevel.Entities.Reference()
            {
                Id         = link.Id,
                Value      = generatedValue,
                DocumentId = link.DocumentId,
                Document   = link.Document,
                StyleId    = changedStyle.Id,
                Style      = changedStyle
            };
            await _database.References.Update(linkDB, link.DocumentId, link.StyleId);
        }
Пример #2
0
 public async Task CreateNote(DocumentMod document, string value)
 {
     var noteDB = new DataAccessLevel.Entities.Note()
     {
         Value = value
     };
     await _database.Notes.Create(noteDB, document.Id);
 }
Пример #3
0
        public async Task CreateLink(DocumentMod document, StyleMod style, string value)
        {
            var generatedValue = "";

            if (string.IsNullOrEmpty(value))
            {
                generatedValue = GenerateLinkValue(document, style, value);
            }
            else
            {
                generatedValue = value;
            }

            var linkDB = new DataAccessLevel.Entities.Reference()
            {
                Value = generatedValue
            };
            await _database.References.Create(linkDB, document.Id, style.Id);
        }
Пример #4
0
        public string GenerateLinkValue(DocumentMod document, StyleMod style, string value)
        {
            var valueResult = "";
            var strBuilder  = new StringBuilder();

            switch (document.Type)
            {
            case DataAccessLevel.Enums.DocumentType.Article:
                if (style.AuthorFirst.Label.Form == "short")
                {
                    var nameInitial       = $"{document.Author.Name.Substring(0, 1)}{style.AuthorFirst.Name.InitializeWith}";
                    var patronymicInitial = "";
                    if (!string.IsNullOrEmpty(document.Author.Patronymic))
                    {
                        patronymicInitial = $"{document.Author.Patronymic.Substring(0, 1)}{style.AuthorFirst.Name.InitializeWith}";
                    }
                    var initials = $"{nameInitial}{patronymicInitial}";
                    strBuilder.Append($"{style.AuthorFirst.Label.Prefix}{document.Author.Surname}{style.AuthorFirst.Name.Delimiter}{initials}{style.AuthorFirst.Label.Suffix}");
                }
                else
                {
                    strBuilder.Append($"{style.AuthorFirst.Label.Prefix}{document.Author.Surname}{style.AuthorFirst.Name.Delimiter}{document.Author.Name}{style.AuthorFirst.Name.Delimiter}{document.Author.Patronymic}{style.AuthorFirst.Name.Delimiter}{style.AuthorFirst.Label.Suffix}");
                }

                strBuilder.Append($"{style.AuthorSecond.Label.Prefix}{document.Co_Author.Name}{style.AuthorSecond.Label.Suffix}{style.AuthorSecond.Name.Delimiter}");
                strBuilder.Append($"{style.Title.Text.Prefix}{document.Title}{style.Title.Text.Suffix}");
                strBuilder.Append($"{style.Publisher.GroupPublisher.TextPublishers.FirstOrDefault().Prefix}{document.Publisher.Name}{style.Publisher.GroupPublisher.TextPublishers.FirstOrDefault().Suffix}");

                if (style.Publisher.YearDatePublisher.DatePublisher.DatePartPublishers.FirstOrDefault().NamePublisher == "year")
                {
                    strBuilder.Append($"{document.Date.ToString("yyyy")} ");
                }
                else
                {
                    strBuilder.Append($"{document.Date.ToString("dd-MM-yyyy")} ");
                }

                strBuilder.Append($"{style.PublishVolume.Text.Prefix}{document.Volume}{style.PublishVolume.Text.Suffix}");
                strBuilder.Append($"{document.Edition} ");
                strBuilder.Append($"{style.PagesRange.Text.Prefix}{document.Pages.PageFirst}{style.PageRangeDelimiter}{document.Pages.PageLast}{style.PagesRange.Text.Suffix}");

                valueResult = strBuilder.ToString();
                strBuilder.Clear();
                break;

            case DataAccessLevel.Enums.DocumentType.Conference:
                if (style.AuthorFirst.Label.Form == "short")
                {
                    var nameInitial       = $"{document.Author.Name.Substring(0, 1)}{style.AuthorFirst.Name.InitializeWith}";
                    var patronymicInitial = "";
                    if (!string.IsNullOrEmpty(document.Author.Patronymic))
                    {
                        patronymicInitial = $"{document.Author.Patronymic.Substring(0, 1)}{style.AuthorFirst.Name.InitializeWith}";
                    }
                    var initials = $"{nameInitial}{patronymicInitial}";
                    strBuilder.Append($"{style.AuthorFirst.Label.Prefix}{document.Author.Surname}{style.AuthorFirst.Name.Delimiter}{initials}{style.AuthorFirst.Label.Suffix}");
                }
                else
                {
                    strBuilder.Append($"{style.AuthorFirst.Label.Prefix}{document.Author.Surname}{style.AuthorFirst.Name.Delimiter}{document.Author.Name}{style.AuthorFirst.Name.Delimiter}{document.Author.Patronymic}{style.AuthorFirst.Name.Delimiter}{style.AuthorFirst.Label.Suffix}");
                }

                strBuilder.Append($"{style.AuthorSecond.Label.Prefix}{document.Co_Author.Name}{style.AuthorSecond.Label.Suffix}{style.AuthorSecond.Name.Delimiter}");
                strBuilder.Append($"{style.Title.Text.Prefix}{document.Title}{style.Title.Text.Suffix}");
                strBuilder.Append($"{style.TitleOfConference.Text.Prefix}{document.TitleOfConference}{style.TitleOfConference.Text.Suffix}");
                strBuilder.Append($"{style.Publisher.GroupPublisher.TextPublishers.FirstOrDefault().Prefix}{document.Publisher.Name}{style.Publisher.GroupPublisher.TextPublishers.FirstOrDefault().Suffix}");
                strBuilder.Append($"{style.Publisher.GroupPublisher.TextPublishers.FirstOrDefault().Prefix}{document.Publisher.Address}{style.Publisher.GroupPublisher.TextPublishers.FirstOrDefault().Suffix}");

                if (style.Publisher.YearDatePublisher.DatePublisher.DatePartPublishers.FirstOrDefault().NamePublisher == "year")
                {
                    strBuilder.Append($"{document.Date.ToString("yyyy")} ");
                }
                else
                {
                    strBuilder.Append($"{document.Date.ToString("dd-MM-yyyy")} ");
                }

                strBuilder.Append($"{style.PublishVolume.Text.Prefix}{document.Volume}{style.PublishVolume.Text.Suffix}");
                strBuilder.Append($"{style.PagesRange.Text.Prefix}{document.Pages.PageFirst}{style.PageRangeDelimiter}{document.Pages.PageLast}{style.PagesRange.Text.Suffix}");

                valueResult = strBuilder.ToString();
                strBuilder.Clear();
                break;

            case DataAccessLevel.Enums.DocumentType.Book:
                if (style.AuthorFirst.Label.Form == "short")
                {
                    var nameInitial       = $"{document.Author.Name.Substring(0, 1)}{style.AuthorFirst.Name.InitializeWith}";
                    var patronymicInitial = "";
                    if (!string.IsNullOrEmpty(document.Author.Patronymic))
                    {
                        patronymicInitial = $"{document.Author.Patronymic.Substring(0, 1)}{style.AuthorFirst.Name.InitializeWith}";
                    }
                    var initials = $"{nameInitial}{patronymicInitial}";
                    strBuilder.Append($"{style.AuthorFirst.Label.Prefix}{document.Author.Surname}{style.AuthorFirst.Name.Delimiter}{initials}{style.AuthorFirst.Label.Suffix}");
                }
                else
                {
                    strBuilder.Append($"{style.AuthorFirst.Label.Prefix}{document.Author.Surname}{style.AuthorFirst.Name.Delimiter}{document.Author.Name}{style.AuthorFirst.Name.Delimiter}{document.Author.Patronymic}{style.AuthorFirst.Name.Delimiter}{style.AuthorFirst.Label.Suffix}");
                }

                strBuilder.Append($"{style.AuthorSecond.Label.Prefix}{document.Co_Author.Name}{style.AuthorSecond.Label.Suffix}{style.AuthorSecond.Name.Delimiter}");
                strBuilder.Append($"{style.Title.Text.Prefix}{document.Title}{style.Title.Text.Suffix}");
                strBuilder.Append($"{style.Publisher.GroupPublisher.TextPublishers.FirstOrDefault().Prefix}{document.Publisher.Name}{style.Publisher.GroupPublisher.TextPublishers.FirstOrDefault().Suffix}");

                if (style.Publisher.YearDatePublisher.DatePublisher.DatePartPublishers.FirstOrDefault().NamePublisher == "year")
                {
                    strBuilder.Append($"{document.Date.ToString("yyyy")} ");
                }
                else
                {
                    strBuilder.Append($"{document.Date.ToString("dd-MM-yyyy")} ");
                }

                strBuilder.Append($"{style.PublishVolume.Text.Prefix}{document.Volume}{style.PublishVolume.Text.Suffix}");

                strBuilder.Append($"{style.PagesNumber.Text.Prefix}{document.Pages.CountOfPages}{style.PagesNumber.Text.Suffix}");

                valueResult = strBuilder.ToString();
                strBuilder.Clear();
                break;

            case DataAccessLevel.Enums.DocumentType.Thesis:
                if (style.AuthorFirst.Label.Form == "short")
                {
                    var nameInitial       = $"{document.Author.Name.Substring(0, 1)}{style.AuthorFirst.Name.InitializeWith}";
                    var patronymicInitial = "";
                    if (!string.IsNullOrEmpty(document.Author.Patronymic))
                    {
                        patronymicInitial = $"{document.Author.Patronymic.Substring(0, 1)}{style.AuthorFirst.Name.InitializeWith}";
                    }
                    var initials = $"{nameInitial}{patronymicInitial}";
                    strBuilder.Append($"{style.AuthorFirst.Label.Prefix}{document.Author.Surname}{style.AuthorFirst.Name.Delimiter}{initials}{style.AuthorFirst.Label.Suffix}");
                }
                else
                {
                    strBuilder.Append($"{style.AuthorFirst.Label.Prefix}{document.Author.Surname}{style.AuthorFirst.Name.Delimiter}{document.Author.Name}{style.AuthorFirst.Name.Delimiter}{document.Author.Patronymic}{style.AuthorFirst.Name.Delimiter}{style.AuthorFirst.Label.Suffix}");
                }

                strBuilder.Append($"{style.AuthorSecond.Label.Prefix}{document.Co_Author.Name}{style.AuthorSecond.Label.Suffix}{style.AuthorSecond.Name.Delimiter}");
                strBuilder.Append($"{style.Title.Text.Prefix}{document.Title}{style.Title.Text.Suffix}");
                strBuilder.Append(": Thesis (Doctorate) / ");
                strBuilder.Append($"{style.Publishuniver.GroupUniver.TextUnivers.FirstOrDefault().Prefix}{document.Publisher.Name}{style.Publishuniver.GroupUniver.TextUnivers.FirstOrDefault().Suffix}");

                if (style.Publishuniver.YearDateUniver.DateUniver.DatePartUnivers.FirstOrDefault().NameUniver == "year")
                {
                    strBuilder.Append($"{document.Date.ToString("yyyy")} ");
                }
                else
                {
                    strBuilder.Append($"{document.Date.ToString("dd-MM-yyyy")} ");
                }

                strBuilder.Append($"{style.PublishVolume.Text.Prefix}{document.Volume}{style.PublishVolume.Text.Suffix}");

                strBuilder.Append($"{style.PagesNumber.Text.Prefix}{document.Pages.CountOfPages}{style.PagesNumber.Text.Suffix}");

                valueResult = strBuilder.ToString();
                strBuilder.Clear();
                break;

            case DataAccessLevel.Enums.DocumentType.Webpage:
                valueResult = $"{style.Title.Text.Prefix}{document.Title}{style.Title.Text.Suffix}" +
                              $"{style.Webdoc.Group.Texts.FirstOrDefault().Value} {style.Webdoc.Group.Texts.FirstOrDefault().Prefix}{style.Webdoc.Group.Texts.FirstOrDefault().Suffix}";
                break;

            default:
                if (style.AuthorFirst.Label.Form == "short")
                {
                    var nameInitial       = $"{document.Author.Name.Substring(0, 1)}{style.AuthorFirst.Name.InitializeWith}";
                    var patronymicInitial = "";
                    if (!string.IsNullOrEmpty(document.Author.Patronymic))
                    {
                        patronymicInitial = $"{document.Author.Patronymic.Substring(0, 1)}{style.AuthorFirst.Name.InitializeWith}";
                    }
                    var initials = $"{nameInitial}{patronymicInitial}";
                    strBuilder.Append($"{style.AuthorFirst.Label.Prefix}{document.Author.Surname}{style.AuthorFirst.Name.Delimiter}{initials}{style.AuthorFirst.Label.Suffix}");
                }
                else
                {
                    strBuilder.Append($"{style.AuthorFirst.Label.Prefix}{document.Author.Surname}{style.AuthorFirst.Name.Delimiter}{document.Author.Name}{style.AuthorFirst.Name.Delimiter}{document.Author.Patronymic}{style.AuthorFirst.Name.Delimiter}{style.AuthorFirst.Label.Suffix}");
                }

                strBuilder.Append($"{style.AuthorSecond.Label.Prefix}{document.Co_Author.Name}{style.AuthorSecond.Label.Suffix}{style.AuthorSecond.Name.Delimiter}");
                strBuilder.Append($"{style.Title.Text.Prefix}{document.Title}{style.Title.Text.Suffix}");
                strBuilder.Append($"{style.Publisher.GroupPublisher.TextPublishers.FirstOrDefault().Prefix}{document.Publisher.Name}{style.Publisher.GroupPublisher.TextPublishers.FirstOrDefault().Suffix}");

                if (style.Publisher.YearDatePublisher.DatePublisher.DatePartPublishers.FirstOrDefault().NamePublisher == "year")
                {
                    strBuilder.Append($"{document.Date.ToString("yyyy")} ");
                }
                else
                {
                    strBuilder.Append($"{document.Date.ToString("dd-MM-yyyy")} ");
                }

                strBuilder.Append($"{style.PublishVolume.Text.Prefix}{document.Volume}{style.PublishVolume.Text.Suffix}");

                strBuilder.Append($"{style.PagesNumber.Text.Prefix}{document.Pages.CountOfPages}{style.PagesNumber.Text.Suffix}");

                valueResult = strBuilder.ToString();
                strBuilder.Clear();
                break;
            }

            return(valueResult);
        }