Ejemplo n.º 1
0
        public static IServiceCollection AddTo(IServiceCollection services)
        {
            // Filesystem
            services.AddSingleton <IFileSystem, DotNetFileSystem>();
            services.AddSingleton <IStreamFactory, DotNetStreamFactory>();

            // Config
            services.AddScoped(sp => DiaryConfig.ReadConfig <MainConfig>(saveDefaultConfig: true));

            // DB
            services.AddTransient <DiaryDbContext>();

            return(services);
        }
Ejemplo n.º 2
0
        public EntryMappingProfile()
        {
            // Main entry
            this.CreateMap <EntryModel, Entry>()
            .IncludeBase <EntityBaseModel, EntityBase>()
            .ForMember(d => d.TextContent, mo => mo.PreCondition(m => m.Type == EntryType.Text))
            .ForMember(d => d.FileContent, mo => mo.PreCondition(m => m.Type == EntryType.File))

            .ReverseMap();

            // Text content
            this.CreateMap <EntryTextContentModel, EntryTextContent>()
            .IncludeBase <EntityBaseModel, EntityBase>()

            .ReverseMap();

            // File content
            this.CreateMap <EntryFileContentModel, EntryFileContent>()
            .IncludeBase <EntityBaseModel, EntityBase>()
            // Changing a file's name involves more than simple field update,
            // so we avoid overwriting it implicitly and let the relevant services
            // process it explicitly.
            .ForMember(d => d.FileName, mo => mo.Ignore())

            .ReverseMap()
            .ForMember(
                d => d.FileUrl,
                mo => mo.ResolveUsing(
                    fileEntry =>
            {
                if (String.IsNullOrEmpty(fileEntry?.FileName))
                {
                    return(null);
                }

                var config = DiaryConfig.ReadConfig <MainConfig>();
                return($"~/{config.FileStorageFolder}/{fileEntry.FileName}");
            }));
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Only used in generating and applying migrations.
 /// </summary>
 public DiaryDbContext()
 {
     this._config = DiaryConfig.ReadConfig <MainConfig>();
 }