/// <summary> /// Creates a new Document, writes to disk, and associates to whatever type is passed in. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="id"></param> /// <param name="fileName"></param> /// <param name="docBytes"></param> /// <param name="uploadedBy"></param> /// <param name="docValidator"></param> /// <returns>Returns the Document record.</returns> protected Document CreateDocument <T>(int id, string fileName, byte[] docBytes, int uploadedBy, IValidator <Document> docValidator) where T : Entity, IHasDocuments <Document> { var entity = Context.Set <T>().Find(id); ThrowIfNull(entity); var document = DocHelper.GenerateDocumentRecord(fileName, uploadedBy); ValidateAndThrow(document, docValidator); Context.Documents.Add(document); // ReSharper disable once PossibleNullReferenceException entity.Documents.Add(document); Context.SaveChanges(); var absolutePath = DocHelper.PrependDocsPath(document.FilePath); File.WriteAllBytes(absolutePath, docBytes); return(document); }
/// <summary> /// Updates a Setting. /// </summary> /// <param name="setting"></param> public void UpdateSetting(Setting setting) { Context.Settings.Attach(setting); Context.Entry(setting).Property(s => s.Value).IsModified = true; Context.SaveChanges(); }