From 6463f799e122779c0da887019acc3c3e3e445efc Mon Sep 17 00:00:00 2001 From: Hamid Reza Mohammadi Date: Thu, 24 Feb 2022 20:24:55 +0330 Subject: [PATCH] docs: #285 CRUD for FAQItem records --- RMuseum/DbContext/RMuseumDbContext.cs | 5 ++ RMuseum/RMuseum.xml | 59 ++++++++++++-- RMuseum/Services/IFAQService.cs | 28 ++++++- RMuseum/Services/Implementation/FAQService.cs | 81 ++++++++++++++++++- 4 files changed, 161 insertions(+), 12 deletions(-) diff --git a/RMuseum/DbContext/RMuseumDbContext.cs b/RMuseum/DbContext/RMuseumDbContext.cs index 352b45a7..be882941 100644 --- a/RMuseum/DbContext/RMuseumDbContext.cs +++ b/RMuseum/DbContext/RMuseumDbContext.cs @@ -446,5 +446,10 @@ namespace RMuseum.DbContext /// public DbSet FAQCategories { get; set; } + /// + /// faq items + /// + public DbSet FAQItems { get; set; } + } } diff --git a/RMuseum/RMuseum.xml b/RMuseum/RMuseum.xml index dc671e19..c2940772 100644 --- a/RMuseum/RMuseum.xml +++ b/RMuseum/RMuseum.xml @@ -2650,6 +2650,11 @@ faq categories + + + faq items + + donation expenditures @@ -9976,21 +9981,42 @@ - add faq category + add a new faq category - update faq cateory + update an existing faq category - delete faq category + delete a faq category + + + + + + + add a new faq item + + + + + + + update an existing faq item + + + + + + + delete a faq item @@ -11912,21 +11938,42 @@ - add faq category + add a new faq category - update faq cateory + update an existing faq category - delete faq category + delete a faq category + + + + + + + add a new faq item + + + + + + + update an existing faq item + + + + + + + delete a faq item diff --git a/RMuseum/Services/IFAQService.cs b/RMuseum/Services/IFAQService.cs index 49f1d97e..c51cf9b4 100644 --- a/RMuseum/Services/IFAQService.cs +++ b/RMuseum/Services/IFAQService.cs @@ -11,24 +11,46 @@ namespace RMuseum.Services public interface IFAQService { /// - /// add faq category + /// add a new faq category /// /// /// Task> AddCategoryAsync(FAQCategory cat); /// - /// update faq cateory + /// update an existing faq category /// /// /// Task> UpdateCategoryAsync(FAQCategory cat); /// - /// delete faq category + /// delete a faq category /// /// /// Task> DeleteCategoryAsync(int id); + + /// + /// add a new faq item + /// + /// + /// + Task> AddItemAsync(FAQItem item); + + /// + /// update an existing faq item + /// + /// + /// + Task> UpdateItemAsync(FAQItem item); + + /// + /// delete a faq item + /// + /// + /// + Task> DeleteItemAsync(int id); + } } diff --git a/RMuseum/Services/Implementation/FAQService.cs b/RMuseum/Services/Implementation/FAQService.cs index d5f535c7..2a9a5ad6 100644 --- a/RMuseum/Services/Implementation/FAQService.cs +++ b/RMuseum/Services/Implementation/FAQService.cs @@ -16,7 +16,7 @@ namespace RMuseum.Services.Implementation { /// - /// add faq category + /// add a new faq category /// /// /// @@ -36,7 +36,7 @@ namespace RMuseum.Services.Implementation } /// - /// update faq cateory + /// update an existing faq category /// /// /// @@ -61,7 +61,7 @@ namespace RMuseum.Services.Implementation } /// - /// delete faq category + /// delete a faq category /// /// /// @@ -81,6 +81,81 @@ namespace RMuseum.Services.Implementation } } + /// + /// add a new faq item + /// + /// + /// + public async Task> AddItemAsync(FAQItem item) + { + try + { + _context.FAQItems.Add(item); + await _context.SaveChangesAsync(); + + return new RServiceResult(item); + } + catch (Exception exp) + { + return new RServiceResult(null, exp.ToString()); + } + } + + /// + /// update an existing faq item + /// + /// + /// + public async Task> UpdateItemAsync(FAQItem item) + { + try + { + var dbModel = await _context.FAQItems.Where(i => i.Id == item.Id).SingleAsync(); + dbModel.Question = item.Question; + dbModel.AnswerExcerpt = item.AnswerExcerpt; + dbModel.FullAnswer = item.FullAnswer; + dbModel.Pinned = item.Pinned; + dbModel.PinnedItemOrder = item.PinnedItemOrder; + dbModel.CategoryId = item.CategoryId; + dbModel.ItemOrderInCategory = item.ItemOrderInCategory; + dbModel.ContentForSearch = item.ContentForSearch; + dbModel.HashTag1 = item.HashTag1; + dbModel.HashTag2 = item.HashTag2; + dbModel.HashTag3 = item.HashTag3; + dbModel.HashTag4 = item.HashTag4; + dbModel.Published = item.Published; + _context.Update(dbModel); + await _context.SaveChangesAsync(); + + return new RServiceResult(true); + } + catch (Exception exp) + { + return new RServiceResult(false, exp.ToString()); + } + } + + /// + /// delete a faq item + /// + /// + /// + public async Task> DeleteItemAsync(int id) + { + try + { + var dbModel = await _context.FAQItems.Where(i => i.Id == id).SingleAsync(); + _context.Remove(dbModel); + await _context.SaveChangesAsync(); + + return new RServiceResult(true); + } + catch (Exception exp) + { + return new RServiceResult(false, exp.ToString()); + } + } + /// /// Database Context