private void Category_OnLoaded(object sender, RoutedEventArgs e) { var query = Db.Query("SELECT Name, FromFile FROM categories WHERE Path = @Path", new [] { new SQLiteParameter("Path", BookKeeper.GetRelativeBookFilePath(_bookFile)) }); while (query.Read()) { var category = new CategoryTag { Name = query["Name"].ToString(), FromFile = SQLiteConvert.ToBoolean(query["FromFile"]) }; _categoryTagList.Add(category); } if (_categoryTagList.Count > 0) { CategoryTagsBorder.Visibility = Visibility.Visible; } Categories.ItemsSource = _categoryTagList; var defaultCategories = Properties.Settings.Default.DefaultCategories.Split(';'); var hintList = new List <string>(defaultCategories); hintList.AddRange(LibraryStructure.CategoryList()); hintList.Sort(); new Whisperer { TextBox = (TextBox)sender, HintList = hintList }; }
public async Task <ActionResult <Tag> > Add([FromBody] CreateTagRequest request) { var newTag = new Tag() { Name = request.Name, }; List <CategoryTag> categoryTags = new List <CategoryTag>(); if (request.CategoryNames != null) { foreach (var item in request.CategoryNames) { var categoryTag = new CategoryTag(); categoryTag.TagId = newTag.Id; categoryTag.CategoryId = _context.Categories.FirstOrDefault(category => category.Name == item).Id; categoryTags.Add(categoryTag); } } newTag.CategoryTags = categoryTags; _context.Tags.Add(newTag); _context.SaveChanges(); return(Ok(newTag)); }
public async Task <ActionResult <int> > Update([FromRoute] int id, [FromBody] CreateTagRequest request) { Tag oldTag = _context.Tags.FirstOrDefault(x => x.Id == id); if (oldTag == null) { return(NotFound()); } var newTag = new Tag() { Name = request.Name, }; List <CategoryTag> categoryTags = new List <CategoryTag>(); foreach (var item in request.CategoryNames) { var categoryTag = new CategoryTag(); categoryTag.TagId = newTag.Id; categoryTag.CategoryId = _context.Categories.FirstOrDefault(category => category.Name == item).Id; categoryTags.Add(categoryTag); } newTag.CategoryTags = categoryTags; var oldData = _context.CategoryTags.Where(temp => temp.TagId == oldTag.Id); foreach (var item in oldData) { _context.CategoryTags.Remove(item); } oldTag.Name = newTag.Name; oldTag.CategoryTags = newTag.CategoryTags; await _context.SaveChangesAsync(); return(Ok(oldTag)); }
public int AddNewCategoryTag(CategoryTag categoryTag) { var id = _CategoryTag.Add(categoryTag).Entity.Id; _uow.SaveChanges(); return(id); }
public async Task <ActionResult <GetAllCategoriesResponse> > Update([FromRoute] int id, [FromBody] AddCategoryRequest request) { var oldcategory = _context.Categories .FirstOrDefault(x => x.Id == request.Id); if (oldcategory == null) { return(NotFound()); } oldcategory.Name = request.Name; oldcategory.Description = request.Description; oldcategory.ParentId = request.ParentId; oldcategory.Color = request.Color; if (request.tags != null) { var categoryTags = new List <CategoryTag>(); var oldTags = _context.CategoryTags.Where(temp => temp.CategoryId == oldcategory.Id); foreach (var item in oldTags) { _context.CategoryTags.Remove(item); } request.tags.ForEach(tag => { CategoryTag categoryTag = new CategoryTag(); categoryTag.CategoryId = oldcategory.Id; categoryTag.TagId = _context.Tags.First(temp => temp.Name == tag).Id; categoryTags.Add(categoryTag); _context.CategoryTags.Add(categoryTag); }); oldcategory.CategoryTags = categoryTags; } if (oldcategory.SchedulerEvents == null) { oldcategory.SchedulerEvents = new List <SchedulerEvent>(); } var response = new GetAllCategoriesResponse(); response.Id = oldcategory.Id; response.Name = oldcategory.Name; response.ParentId = request.ParentId; response.SchedulerEvents = oldcategory.SchedulerEvents.ToList(); response.Tags = request.tags; response.Color = oldcategory.Color; response.Description = oldcategory.Description; await _context.SaveChangesAsync(); return(Ok(response)); }
public async Task <ActionResult <GetAllCategoriesResponse> > Add([FromBody] AddCategoryRequest request) { var newCategory = new Category() { Name = request.Name, Description = request.Description, Color = request.Color, ParentId = request.ParentId, }; newCategory.SchedulerEvents = new List <SchedulerEvent>(); var categoryTags = new List <CategoryTag>(); if (request.tags != null) { request.tags.ForEach(tag => { CategoryTag categoryTag = new CategoryTag(); categoryTag.CategoryId = newCategory.Id; categoryTag.TagId = _context.Tags.First(temp => temp.Name == tag).Id; categoryTags.Add(categoryTag); _context.CategoryTags.Add(categoryTag); }); } newCategory.CategoryTags = categoryTags; _context.Categories.Add(newCategory); await _context.SaveChangesAsync(); var response = new GetAllCategoriesResponse(); response.Id = newCategory.Id; response.Name = newCategory.Name; response.ParentId = request.ParentId; response.SchedulerEvents = newCategory.SchedulerEvents.ToList(); response.Tags = request.tags; response.Color = newCategory.Color; response.Description = newCategory.Description; return(Ok(response)); }
public void CreateBroadcast(String p_Name, String p_Description, CategoryTag p_Tag) { if (Library.User.Data == null) { return; } SpecialGuests.Clear(); CurrentBroadcastName = p_Name; CurrentBroadcastDescription = p_Description; CurrentBroadcastCategoryTag = p_Tag; ActiveBroadcastID = null; Data = null; if (Library.Chat.LoggedInMaster != null && Library.Chat.LoggedInMaster.CurrentBroadcast != null) { ActiveBroadcastID = Library.Chat.LoggedInMaster.CurrentBroadcast; CurrentBroadcastPicture = null; Data = new BroadcastData() { }; // Check if broadcast still exists. Library.Chat.GetSubscriptionData(Library.Chat.GetChatChannel(ActiveBroadcastID), new List <String>() { "s", "h", "owners", "n", "t", "owner_subscribed", "i", "d", "tl", "py", "qc" }, OnBroadcastSubscriptionData); return; } var s_LastBroadcast = GetLastBroadcast(); if (s_LastBroadcast != null) { ActiveBroadcastID = s_LastBroadcast.BroadcastID; CurrentBroadcastPicture = null; Data = s_LastBroadcast; // Check if broadcast still exists. Library.Chat.GetSubscriptionData(Library.Chat.GetChatChannel(ActiveBroadcastID), new List <String>() { "s", "h", "owners", "n", "t", "owner_subscribed", "i", "d", "tl", "py", "qc" }, OnBroadcastSubscriptionData); return; } Library.Remora.JoinControlChannels(); }
public async Task <SetCategoryDetailsVm> Handle(SetCategoryDetailsCommand request, CancellationToken cancellationToken) { Category category = await _context.Category .SingleOrDefaultAsync(x => x.CategoryGuid == request.Command.CategoryGuid, cancellationToken); if (category == null) { return new SetCategoryDetailsVm { Message = "دسته بندی مورد نظر یافت نشد", State = (int)SetCategoryDetailsState.CategoryNotFound } } ; if (!string.IsNullOrEmpty(request.Command.CoverDocumentGuid)) { Document coverDocument = await _context.Document .FirstOrDefaultAsync(x => x.DocumentGuid == Guid.Parse(request.Command.CoverDocumentGuid), cancellationToken); if (coverDocument == null) { return new SetCategoryDetailsVm() { Message = "تصویر کاور مورد نظر یافت نشد", State = (int)SetCategoryDetailsState.CoverDocumentNotFound } } ; if (category.CoverDocumentId != coverDocument.DocumentId) { Document oldDocument = await _context.Document .FirstOrDefaultAsync(x => x.DocumentId == category.CoverDocumentId, cancellationToken); if (oldDocument != null) { int uploadsIndex = oldDocument.Path.IndexOf("Uploads"); string documentPath = Path.Combine(Directory.GetCurrentDirectory(), request.WebRootPath, oldDocument.Path.Substring(uploadsIndex)); if (File.Exists(documentPath)) { File.Delete(documentPath); } _context.Document.Remove(oldDocument); } category.CoverDocumentId = coverDocument.DocumentId; } } if (!string.IsNullOrEmpty(request.Command.ActiveIconDocumentGuid)) { Document activeIconDocument = await _context.Document .FirstOrDefaultAsync(x => x.DocumentGuid == Guid.Parse(request.Command.ActiveIconDocumentGuid), cancellationToken); if (activeIconDocument == null) { return new SetCategoryDetailsVm() { Message = "تصویر آیکون فعال مورد نظر یافت نشد", State = (int)SetCategoryDetailsState.CoverDocumentNotFound } } ; if (category.ActiveIconDocumentId != activeIconDocument.DocumentId) { Document oldDocument = await _context.Document .FirstOrDefaultAsync(x => x.DocumentId == category.ActiveIconDocumentId, cancellationToken); if (oldDocument != null) { int uploadsIndex = oldDocument.Path.IndexOf("Uploads"); string documentPath = Path.Combine(Directory.GetCurrentDirectory(), request.WebRootPath, oldDocument.Path.Substring(uploadsIndex)); if (File.Exists(documentPath)) { File.Delete(documentPath); } _context.Document.Remove(oldDocument); } category.ActiveIconDocumentId = activeIconDocument.DocumentId; } } if (!string.IsNullOrEmpty(request.Command.InactiveIconDocumentGuid)) { Document inactiveIconDocument = await _context.Document .FirstOrDefaultAsync(x => x.DocumentGuid == Guid.Parse(request.Command.InactiveIconDocumentGuid), cancellationToken); if (inactiveIconDocument == null) { return new SetCategoryDetailsVm() { Message = "تصویر آیکون غیرفعال مورد نظر یافت نشد", State = (int)SetCategoryDetailsState.CoverDocumentNotFound } } ; if (category.InactiveIconDocumentId != inactiveIconDocument.DocumentId) { Document oldDocument = await _context.Document .FirstOrDefaultAsync(x => x.DocumentId == category.InactiveIconDocumentId, cancellationToken); if (oldDocument != null) { int uploadsIndex = oldDocument.Path.IndexOf("Uploads"); string documentPath = Path.Combine(Directory.GetCurrentDirectory(), request.WebRootPath, oldDocument.Path.Substring(uploadsIndex)); if (File.Exists(documentPath)) { File.Delete(documentPath); } _context.Document.Remove(oldDocument); } category.InactiveIconDocumentId = inactiveIconDocument.DocumentId; } } if (!string.IsNullOrEmpty(request.Command.QuadMenuDocumentGuid)) { Document quadMenuDocument = await _context.Document .FirstOrDefaultAsync(x => x.DocumentGuid == Guid.Parse(request.Command.QuadMenuDocumentGuid), cancellationToken); if (quadMenuDocument == null) { return new SetCategoryDetailsVm() { Message = "تصویر فهرست چرخشی مورد نظر یافت نشد", State = (int)SetCategoryDetailsState.CoverDocumentNotFound } } ; if (category.QuadMenuDocumentId != quadMenuDocument.DocumentId) { Document oldDocument = await _context.Document .FirstOrDefaultAsync(x => x.DocumentId == category.QuadMenuDocumentId, cancellationToken); if (oldDocument != null) { int uploadsIndex = oldDocument.Path.IndexOf("Uploads"); string documentPath = Path.Combine(Directory.GetCurrentDirectory(), request.WebRootPath, oldDocument.Path.Substring(uploadsIndex)); if (File.Exists(documentPath)) { File.Delete(documentPath); } _context.Document.Remove(oldDocument); } category.QuadMenuDocumentId = quadMenuDocument.DocumentId; } } category.Abstract = request.Command.Abstract; category.Description = request.Command.Description; category.ModifiedDate = DateTime.Now; List <CategoryTag> categoryTags = await _context.CategoryTag .Where(x => x.CategoryId == category.CategoryId) .ToListAsync(cancellationToken); foreach (var oldCategory in categoryTags) { _context.CategoryTag.Remove(oldCategory); } if (request.Command.Tags != null) { CategoryTag categoryTag; foreach (string tag in request.Command.Tags) { Guid.TryParse(tag, out Guid guid); if (guid == Guid.Empty) { Tag newTag = new Tag() { Name = tag }; _context.Tag.Add(newTag); categoryTag = new CategoryTag() { CategoryId = category.CategoryId }; categoryTag.Tag = newTag; } else { Tag availableTeg = await _context.Tag .Where(x => x.TagGuid == Guid.Parse(tag)) .SingleOrDefaultAsync(cancellationToken); if (availableTeg == null) { continue; } categoryTag = new CategoryTag() { CategoryId = category.CategoryId, TagId = availableTeg.TagId }; } _context.CategoryTag.Add(categoryTag); } } await _context.SaveChangesAsync(cancellationToken); return(new SetCategoryDetailsVm() { Message = "عملیات موفق آمیز", State = (int)SetCategoryDetailsState.Success }); } } } }