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); }
public async Task CreateNote(DocumentMod document, string value) { var noteDB = new DataAccessLevel.Entities.Note() { Value = value }; await _database.Notes.Create(noteDB, document.Id); }
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); }
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); }