diff --git a/Data/SurveyContext.cs b/Data/SurveyContext.cs
index e102c04..e4933bb 100644
--- a/Data/SurveyContext.cs
+++ b/Data/SurveyContext.cs
@@ -26,6 +26,13 @@ namespace Data
public DbSet FooterSocialMedias { get; set; }
+ public DbSet Questionnaires { get; set; }
+
+ public DbSet Questions { get; set; }
+ public DbSet Answers { get; set; }
+
+ public DbSet QuestionTypeEntities { get; set; }
+
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
@@ -43,7 +50,26 @@ namespace Data
.HasForeignKey(fsm => fsm.SocialId);
+ modelBuilder.Entity()
+ .HasKey(q => q.Id);
+ modelBuilder.Entity()
+ .HasMany(q => q.Questions)
+ .WithOne(qn => qn.Questionnaire)
+ .HasForeignKey(qn => qn.QuestionnaireId)
+ .OnDelete(DeleteBehavior.Cascade);
+
+ modelBuilder.Entity()
+ .HasOne(q => q.Questionnaire)
+ .WithMany(qn => qn.Questions)
+ .HasForeignKey(q => q.QuestionnaireId)
+ .OnDelete(DeleteBehavior.Cascade);
+
+ modelBuilder.Entity()
+ .HasKey(a => a.Id);
+
+ modelBuilder.Entity()
+ .HasKey(t => t.Id);
base.OnModelCreating(modelBuilder);
}
diff --git a/Model/Answer.cs b/Model/Answer.cs
new file mode 100644
index 0000000..8e6783b
--- /dev/null
+++ b/Model/Answer.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Model
+{
+ public class Answer
+ {
+ public int Id { get; set; }
+ public string? Text { get; set; }
+ public int QuestionId { get; set; } // Foreign key for Question
+ [ForeignKey("QuestionId")]
+ public Question? Question { get; set; }
+ }
+}
diff --git a/Model/Question.cs b/Model/Question.cs
new file mode 100644
index 0000000..9aa9724
--- /dev/null
+++ b/Model/Question.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Model
+{
+ public class Question
+ {
+ public int Id { get; set; }
+ public string? Text { get; set; }
+ public QuestionType Type { get; set; }
+
+ // Foreign key for Questionnaire
+
+ public int QuestionnaireId { get; set; } // Foreign key for Questionnaire
+ [ForeignKey("QuestionnaireId")]
+ public Questionnaire? Questionnaire { get; set; }
+
+ public List? Answers { get; set; }
+ }
+}
diff --git a/Model/QuestionType.cs b/Model/QuestionType.cs
new file mode 100644
index 0000000..dcb5b75
--- /dev/null
+++ b/Model/QuestionType.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Model
+{
+ public enum QuestionType
+ {
+ Text,
+ CheckBox,
+ TrueFalse,
+ Multiple_choice,
+ Rating,
+ Likert,
+ Matrix,
+ Open_ended,
+ Demographic,
+ Ranking,
+ Image,
+ Slider
+
+ }
+}
diff --git a/Model/QuestionTypeEntities.cs b/Model/QuestionTypeEntities.cs
new file mode 100644
index 0000000..e6ff547
--- /dev/null
+++ b/Model/QuestionTypeEntities.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Model
+{
+ public class QuestionTypeEntities
+ {
+
+
+ public int Id { get; set; }
+ public QuestionType Type { get; set; }
+
+ }
+}
diff --git a/Model/Questionnaire.cs b/Model/Questionnaire.cs
new file mode 100644
index 0000000..7ea572d
--- /dev/null
+++ b/Model/Questionnaire.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Model
+{
+ public class Questionnaire
+ {
+ public int Id { get; set; }
+ public string? Title { get; set; }
+ public string? Description { get; set; }
+ public List? Questions { get; set; }
+ }
+}
diff --git a/Services/Implemnetation/AddressRepository.cs b/Services/Implemnetation/AddressRepository.cs
index b43dcba..ecef870 100644
--- a/Services/Implemnetation/AddressRepository.cs
+++ b/Services/Implemnetation/AddressRepository.cs
@@ -31,14 +31,14 @@ namespace Services.Implemnetation
await _context.SaveChangesAsync();
}
- public void Delete(int id)
+ public void Delete(int? id)
{
var addresId = GetAddressById(id);
_context.Addresss.Remove(addresId);
}
- public Address GetAddressById(int id)
+ public Address GetAddressById(int? id)
{
return _context.Addresss.AsNoTracking().Where(x => x.Id == id).FirstOrDefault();
}
diff --git a/Services/Implemnetation/FooterRepository.cs b/Services/Implemnetation/FooterRepository.cs
index 3b14201..74ee943 100644
--- a/Services/Implemnetation/FooterRepository.cs
+++ b/Services/Implemnetation/FooterRepository.cs
@@ -49,12 +49,35 @@ namespace Services.Implemnetation
public void Update(Footer footer)
{
+
_context.Footers.Update(footer);
+ //_context.Entry(footer).State = EntityState.Modified;
+
+
+ //foreach (var fsm in footer.FooterSocialMedias)
+ //{
+ // var existingEntity = _context.ChangeTracker.Entries()
+ // .FirstOrDefault(e => e.Entity.FooterId == fsm.FooterId && e.Entity.SocialId == fsm.SocialId);
+
+ // if (existingEntity != null)
+ // {
+ // _context.Entry(existingEntity.Entity).State = EntityState.Detached;
+ // }
+
+ // _context.Entry(fsm).State = EntityState.Modified;
+ //}
}
public List
-
+
diff --git a/Web/Areas/Admin/Views/Banner/Index.cshtml b/Web/Areas/Admin/Views/Banner/Index.cshtml
index c9957a1..50223d1 100644
--- a/Web/Areas/Admin/Views/Banner/Index.cshtml
+++ b/Web/Areas/Admin/Views/Banner/Index.cshtml
@@ -17,8 +17,8 @@
Create New
-
-
+
+
| Id |
@@ -28,7 +28,7 @@
Action |
-
+
@foreach (var item in Model)
{
diff --git a/Web/Areas/Admin/Views/Footer/Create.cshtml b/Web/Areas/Admin/Views/Footer/Create.cshtml
index a3301df..12630ec 100644
--- a/Web/Areas/Admin/Views/Footer/Create.cshtml
+++ b/Web/Areas/Admin/Views/Footer/Create.cshtml
@@ -82,7 +82,7 @@
-
+
@*