Initial commit

This commit is contained in:
Chris Chen
2022-09-08 08:04:32 -07:00
commit 184db15773
4604 changed files with 503905 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace Church.Net.Entity
{
public class AddressInfo
{
[Key]
public string Id { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
}
}
+46
View File
@@ -0,0 +1,46 @@
using Church.Net.Entity.Interface;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Church.Net.Entity
{
public class AutoReplyItem : IEntity
{
[Required, Key]
public string Id { get; set; }
public string Command { get; set; }
public string Description { get; set; }
public string Content { get; set; }
public virtual ICollection<PastoralDomainAutoReplys> AutoReplyItemRelations { get; set; }
}
public class PastoralDomainAutoReplys : ICombinedKeyEntity
{
public PastoralDomainAutoReplys()
{
}
public PastoralDomainAutoReplys(string pastoralDomainCId, string autoReplyItemId)
{
PastoralDomainCommunityAppId = pastoralDomainCId;
AutoReplyItemId = autoReplyItemId;
}
[ForeignKey("PastoralDomain")]
[Required, Key, Column(Order = 0)]
public string PastoralDomainCommunityAppId { get; set; }
public virtual PastoralDomain PastoralDomain { get; set; }
[ForeignKey("FamilyMember")]
[Required, Key, Column(Order = 1)]
public string AutoReplyItemId { get; set; }
public virtual AutoReplyItem FamilyMember { get; set; }
}
}
+18
View File
@@ -0,0 +1,18 @@
using Church.Net.Entity.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Church.Net.Entity
{
public class BibleBook
{
public int Id { get; set; }
public string Chinese { get; set; }
public string ChineseShort { get; set; }
public string English { get; set; }
public string EnglishShort { get; set; }
}
}
+21
View File
@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Church.Net.Entity
{
public class BibleStudy
{
public DateTime Date { get; set; }
public string Topic { get; set; }
[ForeignKey("Book")]
public string Id { get; set; }
public BibleBook Book { get; set; }
public string Chapter { get; set; }
public int VerseStart { get; set; }
public int VerseEnd { get; set; }
}
}
+19
View File
@@ -0,0 +1,19 @@
using Church.Net.Entity.Interface;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Church.Net.Entity
{
public class Career : IEntity
{
[Required, Key]
public string Id { get; set; }
[StringLength(50)]
public string Name { get; set; }
}
}
@@ -0,0 +1,63 @@
using Church.Net.Entity.Interface;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Church.Net.Entity
{
public class CellGroupRoutineEvent : IEntity
{
[Required, Key]
public string Id { get; set; }
[Required]
public DateTime Time { get; set; }
public string Address { get; set; }
public virtual ICollection<CellGroupRoutineEventAttendee> Attendees { get; set; }
public virtual ICollection<CellGroupRoutineEventPrayer> Prayers { get; set; }
}
public class CellGroupRoutineEventAttendee : ICombinedKeyEntity
{
[ForeignKey("CellGroupRoutineEvent")]
[Key, Column(Order = 0)]
public string EventId { get; set; }
public CellGroupRoutineEvent CellGroupRoutineEvent { get; set; }
[Required, Key, Column(Order = 1)]
public string Id { get; set; }
public string Name { get; set; }
public bool JoinPotluck { get; set; }
public string PotluckItem { get; set; }
public string Comment { get; set; }
}
public class CellGroupRoutineEventWorship : ICombinedKeyEntity
{
[ForeignKey("CellGroupRoutineEvent")]
[Key, Column(Order = 0)]
public string EventId { get; set; }
[Required, Key, Column(Order = 1)]
public string WorshipVideoId { get; set; }
public string Comment { get; set; }
}
public class CellGroupRoutineEventPrayer : ICombinedKeyEntity
{
[ForeignKey("CellGroupRoutineEvent")]
[Key, Column(Order = 0)]
public string EventId { get; set; }
public CellGroupRoutineEvent CellGroupRoutineEvent { get; set; }
[Required, Key, Column(Order = 1)]
public string MemberId { get; set; }
public string Prayer { get; set; }
public string Comment { get; set; }
}
}
@@ -0,0 +1,17 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
<PackageOutputPath>\\ArkNAS\home\Nuget Packages</PackageOutputPath>
<AssemblyVersion>1.0.0.4</AssemblyVersion>
<FileVersion>1.0.0.4</FileVersion>
<Version>1.0.0.4</Version>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
</ItemGroup>
</Project>
+8
View File
@@ -0,0 +1,8 @@
using System;
namespace Church.Net.Entity2
{
public class Class1
{
}
}
+55
View File
@@ -0,0 +1,55 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Church.Net.Entity
{
public class Enumeration
{
public enum Gender
{
Female=0,
Male=1
}
public enum Month
{
January=1,
Feburary,
March,
April,
May,
June,
July,
August,
September,
October,
November,
December
}
public enum PartsOfSpeech
{
Nouns,
Verbs,
VerbsUnRegular,
Pronouns,
Adverbs,
Adjectives,
Conjunctions,
Articles,
Prepositions
}
public enum PracticeStage
{
Select,
Memorized,
Visualize,
Apply,
Review,
FlashCard
}
}
}
+71
View File
@@ -0,0 +1,71 @@
using Church.Net.Entity.Interface;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Security.Claims;
using System.Text;
using System.Threading.Tasks;
namespace Church.Net.Entity
{
[Flags]
public enum Role
{
None = 0,
FamilyMember = 1 << 0, // 0001 -- the bitshift is unnecessary, but done for consistency
CellGroupLeader = 1 << 1, // 0010
Pastor = 1 << 2, // 0100
Admin = 1 << 3, // 1111
Best = 1 << 4, // 1111
All = ~(~0 << 20) // 1111
}
public class FamilyMember : IEntity
{
public FamilyMember()
{
}
[Key]
public string Id { get; set; }
public string Email { get; set; }
[JsonIgnore]
public string Password { get; set; }
public string AvatarImage { get; set; }
[StringLength(50)]
public string FirstName { get; set; }
[StringLength(50)]
public string LastName { get; set; }
public Enumeration.Gender Gender { get; set; }
public DateTime? Birthday { get; set; }
public bool Married { get; set; }
public bool Baptized { get; set; }
public DateTime? DateOfBaptized { get; set; }
public DateTime? DateOfWalkIn { get; set; }
[StringLength(500)]
public string Address { get; set; }
[StringLength(50)]
public string ComunityAppId { get; set; }
[ForeignKey("Career")]
public string CareerId { get; set; }
public Career Career { get; set; }
public virtual ICollection<PastoralDomainMembers> PastoralDomains { get; set; }
public virtual ICollection<FamilyMemberOAuth> OAuthInfos { get; set; }
public string Comment { get; set; }
public Role Role { get; set; }
}
}
+19
View File
@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace Church.Net.Entity
{
public class FamilyMemberOAuth
{
[ForeignKey("HappinessGroup")]
[Key, Column(Order = 0)]
public string FamilyMemberId { get; set; }
[Required, Key, Column(Order = 1)]
public string OAuthType { get; set; }
public string OAuthAccessToken { get; set; }
}
}
+26
View File
@@ -0,0 +1,26 @@
using Church.Net.Entity.Interface;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Church.Net.Entity
{
public class HappinessBEST : IEntity
{
[ForeignKey("HappinessGroup")]
public string GroupId { get; set; }
public HappinessGroup HappinessGroup { get; set; }
[Key]
public string Id { get; set; }
[Required]
public string Name { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
}
}
+29
View File
@@ -0,0 +1,29 @@
using Church.Net.Entity.Interface;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Church.Net.Entity
{
public class HappinessGroup : IEntity
{
[Required, Key]
public string Id { get; set; }
public string Name { get; set; }
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy/MM/dd HH:mm}")]
public DateTime BeginTime { get; set; }
public string Address { get; set; }
public string CityAndZipCode { get; set; }
public string InvitationText { get; set; }
public virtual ICollection<HappinessBEST> BestList { get; set; }
public virtual ICollection<HappinessWeek> Weeks { get; set; }
}
}
+29
View File
@@ -0,0 +1,29 @@
using Church.Net.Entity.Interface;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Church.Net.Entity
{
public class HappinessWeek : IEntity
{
[ForeignKey("HappinessGroup")]
public string GroupId { get; set; }
public HappinessGroup HappinessGroup { get; set; }
[Required, Key]
public string Id { get; set; }
public DateTime Date { get; set;}
public string InvitationText { get; set; }
public string Address { get; set; }
public string CityAndZipCode { get; set; }
public int SEQ { get; set; }
[NotMapped]
public bool UpdateRestWeekDate { get; set; }
}
}
+14
View File
@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Church.Net.Entity.Interface
{
public interface IEntity
{
string Id { get; set; }
}
public interface ICombinedKeyEntity
{
}
}
@@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Church.Net.Entity.Interface
{
public interface ILog
{
int TrackNo { get; set; }
string DetailMessage { get; set; }
string Message { get; set; }
Guid Id { get; set; }
string Source { get; set; }
string StackTrace { get; set; }
DateTime Time { get; set; }
string Url { get; set; }
LogLevel Level { get; set; }
string UserId { get; set; }
}
public enum LogLevel
{
Info,
Warning,
Error
}
}
+35
View File
@@ -0,0 +1,35 @@
using Church.Net.Entity.Interface;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text;
namespace Church.Net.Entity
{
public class LogInfo : IEntity
{
public LogInfo()
{
}
public LogInfo(LogLevel level)
{
Id = Guid.NewGuid().ToString();
Time = DateTime.UtcNow;
Level = level;
}
public string Id { get; set; }
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int TrackNo { get; set; }
public string Url { get; set; }
public string Message { get; set; }
public string Source { get; set; }
public string StackTrace { get; set; }
public string DetailMessage { get; set; }
public string UserId { get; set; }
public DateTime Time { get; set; }
public LogLevel Level { get; set; }
}
}
+65
View File
@@ -0,0 +1,65 @@
using Church.Net.Entity.Interface;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Church.Net.Entity
{
public class NewVisitor:IEntity
{
[Key]
public string Id { get; set; }
[StringLength(50)]
[DisplayName("名字")]
[Required]
public string FirstName { get; set; }
[StringLength(50)]
[DisplayName("姓氏")]
[Required]
public string LastName { get; set; }
[DisplayName("性別")]
public Enumeration.Gender Gender { get; set; }
[StringLength(500)]
[DisplayName("地址")]
public string Address { get; set; }
[StringLength(150)]
[DisplayName("電話")]
[Required]
public string Phone { get; set; }
[StringLength(150)]
[DisplayName("E-Mail")]
public string Email { get; set; }
[StringLength(50)]
[DisplayName("社群軟體ID")]
public string ComunityAppId { get; set; }
[DisplayName("首次參加主日時間")]
public DateTime VisitingDate { get; set; }
[System.ComponentModel.DataAnnotations.Schema.NotMapped]
public bool HideBirthDate { get; set; }
[DisplayName("生日")]
public DateTime? BirthDate { get; set; }
[DisplayName("附註")]
public string Note { get; set; }
[ForeignKey("Religion")]
public int? ReligionId { get; set; }
public Religion Religion { get; set; }
//[ForeignKey("VisitingReason")]
//public int VisitingReasonId { get; set; }
//public VisitingReason VisitingReason { get; set; }
}
}
+55
View File
@@ -0,0 +1,55 @@
using Church.Net.Entity.Interface;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Church.Net.Entity
{
public class PastoralDomain : IEntity
{
public PastoralDomain()
{
}
[Key]
public string Id { get; set; }
public string Name { get; set; }
public string LogoImage { get; set; }
public string Description { get; set; }
public string Image1 { get; set; }
public string Image2 { get; set; }
public string Image3 { get; set; }
public string Image4 { get; set; }
public string Image5 { get; set; }
public string CommunityAppId { get; set; }
[ForeignKey("Leader")]
public string LeaderMemberId { get; set; }
public FamilyMember Leader { get; set; }
[ForeignKey("ServiceAddress")]
public string ServiceAddressId { get; set; }
public AddressInfo ServiceAddress { get; set; }
[JsonIgnore]
public virtual ICollection<PastoralDomainMembers> Members { get; set; }
[JsonIgnore]
public virtual IList<PastoralDomainAutoReplys> AutoReplyItemRelations { get; set; }
[NotMapped]
public virtual ICollection<FamilyMember> FamilyMembers { get; set; }
}
}
+24
View File
@@ -0,0 +1,24 @@
using Church.Net.Entity.Interface;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Church.Net.Entity
{
public class PastoralDomainInfo : IEntity
{
[Required, Key]
public string Id { get; set; }
[ForeignKey("PastoralDomain")]
public string PastoralDomainId { get; set; }
public PastoralDomain PastoralDomain { get; set; }
}
}
@@ -0,0 +1,38 @@
using Church.Net.Entity.Interface;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Church.Net.Entity
{
public class PastoralDomainMembers : ICombinedKeyEntity
{
public PastoralDomainMembers()
{
}
public PastoralDomainMembers(string pastoralDomainId, string familyMemberId)
{
PastoralDomainId = pastoralDomainId;
FamilyMemberId = familyMemberId;
}
[ForeignKey("PastoralDomain")]
[Required, Key, Column(Order = 0)]
public string PastoralDomainId { get; set; }
public virtual PastoralDomain PastoralDomain { get; set; }
[ForeignKey("FamilyMember")]
[Required, Key, Column(Order = 1)]
public string FamilyMemberId { get; set; }
public virtual FamilyMember FamilyMember { get; set; }
}
}
+18
View File
@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Church.Net.Entity
{
public class Religion
{
[Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ReligionId { get; set; }
[Display(Name = "宗教信仰")]
public string Name { get; set; }
}
}
+19
View File
@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Security.Principal;
using System.Text;
using System.Threading.Tasks;
namespace Church.Net.Entity
{
public class VisitingReason
{
[Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int VisitingReasonId { get; set; }
public string Reason { get; set; }
}
}
+84
View File
@@ -0,0 +1,84 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static Church.Net.Entity.Enumeration;
namespace Church.Net.Entity
{
public class Vocabulary
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required]
public string Word { get; set; }
[Required]
[DataType(DataType.MultilineText)]
public string DefinitionEn { get; set; }
[Required]
[DataType(DataType.MultilineText)]
public string DefinitionCh { get; set; }
public string NounPlural { get; set; }
public string VerbPast { get; set; }
public string VerbParticiple { get; set; }
public PartsOfSpeech PartOfSpeech { get; set; }
public string ImagesUrl { get; set; }
public DateTime InsertDate { get; set; }
public DateTime PracticeDate { get; set; }
public PracticeStage PracticeStage { get; set; }
public bool PracticeSelect { get; set; }
public bool PracticeMemorized { get; set; }
public bool PracticeVisualize { get; set; }
public bool PracticeApply { get; set; }
public bool PracticeReview { get; set; }
[DataType(DataType.MultilineText)]
public string PracticeSentence { get; set; }
public int FlashCardTimes { get; set; }
[NotMapped]
public int PracticeTimes { get; set; }
public string MaskedWord
{
get
{
return GetMaskedWord(Word);
}
}
public string MaskedVerbPast
{
get
{
return GetMaskedWord(VerbPast);
}
}
public string MaskedVerbParticiple
{
get
{
return GetMaskedWord(VerbParticiple);
}
}
private string GetMaskedWord(string word)
{
string reuslt = word.Substring(0, 1);
for (int i = 1; i < word.Length; i++)
{
reuslt = reuslt + " _";
}
reuslt = reuslt + " " + word.Substring(word.Length - 1, 1);
return reuslt;
}
}
}
+27
View File
@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Security.Principal;
using System.Text;
using System.Threading.Tasks;
namespace Church.Net.Entity
{
public class WhoIsSpy
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Answer1Cht { get; set; }
public string Answer1Chs { get; set; }
public string Answer1En { get; set; }
public string Answer1Image => $"WhoIsSpy_{Id}_A.jpg";
public string Answer2Cht { get; set; }
public string Answer2Chs { get; set; }
public string Answer2En { get; set; }
public string Answer2Image => $"WhoIsSpy_{Id}_B.jpg";
}
}