public IEnumerable <ValidationResult> Validate(ValidationContext validationContext) { var attachmentTypes = HttpRequestStorage.DatabaseEntities.AttachmentTypes.ToList(); if (!attachmentTypes.IsAttachmentTypeNameUnique(AttachmentTypeName, AttachmentTypeID)) { yield return(new SitkaValidationResult <EditAttachmentTypeViewModel, string>("Name already exists.", x => x.AttachmentTypeName)); } if (!TaxonomyTrunkIDs.Any()) { yield return(new SitkaValidationResult <EditAttachmentTypeViewModel, List <int> >($"Please select at least one {FieldDefinitionEnum.TaxonomyTrunk.ToType().GetFieldDefinitionLabel()} for this {FieldDefinitionEnum.AttachmentType.ToType().GetFieldDefinitionLabel()}", x => x.TaxonomyTrunkIDs)); } if (!FileResourceMimeTypeIDs.Any()) { yield return(new SitkaValidationResult <EditAttachmentTypeViewModel, List <int> >($"Please select at least one file type for this {FieldDefinitionEnum.AttachmentType.ToType().GetFieldDefinitionLabel()}", x => x.FileResourceMimeTypeIDs)); } }
public void UpdateModel(ProjectFirmaModels.Models.AttachmentType attachmentType, ICollection <AttachmentTypeFileResourceMimeType> allAttachmentTypeFileResourceMimeTypes, ICollection <AttachmentTypeTaxonomyTrunk> allAttachmentTypeTaxonomyTrunks) { attachmentType.AttachmentTypeName = AttachmentTypeName; attachmentType.AttachmentTypeDescription = AttachmentTypeDescription; attachmentType.NumberOfAllowedAttachments = NumberOfAllowedAttachments; attachmentType.MaxFileSize = MaxFileSize; var fileResourceMimeTypesUpdated = FileResourceMimeTypeIDs.Select(x => new AttachmentTypeFileResourceMimeType(attachmentType.AttachmentTypeID, x)).ToList(); attachmentType.AttachmentTypeFileResourceMimeTypes.Merge(fileResourceMimeTypesUpdated, allAttachmentTypeFileResourceMimeTypes, (x, y) => x.AttachmentTypeID == y.AttachmentTypeID && x.FileResourceMimeTypeID == y.FileResourceMimeTypeID, HttpRequestStorage.DatabaseEntities); var taxonomyTrunksUpdated = TaxonomyTrunkIDs.Select(x => new AttachmentTypeTaxonomyTrunk(attachmentType.AttachmentTypeID, x)).ToList(); attachmentType.AttachmentTypeTaxonomyTrunks.Merge(taxonomyTrunksUpdated, allAttachmentTypeTaxonomyTrunks, (x, y) => x.AttachmentTypeID == y.AttachmentTypeID && x.TaxonomyTrunkID == y.TaxonomyTrunkID, HttpRequestStorage.DatabaseEntities); }