/// <summary> /// Checks for the existance of a version (name) for a particular <paramref name="fileType"/>, <paramref name="meterGroup"/>, /// and <paramref name="versionGroup"/>. /// </summary> /// <param name="name">Version name to check</param> /// <param name="fileType">File type id</param> /// <param name="meterGroup">Meter Group id <see cref="MeterGroups"/></param> /// <param name="versionGroup">Version group id</param> /// <returns>True if name already exists, false if not</returns> public bool VersionExists(string name, int fileType, int meterGroup, int versionGroup) { AssetVersionSetModel assetVersionSetModel = GetVersionSetModel(fileType, meterGroup, versionGroup); return(assetVersionSetModel.Versions.FirstOrDefault(m => m.Name.Equals(name.Trim(), StringComparison.CurrentCultureIgnoreCase)) != null); }
/// <summary> /// Gets an instance of <see cref="AssetVersionSetModel"/> for a particular <paramref name="fileType"/>, <paramref name="meterGroup"/>, /// and <paramref name="versionGroup"/>. /// </summary> /// <param name="fileType">File type id</param> /// <param name="meterGroup">Meter Group id <see cref="MeterGroups"/></param> /// <param name="versionGroup">Version group id</param> /// <returns>Instance of <see cref="AssetVersionSetModel"/></returns> public AssetVersionSetModel GetVersionSetModel(int fileType, int meterGroup, int versionGroup) { AssetVersionSetModel model = new AssetVersionSetModel(); //get the file type groups var filteredGroups = PemsEntities.FDFileTypeMeterGroups.Where(m => m.FileType == fileType); //then if the meter group is set, filter by those if (meterGroup > -1) { filteredGroups = filteredGroups.Where(x => x.MeterGroup == meterGroup); } //then checkf or version group if (versionGroup > -1) { filteredGroups = filteredGroups.Where(x => x.VersionGroup == versionGroup); } if (filteredGroups.Any()) { foreach (var fdftmg in filteredGroups) { var list = PemsEntities.AssetVersionMasters.Where( m => m.FDFileTypeMeterGroupID == fdftmg.FDFileTypeMeterGroupID); if (list.Any()) { var fdft = PemsEntities.FDFileTypes.FirstOrDefault(m => m.FileType == fileType); AssetVersionFileTypeModel assetVersionFileTypeModel = new AssetVersionFileTypeModel() { Id = fdft.FileType, Extension = fdft.FileExtension, Description = fdft.FileDesc }; // Get meter group name var mg = PemsEntities.MeterGroups.FirstOrDefault(m => m.MeterGroupId == fdftmg.MeterGroup); string meterGroupName = mg == null ? " " : mg.MeterGroupDesc; // Get version group description. var vg = PemsEntities.VersionGroups.FirstOrDefault(m => m.VersionGroupId == fdftmg.VersionGroup); string versionGroupName = vg == null ? " " : vg.VersionGroupDesc; foreach (var assetVersionMaster in list) { model.Versions.Add(new AssetVersionModel() { Id = assetVersionMaster.AssetVersionMasterId, Name = assetVersionMaster.VersionName, CreateDate = assetVersionMaster.CreateDate, CreateDateDisplay = assetVersionMaster.CreateDate.ToString("G"), FileType = assetVersionFileTypeModel.DisplayName, MeterGroup = meterGroupName, VersionGroup = versionGroupName }); } } } } model.Versions.Sort(); return(model); }