示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }