public void UpdateModel(Model.UnitDocument model) { if (model.Title != this.Title) { model.Title = this.Title; } if (model.Required != this.Required) { model.Required = this.Required; } if (model.SubmitTo != this.SubmitTo) { model.SubmitTo = this.SubmitTo; } if (model.Url != this.Url) { model.Url = this.Url; } if (model.Order != this.Order) { model.Order = this.Order; } if (model.ForMembersYounger != this.ForMembersYounger) { model.ForMembersYounger = this.ForMembersYounger; } if (model.ForMembersOlder != this.ForMembersOlder) { model.ForMembersOlder = this.ForMembersOlder; } }
public string SaveDocuments(Guid id, UnitDocument[] data) { if (!CanEditDocuments(this.permissions, id)) { ThrowAuthError(); } Data.SarUnit unit = db.Units.Include("Documents").Single(f => f.Id == id); var existingDocuments = db.UnitDocuments.Where(f => f.Unit.Id == id).ToDictionary(f => f.Id, f => f); List <UnitDocument> desiredDocuments = new List <UnitDocument>(data); foreach (var document in desiredDocuments) { Data.UnitDocument unitDocument; if (existingDocuments.TryGetValue(document.Id, out unitDocument)) { existingDocuments.Remove(document.Id); } if (string.IsNullOrWhiteSpace(document.Title)) { // If there's no name, delete it. if (unitDocument != null) { unit.Documents.Remove(unitDocument); } continue; } if (string.IsNullOrWhiteSpace(document.Url)) { return(string.Format("{0}'s url is blank", document.Title)); } if (unitDocument == null) { unitDocument = new Data.UnitDocument() { Type = Data.UnitDocumentType.Application }; unit.Documents.Add(unitDocument); } document.UpdateModel(unitDocument); } foreach (var leftover in existingDocuments.Values) { unit.Documents.Remove(leftover); } db.SaveChanges(); return("OK"); }
public string SaveDocuments(Guid id, UnitDocument[] data) { if (!CanEditDocuments(Permissions, id)) ThrowAuthError(); Model.SarUnit unit = db.Units.Include("Documents").Single(f => f.Id == id); var existingDocuments = db.UnitDocuments.Where(f => f.Unit.Id == id).ToDictionary(f => f.Id, f => f); List<UnitDocument> desiredDocuments = new List<UnitDocument>(data); foreach (var document in desiredDocuments) { Model.UnitDocument unitDocument; if (existingDocuments.TryGetValue(document.Id, out unitDocument)) { existingDocuments.Remove(document.Id); } if (string.IsNullOrWhiteSpace(document.Title)) { // If there's no name, delete it. if (unitDocument != null) { unit.Documents.Remove(unitDocument); } continue; } if (string.IsNullOrWhiteSpace(document.Url)) return string.Format("{0}'s url is blank", document.Title); if (unitDocument == null) { unitDocument = new Model.UnitDocument() { Type = Model.UnitDocumentType.Application }; unit.Documents.Add(unitDocument); } document.UpdateModel(unitDocument); } foreach (var leftover in existingDocuments.Values) { unit.Documents.Remove(leftover); } db.SaveChanges(); return "OK"; }